Changes
9 changed files (+44/-0)
-
-
@@ -24,6 +24,7 @@ import ("code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/pprof" "code.gitea.io/gitea/modules/private" "code.gitea.io/gitea/modules/process" repo_module "code.gitea.io/gitea/modules/repository" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/services/lfs"
-
@@ -306,6 +307,7 @@ func runServ(c *cli.Context) error {} } process.SetSysProcAttribute(gitcmd) gitcmd.Dir = setting.RepoRootPath gitcmd.Stdout = os.Stdout gitcmd.Stdin = os.Stdin
-
-
-
@@ -124,6 +124,7 @@ func createBlameReader(ctx context.Context, dir string, command ...string) (*Blacmd := exec.CommandContext(ctx, command[0], command[1:]...) cmd.Dir = dir cmd.Stderr = os.Stderr process.SetSysProcAttribute(cmd) stdout, err := cmd.StdoutPipe() if err != nil {
-
-
-
@@ -157,6 +157,7 @@ func (c *Command) Run(opts *RunOpts) error {"GIT_NO_REPLACE_OBJECTS=1", ) process.SetSysProcAttribute(cmd) cmd.Dir = opts.Dir cmd.Stdout = opts.Stdout cmd.Stderr = opts.Stderr
-
-
-
@@ -124,6 +124,8 @@ func (p *Renderer) Render(ctx *markup.RenderContext, input io.Reader, output io.cmd.Stdin = input } cmd.Stdout = output process.SetSysProcAttribute(cmd) if err := cmd.Run(); err != nil { return fmt.Errorf("%s render run command %s %v failed: %v", p.Name(), commands[0], args, err) }
-
-
-
@@ -58,6 +58,7 @@ func (pm *Manager) ExecDirEnvStdIn(ctx context.Context, timeout time.Duration, dif stdIn != nil { cmd.Stdin = stdIn } SetSysProcAttribute(cmd) if err := cmd.Start(); err != nil { return "", "", err
-
-
-
@@ -0,0 +1,18 @@// Copyright 2022 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. //go:build !windows package process import ( "os/exec" "syscall" ) // SetSysProcAttribute sets the common SysProcAttrs for commands func SetSysProcAttribute(cmd *exec.Cmd) { // When Gitea runs SubProcessA -> SubProcessB and SubProcessA gets killed by context timeout, use setpgid to make sure the sub processes can be reaped instead of leaving defunct(zombie) processes. cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} }
-
-
-
@@ -0,0 +1,16 @@// Copyright 2022 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. //go:build windows package process import ( "os/exec" ) // SetSysProcAttribute sets the common SysProcAttrs for commands func SetSysProcAttribute(cmd *exec.Cmd) { // Do nothing }
-
-
-
@@ -102,6 +102,8 @@ func sessionHandler(session ssh.Session) {} defer stdin.Close() process.SetSysProcAttribute(cmd) wg := &sync.WaitGroup{} wg.Add(2)
-
-
-
@@ -281,6 +281,7 @@ func (s *sendmailSender) Send(from string, to []string, msg io.WriterTo) error {if err != nil { return err } process.SetSysProcAttribute(cmd) if err = cmd.Start(); err != nil { _ = pipe.Close()
-