On Wed, 07 Nov 2007, Volker Sauer wrote: > On Di, 06 Nov 2007, Henrique de Moraes Holschuh <[EMAIL PROTECTED]> wrote: > > On Tue, 06 Nov 2007, Volker Sauer wrote: > > > Nov 5 08:28:01 paris cyrus/imapd[24948]: IOERROR: locking header for > > > user.guerrero.Sent: Interrupted system call > > > > This is a bug somewhere. Cyrus should *always* retry on EINTR, but > > somewhere it is not doing it. And I could never find where the retry is > > missing :-( > > > > I *think* it was in the file locking code somewhere. > > Can you explain in which situations this bug happens (in the code)? > Maybe I can find a workaround.
A syscall returns EINTR, but the code forgets to test for EINTR and instead of repeating the syscall, bombs out with an error. The EINTR test is not needed if *all* the signal handlers that are not SIG_IGNORE are of type SA_RESTART, so the error might be a signal handler that is not being initialized (or re-initialized) as SA_RESTART. -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]