Open Colstuwjx opened 3 years ago
I've been found the fail point, but I'm still wondering about the reason:
func (p *Process) waitForExit(startSecs int64) {
...
defer p.lock.Unlock()
...
}
run()
suddenly called defer unlock at process.goL526, and it caused panic:func (p *Process) run(finishCb func()) {
...
defer p.lock.Unlock()
...
}
How to reproduce: it's easily reproduced by running a supervisord, and kill a managed program, it would panic at that moment...
I think the root cause was that we didn't set the program logger if it's eventlistener type, and https://github.com/ochinchina/supervisord/pull/273/commits/827585c8442aa5d32b5d72a7d488f7f8cc3f9eb0 is my fix.
Hi, I'm trying to kill a program which is managed by supervisord, and it panic at waitForExit:
go version: go version go1.16 darwin/amd64 code version: cb079d1