/srv/irclogs.ubuntu.com/2009/07/16/#upstart.txt

=== Md_ is now known as Md
ionhttp://tobytripp.github.com/meeting-ticker/16:38
Keybukerk17:43
Keybukit looks like LP was spamming everyone in the upstart-devel team with bugs17:43
Keybukis that right?17:43
sadmacKeybuk: I suppose... I have it filtered to a folder so it didn't bother me much17:46
Keybukthe idea was for maintainers to be able to modify bugs17:47
Keybukthough I guess if you don't mind getting cc'd on them, I can leave it17:47
sadmacwell that's my vote. dunno how ion / plautrba / mbiebl feel17:47
sadmacKeybuk: in furtherance of queue-ifying everything in Upstart I'm also reworking how blocking is done.17:48
Keybukoh right, what you thinking17:49
sadmacKeybuk: basically I'm introducing a "trigger table"17:49
sadmacKeybuk: a trigger is 1) a list of events that will fire it (event operator with only 'or's basically) 2) a callback, 3) a "recurring" flag (explain in a moment)17:50
sadmacKeybuk: when an event is processed (an event can now be an "external" event, which is what they all are now, or another type of event like a start request), its simply matched against any of those triggers.17:51
sadmacif it matches one, that callback is run, and then the trigger is removed (unless "recurring" is set, in which case it stays to be fired again)17:52
sadmaconce the event has been run through this table, its discarded. That's the big change.17:52
Keybukso queuing up commands and events in the same way basically?17:53
sadmacKeybuk: the queueing is the same. the difference is theres no "pending"17:53
sadmacKeybuk: An event is handled immediately and dropped17:53
sadmacKeybuk: part of that handling though can be to set up another trigger17:53
Keybukhmm, I used the event queue deliberately though17:53
Keybukof course, the reason I did that may be invalid now17:54
Keybukbut the idea was to prevent Upstart from being in the situation where it'd would endlessly follow state changes without returning through the main loop17:54
Keybukotherwise if job's A and B flip-flopped, it could just loop happily though them forever generating events17:54
sadmacKeybuk: oh I see what you're missing17:55
sadmacKeybuk: the event is "handled" immediately, but it may be incomplete when we're done with it17:55
sadmacKeybuk: its sort of "stateless"17:55
mbieblKeybuk: I also filter the messages into a separate folder17:55
mbieblso I don't mind much receiving the messages17:55
mbieblSome of them are actually interesting ;-)17:56
sadmacKeybuk: its like this, lets say we get a "start foo" event request. This fires the appropriate recurring trigger which starts foo. That does the forking and the execing, and then it sets up another trigger that says "on started foo do (send method reply, cleanup dbus connection)"17:57
KeybukI'm not sure I quite follow, but it sounds reasonable17:57
KeybukI was never happy with the blocking stuff17:57
sadmacKeybuk: a question: why did you make the event queue a pointer to a list and then allocate it with a constructor. Couldn't you have just allocated a static list head? Or was it because you wanted it to hold references to other things?18:00
Keybukjust general style18:01
=== Keybuk changed the topic of #upstart to: Upstart 0.6.1 "Born in the wagon of a travelling show" | http://upstart.ubuntu.com/
sadmacThis release does not have a changelog18:16
sadmac^^uncharacteristic of you, Keybuk 18:16
sadmacthough it looks to be few changes18:16
Keybuk"does not have a changelog" ?18:16
Keybukoh, on LP - it keeps throwing them away18:17
* Keybuk pastes *AGAIN*18:17
Keybukhmm 0.6.0 went missing too18:18
Keybukand 0.5.3 got swapped18:18
KeybukI bet they've broken some LP schema here18:18
sadmacKeybuk: remember when I was giving Canonical crap about not open sourcing this thing? I take it back. Keep it plz.18:19
Keybuklol18:19
Keybukhas it been opened yet?18:19
sadmacKeybuk: I think bits of it have been creeping out. I haven't heard anyone make noise about it in awhile.18:24
sadmacKeybuk: you have more patches in this dbus release than any other dev. Do you actually work on dbus or is it really all to make Upstart work?18:25
Keybukjust bugs and issues I'm finding when doing Upstart18:27
KeybukI have upstream commit rights to D-Bus though18:27
sadmacKeybuk: kinda sad that merely attempting to use the software yielded this many issues, after its been out that long.18:28
sadmac2-space tabs are also kinda sad, but we'll save that for another day18:28
Keybuksadmac: Upstart uses it in a slightly different way to other programs18:28
KeybukI was probably the first person to test D-Bus *without* wanting it to exit() on disconnect from the daemon ;P18:29
Keybukso I find a few bugs in that code18:29
Keybukthe test suite is pretty rigorous about forcing things to clean up, so I found a few places where libdbus didn't actually get cleaned up on dbus_shutdown()18:29
Keybukand the malloc testing is pretty brutal too - most people abort() if malloc returns NULL :p18:30
Keybukthe other major stuff is the timeout code18:30
sadmacyeah. more an RFE18:30
sadmacKeybuk: so, about that kernelspace dbus thing :)18:30
Keybuksadmac: are you running 0.6.x now?18:30
Keybukif so, compare18:33
sadmacKeybuk: no. I actually just got my home box up to F11 (had some storage juggling I wanted to do) and then I have to port the job defs18:33
Keybukoh18:33
KeybukI'll paste then18:33
Keybukquest scott% sudo time sh -c 'for i in $(seq 0 100); do initctl list >/dev/null; done'18:33
Keybuk0.61user 0.17system 0:01.32elapsed 59%CPU (0avgtext+0avgdata 0maxresident)k18:33
Keybuk0inputs+0outputs (0major+39960minor)pagefaults 0swaps18:33
Keybukquest scott% time sh -c 'for i in $(seq 0 100); do initctl list >/dev/null; done'     18:33
Keybuksh -c 'for i in $(seq 0 100); do initctl list >/dev/null; done'  1.68s user 0.28s system 14% cpu 13.419 total18:33
Keybuk-- 18:33
Keybukboth running 100 initctl list commands18:33
Keybukfirst is as root, so is directly between init and initctl - takes 1.32s18:34
Keybuksecond is as a normal user, so goes via the bus daemon - takes 13.419s!18:34
Keybukbear in mind that both are using the D-Bus protocol and libdbus18:34
Keybukthe bus daemon overhead is huge18:34
sadmacKeybuk: that's...noticeable. problematic even18:34
Keybukyeah18:35
KeybukI'd be very supportive of AF_DBUS ;)18:35
sadmacKeybuk: tell bill to make me a developer again and I'll do it.18:35
* sadmac had this funny idea that graduating would give him the time to do things18:36
Keybukyeah, I've heard that from students before18:36
Keybuk"when I graduate, I won't be so busy"18:37
sadmacI need to be more of an asshole so people will stop socializing with me. Then I'll get code written18:37
sadmacstop going outside. That's how software gets done18:37
Keybukyeah18:40
Keybukbut that's not the worst thing to happen to a software developer18:40
ionI’m not in ~upstart-devel (and i wouldn’t belong there anyway, since i don’t manage to contribute much with this health), but now that it was mentioned, i subscribed to the bug mail anyway. :-P18:40
Keybukion: I can add you if you like - contributing to bug triage is more than welcome18:41
Keybukthe team's there to let people set bug importances and the like18:41
=== robbiew is now known as robbiew-afk
ionYeah, sure18:42
sadmacion: I didn't know you had health problems. Are you ok?18:42
ionNothing acute. The current diagnosis is F48.0 http://apps.who.int/classifications/apps/icd/icd10online/?gf40.htm+f48018:45
sadmacion: sorry to hear that18:48
ionThanks18:49
sadmacplautrba: did you push those 0.3.11 packages when you built them?19:46
Mdmbiebl: how is "upstart in debian" progressing?20:04
=== robbiew-afk is now known as robbiew
mbieblMd: made the dbus 1.2.16 upload yesterday21:46
mbiebl(which spectacularly failed because of the debhelper fuckup)21:47
mbieblthat's now fixed21:47
mbieblI expect 0.6.1 to hit unstable in the next couple of days.21:47
mbieblMd: we had some good discussions on the boot performance sprint in london21:48
mbieblpere had some concerns, but it's not completely unrealistic that we might switch to upstart even for squeeze21:50
ion* Bump dpkg dependency to 1.2.1621:54
ionkeybuk: You mean dbus? :-)21:54
Keybukerr, probably23:24

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!