GNOME Bugzilla – Bug 384183
Sometimes "hangs" on Send & Receive
Last modified: 2013-09-13 00:50:17 UTC
Please describe the problem: Sometimes when pressing the Send & Receive button, the dialog will not go away. I can close it [X] and continue working, but I cannot cancel it, and whenever I try again, it "hangs" in the same way again. Steps to reproduce: 1. Press the Send & Receive button repeatedly Actual results: The dialog will not go away Expected results: The dialog should close normally, or at least be cancellable. Does this happen every time? No, I have to press the button repeatedly. But it's easy to reproduce Other information: I seems to hang on smtp... see attachment. I'm using 2.9.3 on Ubuntu Feisty.
Created attachment 78055 [details] The dialog when "hung"
We're seeing this a lot in RHEL/FC6 too. Bug report at: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=217568
This is caused by a pretty bad race condition in the new e-msgport implementation, it can sometimes lose messages. Attaching patch to fix it.
Created attachment 79949 [details] [review] Fix race condition in EMsgPort that can result in lost messages
(see rh bug for analysis)
I believe the patch in bug #359979 would also fix this. It changes the e_msgport_wait() semantics from "block-and-peek" to "block-and-pop".
I strongly recommend Alex's patch for Evo 2.8.3 since it maintains semantic API compatibility. CC'ing harish.
Please commit the patch to stable branch.
Rats, I just realized that the stable branch does not use the new EMsgPort implementation from bug #348888 upon which this patch is based. I remember now that we held off on committing the new implementation until 2.9 because it broke ABI. (I did add it to Fedora Core 6 though, that's what was confusing me.) I guess that means bug #348888 (massive file descriptor consumption) is still present in the stable branch! For the development branch, the patch in bug #359979 is the preferred solution for this bug. So I'm marking the patch here as obsolete and will close this bug once the other patch is committed.
Committed the patch in bug #359979, which fixes this bug.