fix: prevent race condition when channel is used before being set
All checks were successful
Docker Build and Push / build-and-push (push) Successful in 6m24s
All checks were successful
Docker Build and Push / build-and-push (push) Successful in 6m24s
This commit is contained in:
@ -71,9 +71,6 @@ func New(conn *ssh.ServerConn, forwardingReq <-chan *ssh.Request, sshChan <-chan
|
|||||||
SlugManager: slugManager,
|
SlugManager: slugManager,
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
|
||||||
go session.Lifecycle.WaitForRunningStatus()
|
|
||||||
|
|
||||||
for channel := range sshChan {
|
for channel := range sshChan {
|
||||||
ch, reqs, err := channel.Accept()
|
ch, reqs, err := channel.Accept()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -85,6 +82,7 @@ func New(conn *ssh.ServerConn, forwardingReq <-chan *ssh.Request, sshChan <-chan
|
|||||||
session.Interaction.SetChannel(ch)
|
session.Interaction.SetChannel(ch)
|
||||||
session.Lifecycle.SetStatus(types.SETUP)
|
session.Lifecycle.SetStatus(types.SETUP)
|
||||||
go session.HandleGlobalRequest(forwardingReq)
|
go session.HandleGlobalRequest(forwardingReq)
|
||||||
|
session.Lifecycle.WaitForRunningStatus()
|
||||||
})
|
})
|
||||||
|
|
||||||
go session.HandleGlobalRequest(reqs)
|
go session.HandleGlobalRequest(reqs)
|
||||||
@ -92,7 +90,6 @@ func New(conn *ssh.ServerConn, forwardingReq <-chan *ssh.Request, sshChan <-chan
|
|||||||
if err := session.Lifecycle.Close(); err != nil {
|
if err := session.Lifecycle.Close(); err != nil {
|
||||||
log.Printf("failed to close session: %v", err)
|
log.Printf("failed to close session: %v", err)
|
||||||
}
|
}
|
||||||
}()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateClientSlug(oldSlug, newSlug string) bool {
|
func updateClientSlug(oldSlug, newSlug string) bool {
|
||||||
|
|||||||
Reference in New Issue
Block a user