Description
Description
We have at least one repo that we can no longer view in gitea after the upgrade to 1.21 from 1.20. The repo in question has branches stable/kilo
and stable/Kilo
. Loading the top level repo page for this repo returns a 500 error. Gitea records this in the logs:
2024/02/28 17:23:30 ...ules/context/repo.go:682:RepoAssignment() [E] SyncRepoBranches: Error 1062 (23000): Duplicate entry '1057-Kilo' for key 'UQE_branch_s'
#011/go/src/code.gitea.io/gitea/modules/context/repo.go:682 (0x1bb6834)
#011/usr/local/go/src/reflect/value.go:596 (0x4f0aa6)
#011/usr/local/go/src/reflect/value.go:380 (0x4efb78)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:166 (0x1a97ddb)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:176 (0x1a97e77)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/pkg/mod/github.com/go-chi/chi/[email protected]/chain.go:31 (0x1a8edc5)
#011/go/pkg/mod/github.com/go-chi/chi/[email protected]/mux.go:444 (0x1a91d13)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:176 (0x1a97e77)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:176 (0x1a97e77)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:176 (0x1a97e77)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/pkg/mod/github.com/go-chi/chi/[email protected]/middleware/get_head.go:37 (0x24c02db)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:145 (0x1a98083)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:176 (0x1a97e77)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/context/context.go:222 (0x1bab94e)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:145 (0x1a98083)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/pkg/mod/gitea.com/go-chi/[email protected]/session.go:257 (0x1b049b5)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:145 (0x1a98083)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/pkg/mod/github.com/go-chi/chi/[email protected]/mux.go:73 (0x1a8f9b5)
#011/go/pkg/mod/github.com/go-chi/chi/[email protected]/mux.go:316 (0x1a9129a)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/pkg/mod/github.com/go-chi/chi/[email protected]/mux.go:444 (0x1a91d13)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/pkg/mod/github.com/go-chi/chi/[email protected]/mux.go:73 (0x1a8f9b5)
#011/go/pkg/mod/github.com/go-chi/chi/[email protected]/mux.go:316 (0x1a9129a)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/pkg/mod/github.com/go-chi/chi/[email protected]/mux.go:444 (0x1a91d13)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/context/access_log.go:73 (0x1ba4421)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:145 (0x1a98083)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/routing/logger_manager.go:122 (0x1a8e5f8)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:145 (0x1a98083)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/pkg/mod/github.com/chi-middleware/[email protected]/middleware.go:37 (0x240b2f3)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:145 (0x1a98083)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/routers/common/middleware.go:45 (0x240c512)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:145 (0x1a98083)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/routers/common/middleware.go:37 (0x240c095)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:145 (0x1a98083)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/routers/common/middleware.go:99 (0x240b655)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/src/code.gitea.io/gitea/modules/web/handler.go:145 (0x1a98083)
#011/usr/local/go/src/net/http/server.go:2136 (0x971ca8)
#011/go/pkg/mod/github.com/go-chi/chi/[email protected]/mux.go:90 (0x1a8f974)
#011/go/src/code.gitea.io/gitea/modules/web/route.go:163 (0x1a994a7)
#011/usr/local/go/src/net/http/server.go:2938 (0x97498d)
#011/usr/local/go/src/net/http/server.go:2009 (0x970873)
#011/usr/local/go/src/runtime/asm_amd64.s:1650 (0x474200)
#011
2024/02/28 17:23:30 ...eb/routing/logger.go:102:func1() [I] router: completed GET /x/fuel-plugin-onos for 127.0.0.1:59198, 500 Internal Server Error in 71.0ms @ context/repo.go:425(context.RepoAssignment)
This Error 1062
is coming from MariaDB because it is trying to add non unique entries to the database. This appears to arise from case insensitive branch names in the database but case sensitive names in git (kilo
vs Kilo
). Gitea even comments that this is an issue here: https://github.com/go-gitea/gitea/blob/v1.21.7/models/git/branch.go#L106.
The underlying problem likely started with 6e19484 which is why this was working until semi recently. However, since 87db4a4 this may also be a problem for new pushes to gitea being rejected in addition to creating problems for existing repos that may already be in this state.
It would be nice if this could be corrected since this repo was functional in this state prior to these updates (this is a regression). Additionally gitea shouldn't reject valid git pushes or error when loading content from valid git repos. It should be possible to make this table column case sensitive and match the git behavior.
Note: I am not trying to reproduce this behavior on the gitea demo site as I suspect it will prevent the new branches from being created in the first place.
Gitea Version
1.21.7
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
2.39.2-1.1 from Debian Bookworm
Operating System
Debian Bookworm
How are you running Gitea?
We build our own container images based on Debian Bookworm and build gitea from scratch using the v1.21.7 tag. We then run this gitea container using docker-compose.
Database
MySQL/MariaDB