There's only two layers of processing in multi-process. There's the master process and then there's the child processes. nova-api will wait for children to exit before it exits.
If there's a process still running afterwards, then either it wasn't created by the master process (or the code that tracks the children) or it never waited for children to finish before exiting.
Your traceback makes it look like it never waited, which would make sense given the behavior you saw.
It does look like using logging in a signal handler is a bad idea. I'll put a patch up for review to avoid that.
There's only two layers of processing in multi-process. There's the master process and then there's the child processes. nova-api will wait for children to exit before it exits.
If there's a process still running afterwards, then either it wasn't created by the master process (or the code that tracks the children) or it never waited for children to finish before exiting.
Your traceback makes it look like it never waited, which would make sense given the behavior you saw.
It does look like using logging in a signal handler is a bad idea. I'll put a patch up for review to avoid that.