On 07 Sep 2015, at 23:19, Sebastian Wiedenroth sebastian.wiedenroth@skylime.net wrote:
Am 07.09.2015 um 21:34 schrieb Timo Sirainen tss@iki.fi:
On 07/16/2015 06:03 PM, Sebastian Wiedenroth wrote:
Fix hang in safe_sendfile on SmartOS
The call to sendfile on SmartOS can fail with EOPNOTSUPP. This is a valid error code and documented in the man page. This error code needs to be handled or else dovecot will retry the sendfile call endlessly and hang.
Committed .. However, I think a more important bug is that it hangs. It's definitely not supposed to hang. Which process was it that was hanging How can I reproduce that? I can only get it to disconnect the IMAP client.
Thanks!
It was the managesieve process that was hanging. To trigger it we used sieve-connect [1] like this: sieve-connect -u demo@example.com mailbox.example.com
Thanks. I did find a bug in Pigeonhole with this when issuing a GET command :)
Also I see now why it's looping, more or less. sendfile() is still indicating that it's sending some data (by updating s_offset) even though it's returning a failure. I wonder if reverting the earlier EOPNOTSUPP change and applying this patch causes it to assert-crash instead of going to infinite loop? http://hg.dovecot.org/dovecot-2.2/rev/f6dd24658fb1