Skip to content

Ctrl+C result in panic #35559

@lunny

Description

@lunny

Description

^C2025/09/30 21:10:08 .../graceful/manager_unix.go:141:(*Manager).handleSignals() [W] PID 64524. Received SIGINT. Shutting down...
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "repo_stats_update" is shutting down
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "repo_license_updater" is shutting down
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-43: Queue: repo_stats_update
2025/09/30 21:10:08 .../graceful/manager_unix.go:154:(*Manager).handleSignals() [W] PID: 64524. Background context for manager closed - context canceled - Shutting down...
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "push_update" is shutting down
2025/09/30 21:10:08 modules/graceful/server.go:156:(*Server).Serve() [D] Waiting for connections to finish... (PID: 64524)
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-35: Queue: repo_license_updater
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-36: Queue: push_update
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "webhook_sender" is shutting down
2025/09/30 21:10:08 .../queue/workergroup.go:191:(*WorkerPoolQueue).doStartNewWorker.1() [D] Queue "push_update" stops idle worker
2025/09/30 21:10:08 .../graceful/server_hooks.go:46:(*Server).doShutdown() [I] PID: 64524 Listener ([::]:3000) closed.
2025/09/30 21:10:08 .../queue/workergroup.go:191:(*WorkerPoolQueue).doStartNewWorker.1() [D] Queue "repo_license_updater" stops idle worker
2025/09/30 21:10:08 .../graceful/server_hooks.go:63:(*Server).doHammer() [W] Forcefully shutting down parent
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "push_update" stops running
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "repo_license_updater" stops running
2025/09/30 21:10:08 .../graceful/server_hooks.go:57:(*Server).doHammer.1() [E] WaitGroup at 0: Error: sync: negative WaitGroup counter
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "pr_patch_checker" is shutting down
2025/09/30 21:10:08 .../src/runtime/panic.go:783:gopanic() [D] Serve() returning... (PID: 64524)
2025/09/30 21:10:08 .../queue/workergroup.go:191:(*WorkerPoolQueue).doStartNewWorker.1() [D] Queue "repo_stats_update" stops idle worker
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-47: Queue: pr_patch_checker
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-7: Graceful: HandleSignals
2025/09/30 21:10:08 .../queue/workergroup.go:191:(*WorkerPoolQueue).doStartNewWorker.1() [D] Queue "webhook_sender" stops idle worker
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a8-21: Web: Gitea Server
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "repo_stats_update" stops running
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "actions_ready_job" is shutting down
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-44: Queue: mirror
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "notification-service" is shutting down
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-50: Service: EventSource
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a8: Queue: actions_ready_job
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-48: Queue: pr_auto_merge
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-31: Queue: notification-service
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "actions_ready_job" stops running
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "task" is shutting down
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-49: Queue: task
2025/09/30 21:10:08 .../queue/workergroup.go:191:(*WorkerPoolQueue).doStartNewWorker.1() [D] Queue "notification-service" stops idle worker
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "notification-service" stops running
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-41: Queue: code_indexer
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "task" stops running
2025/09/30 21:10:08 .../queue/workergroup.go:191:(*WorkerPoolQueue).doStartNewWorker.1() [D] Queue "code_indexer" stops idle worker
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "repo-archive" is shutting down
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-32: Queue: repo-archive
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "repo-archive" stops running
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "code_indexer" is shutting down
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "code_indexer" stops running
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-45: Queue: webhook_sender
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-30: Queue: mail
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-34: Queue: tag_sync
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "branch_sync" is shutting down
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-39: Queue: issue_indexer
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-37: Queue: branch_sync
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "branch_sync" stops running
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a8-2: Service: Cron
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "issue_indexer" is shutting down
2025/09/30 21:10:08 .../queue/workergroup.go:191:(*WorkerPoolQueue).doStartNewWorker.1() [D] Queue "mail" stops idle worker
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "mirror" is shutting down
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "mail" is shutting down
2025/09/30 21:10:08 .../queue/workergroup.go:191:(*WorkerPoolQueue).doStartNewWorker.1() [D] Queue "pr_patch_checker" stops idle worker
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "pr_auto_merge" is shutting down
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "pr_patch_checker" stops running
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "webhook_sender" stops running
2025/09/30 21:10:08 .../queue/workergroup.go:345:(*WorkerPoolQueue).doRun() [D] Queue "tag_sync" is shutting down
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a8-17: Asset Local FileSystem Watcher
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-24: Asset Local FileSystem Watcher
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a7-29: Asset Local FileSystem Watcher
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca6a8-18: Service: SlowQueryDetector
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "issue_indexer" stops running
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "mail" stops running
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "pr_auto_merge" stops running
2025/09/30 21:10:08 .../queue/workergroup.go:346:(*WorkerPoolQueue).doRun() [D] Queue "tag_sync" stops running
2025/09/30 21:10:08 HTTPRequest [T] router: completed GET /user/events for [::1]:54218, 200 OK in 459552.0ms @ events/events.go:18(events.Events)
2025/09/30 21:10:08 modules/process/manager.go:226:(*Manager).remove() [T] Done 68dca7d4-39: HTTP: GET /user/events
2025/09/30 21:10:08 modules/graceful/server.go:275:(*wrappedConn).Close.1() [W] Panic during connection close! sync: negative WaitGroup counter. Likely there has been a deadlocked request which has been released by forced shutdown.
2025/09/30 21:10:08 cmd/web.go:251:runWeb.1() [F] PANIC: sync: WaitGroup is reused before previous Wait has returned
/Users/xxxx/sdk/go1.25.1/src/sync/waitgroup.go:208 (0x100e04dcb)
	(*WaitGroup).Wait: panic("sync: WaitGroup is reused before previous Wait has returned")
