On 2013-09-09 10:08, Paul J Stevens wrote:
On 09-09-13 08:27, Thomas Raschbacher wrote:
write(13, "Q", 1) = -1 EAGAIN (Resource
temporarily unavailable)
read(25, 0x1843e70, 11) = -1 EAGAIN (Resource
temporarily unavailable)
Thomas,
could you please test 4c23432cc270554557f9e130331214d81164131b
I've put a mutex lock around the file-handle involved here, since read
and write are not thread-safe, and both actions here can (and will)
happen in different threads.
The only scenario I could come up with is:
Worker thread starts writing to filehandle 13 (the selfpipe). This
triggers a read-event in the main thread even before the worker has
finished writing, causing both of them to be unable to finish the call.
If this hypothesis is correct, this should be solved be mentioned
commit
ID. And anyway, I doesn't hurt to protect the self-pipe handles with a
lock.
another spin-lock just earlier:
write(13, "Q", 1) = -1 EAGAIN (Resource
temporarily unavailable)
read(20, 0x267f183, 5) = -1 EAGAIN (Resource
temporarily unavailable)
fyi:
cat fdinfos
insgesamt 0
lr-x------ 1 root root 64 10. Sep 08:53 0 -> /dev/null
l-wx------ 1 root root 64 10. Sep 08:53 1 -> /var/log/dbmail.log
lrwx------ 1 root root 64 10. Sep 08:53 10 -> socket:[34765010]
lrwx------ 1 root root 64 10. Sep 08:53 11 -> anon_inode:[eventfd]
lr-x------ 1 root root 64 10. Sep 08:53 12 -> pipe:[34765011]
l-wx------ 1 root root 64 10. Sep 08:53 13 -> pipe:[34765011]
lrwx------ 1 root root 64 10. Sep 08:53 14 -> socket:[34765012]
lrwx------ 1 root root 64 10. Sep 08:53 15 -> socket:[34765013]
l-wx------ 1 root root 64 10. Sep 08:53 16 ->
/run/dbmail/dbmail-imapd.pid
lrwx------ 1 root root 64 10. Sep 08:53 17 -> socket:[34777264]
lrwx------ 1 root root 64 10. Sep 08:53 18 -> socket:[34778216]
lrwx------ 1 root root 64 10. Sep 08:53 19 -> socket:[34779455]
l-wx------ 1 root root 64 10. Sep 08:53 2 -> /var/log/dbmail.err
lrwx------ 1 root root 64 10. Sep 08:53 20 -> socket:[34779457]
lrwx------ 1 root root 64 10. Sep 08:53 21 -> socket:[34773658]
lrwx------ 1 root root 64 10. Sep 08:53 22 -> socket:[34778218]
lrwx------ 1 root root 64 10. Sep 08:53 23 -> socket:[34778217]
lrwx------ 1 root root 64 10. Sep 08:53 3 -> socket:[34720269]
lrwx------ 1 root root 64 10. Sep 08:53 4 -> socket:[34763057]
lrwx------ 1 root root 64 10. Sep 08:53 5 -> socket:[34763061]
lrwx------ 1 root root 64 10. Sep 08:53 6 -> socket:[34762414]
lrwx------ 1 root root 64 10. Sep 08:53 7 -> socket:[34762418]
lrwx------ 1 root root 64 10. Sep 08:53 8 -> anon_inode:[eventpoll]
lrwx------ 1 root root 64 10. Sep 08:53 9 -> socket:[34765009]
now I just noticed, that not all libraries (sieve shared lib for
example) hadn'T been overwritten by my manual compile/install because I
forgot a configure switch. I did now do this properly (temporary ebuild
with exactly the same options as my normal build).
Could it be that because of those libs, that your fix didn'T take effect
yet? -- if you think it is because of that please ignore the email, just
sending it before i forget about it.
_______________________________________________
DBmail mailing list
[email protected]
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail