cyrus 2.4 deadlock identified: SIGALRM race

Bron Gondwana brong at fastmail.fm
Tue Sep 1 19:03:13 EDT 2015


Sounds good to me.  Thanks for doing this.

Bron.

On Wed, Sep 2, 2015, at 02:35, Thomas Jarosch wrote:
> On Tuesday, 1. September 2015 14:31:23 Thomas Jarosch wrote:
> > ------------------------------
> > commit 17eb391b918c394319e4d1fe5985de10128f34d7
> > Author: Greg Banks <gnb at fastmail.fm>
> > Date:   Fri Mar 23 17:27:32 2012 +1100
> > 
> >     idle: don't use signals, use AF_UNIX dgrams
> > 
> >     Communications back from idled to imapds are via a message sent on the
> > AF_UNIX socket.  The IDLE command is implemented as a select() loop, and
> > there's absolutely nothing that needs to be done in signal handler
> > context.  Best of all, no more unexpected delivery of SIGUSR1 or
> > SIGUSER2, assassinating innocent bystander processes.
> > ------------------------------
> 
> it looks like the changes to idle.c / idled.c / idlemsg.c can easily be 
> backported (=cherry-picked) to 2.4. Many of them apply without
> any manual changes needed.
> 
> For a quick test I've already cherry-picked these commits to 2.4:
> -------------------------------
> 6c66fea idle: shut down on SIGQUIT
> 490245b idle: don't do FD_ISSET(-1,) it's unhelpful
> d3b4d40 idle: unlink local AF_UNIX socket when done
> 215ded8 idle: rename notify_sock -> idle_sock
> e0a2ae7 idle: don't use signals, use AF_UNIX dgrams
> b03bacf idle: centralise AF_UNIX socket creation
> 060892e idle: move message send/recv into a common file
> a072b0b idle: rename idle_data_t -> idle_message_t
> 47bf369 idle: better function names in idled
> 5beb409 idle: some const correctness
> 7bfe482 idle: remove "freelist" ientry memory management
> 8ebce36 idle: rename messages IDLE_FOO -> IDLE_MSG_FOO
> c302829 idle: whitespace cleanup
> -------------------------------
> 
> This was just a rough try, I'll compile a more complete
> list of needed changes. If I get this up and running, I'll send
> a git pull request for 2.4 to fix this nasty issue.
> 
> Thomas
> 


-- 
  Bron Gondwana
  brong at fastmail.fm


More information about the Cyrus-devel mailing list