/Users/xxxx/data/Projects/gitea/gitea/modules/graceful/server.go:157 (0x1016eea4b)
	(*Server).Serve: srv.wg.Wait()
/Users/xxxx/data/Projects/gitea/gitea/modules/graceful/server.go:95 (0x1016ee52f)
	(*Server).ListenAndServe: return srv.Serve(serve)
/Users/xxxx/data/Projects/gitea/gitea/modules/graceful/server_http.go:29 (0x1016ef93b)
	HTTPListenAndServe: return server.ListenAndServe(lHandler, useProxyProtocol)
/Users/xxxx/data/Projects/gitea/gitea/cmd/web_graceful.go:18 (0x1030c293f)
	runHTTP: return graceful.HTTPListenAndServe(network, listenAddr, name, m, useProxyProtocol)
/Users/xxxx/data/Projects/gitea/gitea/cmd/web.go:344 (0x1030c290c)
	listen: err = runHTTP("tcp", listenAddr, "Web", m, setting.UseProxyProtocol)
/Users/xxxx/data/Projects/gitea/gitea/cmd/web.go:231 (0x1030c1da7)
	serveInstalled: err := listen(webRoutes, true)
/Users/xxxx/data/Projects/gitea/gitea/cmd/web.go:286 (0x1030c215f)
	runWeb: return serveInstalled(cmd)
/Users/xxxx/go/pkg/mod/github.com/urfave/cli/[email protected]/command_run.go:344 (0x101dea91f)
	(*Command).run: if err := cmd.Action(ctx, cmd); err != nil {
/Users/xxxx/go/pkg/mod/github.com/urfave/cli/[email protected]/command_run.go:278 (0x101dea377)
	(*Command).run: ctx, err = subCmd.run(ctx, cmd.Args().Slice())
/Users/xxxx/go/pkg/mod/github.com/urfave/cli/[email protected]/command_run.go:94 (0x1030bb247)
	(*Command).Run: _, deferErr = cmd.run(ctx, osArgs)
/Users/xxxx/data/Projects/gitea/gitea/cmd/main.go:154 (0x1030bb228)
	RunMainApp: err := app.Run(ctx, args)
/Users/xxxx/data/Projects/gitea/gitea/main.go:46 (0x1030f6c57)
	main: _ = cmd.RunMainApp(app, os.Args...) // all errors should have been handled by the RunMainApp
/Users/xxxx/sdk/go1.25.1/src/runtime/proc.go:285 (0x100dba7e7)
	main: fn()
/Users/xxxx/sdk/go1.25.1/src/runtime/asm_arm64.s:1268 (0x100df8ca3)
	goexit: MOVD	R0, R0	// NOP

Gitea Version

main

Can you reproduce the bug on the Gitea demo site?

Yes

Log Gist

No response

Screenshots

No response

Git Version

No response

Operating System

No response

How are you running Gitea?

local env

Database

None

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions