=== cortana [n=sam@62-31-146-25.cable.ubr12.azte.blueyonder.co.uk] has joined #upstart === khermans__ [i=administ@nat/cisco/x-f8b562da6ccce3bd] has joined #upstart === eikniw [n=winkie@unaffiliated/eikniw] has joined #upstart === wasabi [n=wasabi@ubuntu/member/wasabi] has joined #upstart === wasabi_ [n=jhaltom@ubuntu/member/wasabi] has joined #upstart === j_ack [n=rudi@p508DC039.dip0.t-ipconnect.de] has joined #upstart === mbiebl [n=michael@e180098207.adsl.alicedsl.de] has joined #upstart === khermans__ [i=administ@nat/cisco/x-4a0c84b9d49c532f] has joined #upstart === pkt [n=pantelis@athedsl-135885.otenet.gr] has joined #upstart === urban__ [n=urban@xa147.internetdsl.tpnet.pl] has joined #upstart === urban__ is now known as urban === Starting logfile irclogs/upstart.log === ubuntulog [i=ubuntulo@ubuntu/bot/ubuntulog] has joined #upstart === Topic for #upstart: Upstart 0.3.5 | http://upstart.ubuntu.com/ | http://upstart.ubuntu.com/wiki/ | http://upstart.ubuntu.com/doc/getting-started.html | http://codebrowse.launchpad.net/~keybuk/upstart/main/changes | irc logs: http://people.ubuntu.com/~fabbione/irclogs | http://upstart.ubuntu.com/wiki/UpstartOnGentoo === Topic (#upstart): set by Keybuk at Tue Feb 13 18:08:07 2007 === Keybuk [n=scott@quest.netsplit.com] has joined #upstart === mbiebl [n=michael@e180098207.adsl.alicedsl.de] has joined #upstart === Md [i=md@freenode/staff/md] has joined #upstart [12:49] hmm [12:49] so "status foo", pretty obvious that should return one entry for a normal job [12:50] and I think it's correct to return a list of jobs for an instance job [12:54] but should it also return the "master" job, which would always be stop/waiting [12:54] or should I have a special message for an instance job list === pkt [n=pantelis@85.75.154.205] has joined #upstart === j_ack [n=rudi@p508DC0A7.dip0.t-ipconnect.de] has joined #upstart === theCore [n=alex@ubuntu/member/theCore] has joined #upstart === Keybuk starts tackling initctl [05:38] heh [05:38] "Do not stand directly in front of this door." [05:38] well do you expect blind people to read it without going up to it? :p [05:39] that was my point :p [05:39] yeah i know ;) === mbiebl [n=michael@e180106039.adsl.alicedsl.de] has joined #upstart === Mithodin [n=tux@p57A95222.dip.t-dialin.net] has joined #upstart [06:12] Hello === mbiebl [n=michael@e180106039.adsl.alicedsl.de] has joined #upstart === maro [n=mark@0x55511dab.adsl.cybercity.dk] has joined #upstart === j_ack [n=rudi@p508DC0A7.dip0.t-ipconnect.de] has joined #upstart === juergbi [n=juerg@80-219-17-102.dclient.hispeed.ch] has joined #upstart === khermans__ [i=administ@nat/cisco/x-4973a7fc3d4def11] has joined #upstart === theCore [n=alex@ubuntu/member/theCore] has joined #upstart === Starting logfile irclogs/upstart.log === ubuntulog [i=ubuntulo@ubuntu/bot/ubuntulog] has joined #upstart === Topic for #upstart: Upstart 0.3.5 | http://upstart.ubuntu.com/ | http://upstart.ubuntu.com/wiki/ | http://upstart.ubuntu.com/doc/getting-started.html | http://codebrowse.launchpad.net/~keybuk/upstart/main/changes | irc logs: http://people.ubuntu.com/~fabbione/irclogs | http://upstart.ubuntu.com/wiki/UpstartOnGentoo === Topic (#upstart): set by Keybuk at Tue Feb 13 18:08:07 2007 === theCore [n=alex@ubuntu/member/theCore] has joined #upstart === AlexExtreme [n=AlexExtr@frugalware/developer/AlexExtreme] has joined #upstart === Keybuk [n=scott@wing-commander.netsplit.com] has joined #upstart === shawarma [n=sh@atlas.linux2go.dk] has joined #upstart === Keybuk is much happier [08:13] why's that? [08:14] initctl is turning out to be rather simpler with the new IPC messages [08:14] cool [08:33] Keybuk: I wanted to prepare a 0.3.5 release for experimental today. [08:34] Got a couple of questions [08:34] sure [08:34] Is console logged still unsafe? [08:35] it's still disabled yeah, I haven't touched logd any further yet [08:35] the problem is the bad behaviour of just about every app when they can't write to stdout [08:35] ok, then I'll better also use console output then. [08:36] The next issue is rc0-poweroff/rc0-halt, which were obsoleted. [08:36] haven't traced it further; can't see why they terminate, rather than just ignore it [08:36] yes [08:36] since we can transfer environment variables in an event, it made more sense for shutdown itself to set INIT_HALT, just as it did with sysvinit [08:37] You seem to backup them to dpkg-bak if they were modified in preinst. Why not just remove it? [08:38] general "don't remove other people's modified conffiles" behaviour [08:38] You also delete the unmodified ones in preinst, so they are still recorded as installed by dpkg [08:38] that's a dpkg bug [08:38] older dpkg behaves correctly [08:38] there's currently no way to remove a conffile without it still showing up in dpkg -L [08:39] even if it's not shipped in the current version of a package [08:39] I tried it that way: [08:39] mv the modified ones in preinst to .dpkg-bak, the unmodified ones to .dpkg-remove [08:39] Remove .dpkg-remove files in postinst. [08:40] If upgrade fails, restore .dpkg-bak and .dpkg-remove files back. [08:40] (abort-upgrade in postinst) [08:42] how does that change it? [08:42] dpkg still records the conffile, no? [08:42] no, it doesn't [08:42] ahh [08:42] interesting [08:43] that's changed recently then [08:43] shiny [08:43] I'll update my functions accordingly [08:43] It also restores the state completely on an aborted upgrade. [08:44] If I rmmed the unmodified ones in preinst that wouldn't be possible. [08:44] I rm them in postinst, no? [08:45] Yes. [08:45] the recipe always used to be: [08:46] in preinst, move to dpkg.bak if modified, leave alone if not [08:46] in postinst, remove if still exists [08:46] in postrm abort-upgrade, rename .dpkg-bak back to the conffile [08:46] -- [08:46] so what happens there is the conffile is in place when the package is upgraded, so dpkg notes it in status as an obsolete [08:47] looks like dpkg has been fixed so dpkg actually stats the file, and doesn't note a missing file as obsolete now [08:47] so the recipe should be: [08:47] in preinst, move to .dpkg-bak if modified, .dpkg-remove if not [08:47] in postinst, remove .dpkg-remove if it exists [08:47] in postrm abort-upgrade, rename .dpkg-bak or .dpkg-remove back to the conffile [08:47] yes? [08:48] yeah, that's what I do currently. === theCore [n=alex@ubuntu/member/theCore] has joined #upstart [08:48] I just wanted to hear your thoughts on this, if you think this is the correct way (tm) to do it. [08:48] that makes perfect sense [08:49] I really hoped dpkg would be a bit more clever in that regard. [08:49] And did that automatically. [08:50] :D [08:50] note a bug in the Ubuntu upstart package [08:50] migrate-inittab generates the wrong runlevel event names [08:52] I haven't synced this feature into the Debian postinst (yet) [08:53] *nods* [08:53] btw, woooooo shiny: [08:53] wing-commander util% sudo ./initctl start tests/foo [08:53] tests/foo (start) waiting [08:53] tests/foo (start) starting [08:53] tests/foo (start) pre-start [08:53] pre-start process 2533 [08:53] tests/foo (stop) pre-start [08:53] tests/foo (stop) stopping [08:53] tests/foo (stop) killed [08:53] tests/foo (stop) post-stop [08:53] tests/foo (stop) waiting [08:54] initctl: tests/foo pre-start process killed by SEGV signal [08:54] -- [08:54] start blocks until the job is running/finished, and returns an error if the job failed, and outputs all the interim process states [08:55] oh, I remember another issue: postinst/purge [08:55] I added a call to remove .dpkg-bak there. [08:55] hmm, interesting [08:55] hadn't previously considered that [08:55] does dpkg remove modified configuration files on purge? [08:56] yes, that's why I added it [08:56] To be compliant with dpkg's behaviour [08:58] *nods* [08:58] tests/foo (start) post-start [08:58] main process 2865 [08:58] post-start process 2866 [08:58] \o/ [09:00] Does that mean, I could start a daemon in (pre|post)-(start|stop) (and have it monitored/respawned)? [09:00] no, upstart wouldn't know the process id [09:01] Mar 5 19:59:52 wing-commander init: Caught segmentation fault, core dumped [09:01] Mar 5 20:00:23 wing-commander last message repeated 19073 times [09:01] Mar 5 20:01:24 wing-commander last message repeated 33310 times [09:01] oops === Md [i=md@freenode/staff/md] has joined #upstart [09:06] Keybuk, that looks bad ;) [09:13] AlexExtreme: yeah, haven't figured out a way to dump core *and* get over the problem instruction yet [09:13] so when it SEGVs, it basically ends up in an infinite loop writing core to the disk [09:13] yes [09:14] so basically it needs to stop calling the function that's causing the SEGV if possible? [09:14] right, but how do you do that? [09:14] the function has probably altered state [09:15] so you have no idea whether the global state is consistent [09:15] you may have a job that has dangling pointers into the nether [09:15] so you can't carry on, because you'll just dump core again [09:15] yep :/ [09:15] and you can't even reexec and transfer your state, because you could dump core while reexecing [09:15] the best solution so far is to reexec without transfering state [09:15] which will cause X to crash :p [09:15] :) [09:15] but I figure X crashing is better than nothing [09:16] yes [09:25] brb, need to SUB === theCore [n=alex@ubuntu/member/theCore] has joined #upstart === Keybuk [n=scott@wing-commander.netsplit.com] has joined #upstart [09:30] right [09:30] better === theCore [n=alex@ubuntu/member/theCore] has joined #upstart [09:31] that works actually [09:31] SEGV'ing init might crash X [09:31] but apport catches it [09:31] so you get a friendly explanation *why* and can click to file a bug [09:32] which is nice [09:34] wing-commander util# ./initctl status tests/inst [09:34] tests/inst (instance) [09:34] wing-commander util# ./initctl start -n tests/inst [09:34] wing-commander util# ./initctl start -n tests/inst [09:34] wing-commander util# ./initctl start -n tests/inst [09:34] wing-commander util# ./initctl status tests/inst [09:34] tests/inst (instance) [09:34] (start) running [09:34] (start) running [09:34] (start) running [09:34] ^ do we like that as a method for reporting instance jobs? === theCore [n=alex@ubuntu/member/theCore] has joined #upstart === theCore [n=alex@ubuntu/member/theCore] has joined #upstart [09:40] (and stop tests/inst stops every single instance) === theCore [n=alex@ubuntu/member/theCore] has joined #upstart [10:03] Keybuk, looks good [10:04] needs some cleaning up, and testing but I'm pretty happy with it === j_ack [n=rudi@p508DC0A7.dip0.t-ipconnect.de] has joined #upstart