[SSSD] [PATCH] when monitor_quit is call and the process not exists

Jakub Hrozek jhrozek at redhat.com
Thu Nov 22 14:42:59 UTC 2012


On Wed, Nov 21, 2012 at 03:15:43PM -0500, Ariel Barria wrote:
> 
> Hi.
> well, I'm not sure that this patch have the behavior that is it hope. You have the word.
> But when monitor_quit is call and the process not exists, this remains in loop and not allow signal.
> I try it with Monitor Task and nothing. 
> I had to reboot 		 	   		  

Thanks a lot, Ariel, this is quite a bad bug. The concept is good, but
can you change the patch a little?

instead of:
 if (error != EINTR) {
    kill()
    if (error == ESRCH || error == ECHILD) {
        killed = true;
    }
 }

I would use:
    if (error == ECHILD) {
        /* Skip this process */
        killed = true;
    } else if (error != EINTR) {
        /* Keep the block with the kill function around */
    }

Also, are you sure about the ESRCH error code? The waitpid man page only
mentions ECHILD..



More information about the sssd-devel mailing list