#374 closed defect (fixed)

Processes don't die in ForkDaemon + GLib mode

Reported by: wilmer Owned by:
Priority: critical Milestone: 1.2.1
Component: BitlBee Version: 1.2
Keywords: Cc:
IRC client+version: Client-independent Operating System: Public server
OS version/distro:


When a user disconnects, the child process doesn't actually die when using ForkDaemon mode and using GLib for event handling. With libevent, there's no problem.

(On I always use libevent so I never noticed this so far...)

Attachments (0)

Change History (4)

comment:1 Changed at 2008-03-19T10:51:16Z by wilmer

Priority: majorcritical

comment:2 Changed at 2008-03-21T00:51:19Z by wilmer

Most likely found the problem. b_main_quit() is called to exit the main loop, but in fork daemon a new main loop is created for the subprocess, without forcing BitlBee into entering that loop. IOW, BitlBee tells GLib to exit a loop that isn't even active yet.

May get a bit hairy to fix this...

comment:4 Changed at 2008-03-22T12:05:20Z by wilmer

Resolution: fixed
Status: newclosed

Oh, forgot to actually close the bug. The fix isn't that hairy, but may break if GLib ever switches to something more advanced than poll()/select(). I doubt if they'll ever do that, since epoll() and friends exist for *years* already. Probably not worth it.

Modify Ticket

as closed The ticket will remain with no owner.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.