mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #11967 from LK4D4/fix_panic
Avoid ServeApi race condition
This commit is contained in:
commit
596ddef7d7
2 changed files with 4 additions and 3 deletions
|
@ -32,7 +32,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
activationLock chan struct{}
|
activationLock chan struct{} = make(chan struct{})
|
||||||
)
|
)
|
||||||
|
|
||||||
type HttpServer struct {
|
type HttpServer struct {
|
||||||
|
@ -1445,7 +1445,6 @@ func ServeApi(job *engine.Job) error {
|
||||||
protoAddrs = job.Args
|
protoAddrs = job.Args
|
||||||
chErrors = make(chan error, len(protoAddrs))
|
chErrors = make(chan error, len(protoAddrs))
|
||||||
)
|
)
|
||||||
activationLock = make(chan struct{})
|
|
||||||
|
|
||||||
for _, protoAddr := range protoAddrs {
|
for _, protoAddr := range protoAddrs {
|
||||||
protoAddrParts := strings.SplitN(protoAddr, "://", 2)
|
protoAddrParts := strings.SplitN(protoAddr, "://", 2)
|
||||||
|
|
|
@ -82,7 +82,9 @@ func AcceptConnections(job *engine.Job) error {
|
||||||
// Tell the init daemon we are accepting requests
|
// Tell the init daemon we are accepting requests
|
||||||
go systemd.SdNotify("READY=1")
|
go systemd.SdNotify("READY=1")
|
||||||
// close the lock so the listeners start accepting connections
|
// close the lock so the listeners start accepting connections
|
||||||
if activationLock != nil {
|
select {
|
||||||
|
case <-activationLock:
|
||||||
|
default:
|
||||||
close(activationLock)
|
close(activationLock)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in a new issue