backport of commit 7f2d3f2c5c783dfacc7bc3bb86da4008d8b61bd6 (#20860)

Co-authored-by: Anton Averchenkov <84287187+averche@users.noreply.github.com>
This commit is contained in:
hc-github-team-secure-vault-core 2023-05-31 18:38:26 -04:00 committed by GitHub
parent 4175665640
commit 3a3e931cfd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 6 deletions

View File

@ -264,7 +264,16 @@ func (s *Server) bounceCmd(newEnvVars []string) error {
}
s.childProcess = proc
// listen if the child process exits and bubble it up to the main loop
if err := s.childProcess.Start(); err != nil {
return fmt.Errorf("error starting the child process: %w", err)
}
s.childProcessState = childProcessStateRunning
// Listen if the child process exits and bubble it up to the main loop.
//
// NOTE: this must be invoked after child.Start() to avoid a potential
// race condition with ExitCh not being initialized.
go func() {
ctx, cancel := context.WithCancel(context.Background())
s.childProcessExitCodeCloser = cancel
@ -277,10 +286,5 @@ func (s *Server) bounceCmd(newEnvVars []string) error {
}
}()
if err := s.childProcess.Start(); err != nil {
return fmt.Errorf("error starting child process: %w", err)
}
s.childProcessState = childProcessStateRunning
return nil
}