Skip to content

when a process can't start in the beginning,supervisorctl update will hang #746

@young001

Description

@young001

In a case,when a process can't start in the beginning,eg the binary defined in the conf doesn't exist or conf error,the program can't start to running state,still stay in backoff state.

ex_sample_1.1.1.0.223817.486782  BACKOFF    can't find command '/home/admin/ex_sample_1.1.1.0.223817.486782/ex_sample'

then if we remove the supervisor conf,run sudo supervisorctl update,the commnad will hang forever。

I have read the supervisor code,but still have a little confused,maybe I sitll doesnt' catch the point.
when I input sudo supervisorctl update after I remove the BACKOFF program supervisor conf,supervisorctl will call stopPorcessGroup,send this rpc all to supervisord http server,
results = supervisor.stopProcessGroup(gname)
and it hang,why stopProcessGroup has no timeout?
when the rpc all to supervisord service,supervisord service will call killall function,I thought it shoud be call once,if killall function failed,it will return to supervisorctl,why hang here?

killall = make_allfunc(processes, isRunning, self.stopProcess,
                               wait=wait)
killall.delay = 0.05
killall.rpcinterface = self
return killall # deferred

In the supervisord log,I found the killall function is called repeated,and no return to supervisorctl that the reason supervisorctl update hang,but I didn't find the code which call the killall function repeatedly,pls show me how and why killall function called repeatedly,and how to solve it,thx

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions