>I have a report from a user that is is getting EINTR when a SIGALRM goes 
>off on his write().  It isn't unexpected to get SIGALRM because he 
>called the alarm, but he also has SA_RESTART set.  I can't remember 
>whose responsibility it is to restart the call, syscall or whereever, 
>but it seems that someone is dropping the ball because if EINTR is 
>returned then SA_RESTART didn't seem to do the trick, right?

I would agree with you on that one; if you're setting SA_RESTART then
you shouldn't ever get EINTR.  It looks like what should be happening
is that if you get interrupted the system call should return
ERESTARTSYS and then after the signal handler is done the system call
should be re-run for you by the signal handling code.

I see that at least for some cases, Lustre will use ERESTARTSYS; just a
guess, but maybe somewhere Lustre is returning EINTR itself instead of
returning ERESTARTSYS?

--Ken
_______________________________________________
Lustre-discuss mailing list
Lustre-discuss@lists.lustre.org
http://lists.lustre.org/mailman/listinfo/lustre-discuss

Reply via email to