Re: My cdebconf is escaped !
On Wed, 2012-02-01 at 11:57 -0400, Joey Hess wrote: > Regis Boudin wrote: > > * ejabberd. During postinst, cdebconf seems to wait indefinitely on the > > read() in confmodule.c, line 109. The problem only occurs if > > "invoke-rc.d ejabberd start" is called during the postinst script, > > though. > > Sounds like the typical problem of a daemon inheriting the confmodule > FD, or something to do with STOP handling. The ejabberd postinst > does send a STOP. > > Debconf/CondModule.pm special-cases the stop command, so it does > not send a reply to it. > > Looks to me like cdebconf's command_stop returns a reply to stop. Quite > likely it blocks forever, since the client confmodule does not read > that reply. Ok, I believe (or at least hope) I've now implemented the STOP command correctly, by adding a waitpid() to the processing of the command. I used the same logic that was commented out nearly 10 years ago, relying on the call to STOP to return an empty string, and be the only one to do so. Please shout if this is wrong. The other change I applied was actually setting mod->pid in confmodule_run(). The variable was never set before, so probably left to 0. Colin seems to be the latest person to have modified these bits. Any opinion ? Monkeysphere seems to run its postscrit happily, sod does ejabberd, so I'm left without any known case of cdebconf having issues with scripts. I would be quite keen to make a release soon, unless someone knows of issues with what I did with the STOP related commits. Thanks, Regis -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1329511389.2023.97.ca...@x200s.malip.net
Re: My cdebconf is escaped !
On Wed, 2012-02-01 at 11:57 -0400, Joey Hess wrote: > Regis Boudin wrote: > > * ejabberd. During postinst, cdebconf seems to wait indefinitely on the > > read() in confmodule.c, line 109. The problem only occurs if > > "invoke-rc.d ejabberd start" is called during the postinst script, > > though. > > Sounds like the typical problem of a daemon inheriting the confmodule > FD, or something to do with STOP handling. The ejabberd postinst > does send a STOP. I thought about something related to the FD, indeed. IIRC the monkeyshpere postinst complained about stdin/stdout, so it might be more of it. > Debconf/CondModule.pm special-cases the stop command, so it does > not send a reply to it. > > Looks to me like cdebconf's command_stop returns a reply to stop. Quite > likely it blocks forever, since the client confmodule does not read > that reply. Thanks for the additional info, I'll look into the handling by debconf and see if I can fix it. Amusingly, there was just an ejabberd update, with the freeze happening while I was typing this message. Regis -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1328121820.2104.36.ca...@x200s.malip.net
Re: My cdebconf is escaped !
Regis Boudin wrote: > * ejabberd. During postinst, cdebconf seems to wait indefinitely on the > read() in confmodule.c, line 109. The problem only occurs if > "invoke-rc.d ejabberd start" is called during the postinst script, > though. Sounds like the typical problem of a daemon inheriting the confmodule FD, or something to do with STOP handling. The ejabberd postinst does send a STOP. Debconf/CondModule.pm special-cases the stop command, so it does not send a reply to it. Looks to me like cdebconf's command_stop returns a reply to stop. Quite likely it blocks forever, since the client confmodule does not read that reply. -- see shy jo signature.asc Description: Digital signature
My cdebconf is escaped !
Hi guys, So, after weeks of fighting and turning the problem around (while moving to Italy and starting a new job), I believe I have now finally implemented the escape CAPB (might not be optimal, but I believe it works). There is still some way to go before cdebconf can replace debconf 100%, though. Running it on my laptop, it mostly works, but I do have problems with some packages. The main ones I remember are : * Monkeysphere, the postinst script fails, though I don't remember the details. * ejabberd. During postinst, cdebconf seems to wait indefinitely on the read() in confmodule.c, line 109. The problem only occurs if "invoke-rc.d ejabberd start" is called during the postinst script, though. These are the two main issues preventing a complete use of it at the moment AFAIK. Beyond that, we also miss bits on the i18n side of things. Ideally, my aim is to ship with wheezy a cdebconf that would be actually usable, even if untranslated and still depending on debconf, and try to transition for wheezy+1 (one can dream, right). So, any comments ? Any idea on what the cause of the issues with monkeysphere and ejabberd might actually be ? Regis -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1328042833.2104.22.ca...@x200s.malip.net