mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2026-07-18 15:37:48 +00:00
By default, when you create an `exec.CommandContext` in Go, when the context is cancelled or timed out, Go will SIGKILL the subprocess which does not allow the subprocess to perform any cleanup work. As some git operations in Forgejo will be linked to the current HTTP context, and the current HTTP context will be closed when the HTTP client disconnects, this can theoretically cause SIGKILLs when locks are being held. This PR contains two fixes: - Change the behaviour of all subprocesses that Forgejo creates to use a graceful termination, SIGTERM'ing the process, and then SIGKILL'ing it after a timeout. - Fixes a bug where previously all subprocesses are setup in a process group (by |
||
|---|---|---|
| .. | ||
| config | ||
| actions.go | ||
| actions_test.go | ||
| admin.go | ||
| admin_test.go | ||
| api.go | ||
| asset_dynamic.go | ||
| asset_static.go | ||
| attachment.go | ||
| attachment_test.go | ||
| authorized_integration.go | ||
| badges.go | ||
| cache.go | ||
| camo.go | ||
| config.go | ||
| config_env.go | ||
| config_env_test.go | ||
| config_provider.go | ||
| config_provider_test.go | ||
| cors.go | ||
| cron.go | ||
| cron_test.go | ||
| database.go | ||
| database_sqlite.go | ||
| database_test.go | ||
| disposable_email_domain_data.go | ||
| f3.go | ||
| f3_test.go | ||
| federation.go | ||
| forgejo_storage_test.go | ||
| git.go | ||
| git_test.go | ||
| highlight.go | ||
| i18n.go | ||
| incoming_email.go | ||
| incoming_email_test.go | ||
| indexer.go | ||
| indexer_test.go | ||
| lfs.go | ||
| lfs_test.go | ||
| log.go | ||
| log_test.go | ||
| mailer.go | ||
| mailer_test.go | ||
| markup.go | ||
| metrics.go | ||
| migrations.go | ||
| mime_type_map.go | ||
| mirror.go | ||
| moderation.go | ||
| oauth2.go | ||
| oauth2_test.go | ||
| other.go | ||
| packages.go | ||
| packages_test.go | ||
| path.go | ||
| path_test.go | ||
| picture.go | ||
| project.go | ||
| proxy.go | ||
| pwa.go | ||
| queue.go | ||
| quota.go | ||
| quota_test.go | ||
| repository.go | ||
| repository_archive.go | ||
| repository_archive_test.go | ||
| repository_test.go | ||
| security.go | ||
| server.go | ||
| server_test.go | ||
| service.go | ||
| service_test.go | ||
| session.go | ||
| setting.go | ||
| setting_test.go | ||
| ssh.go | ||
| storage.go | ||
| storage_test.go | ||
| task.go | ||
| time.go | ||
| ui.go | ||
| webhook.go | ||