[19:04] <Keybuk> "slip into the comfort of your own narcolepsy"
[19:04]  * Keybuk has to use that lyric as a release name one day
[19:05] <sadmac> I've just been watching music videos with good release names
[19:05] <sadmac> "same as it ever was"
[19:05] <Keybuk> "this is the new shit" ?
[19:06] <sadmac> that'd be a good 1.0 release name
[19:09] <Keybuk> true
[19:11]  * keesj wanted to shake hands today a fosdem but did not have the patience to wait
[19:11] <sadmac> Keybuk: I've been thinking about transactions a bit lately.
[19:12] <Keybuk> oh yes?
[19:12] <Keybuk> keesj: I didn't know you were there! :-(
[19:12] <sadmac> Keybuk: I'll cover the bad news first: we can't preserve the transactional property of the system :)  Consider:
[19:13] <sadmac> open transaction
[19:13] <sadmac> stop A
[19:13] <sadmac> start B
[19:13] <sadmac> commit
[19:13] <sadmac> We go to apply, we stop A. B won't start
[19:13] <sadmac> We try to revert. A won't start
[19:13] <sadmac> we're stuck in an inconsistent state. We can't revert or complete.
[19:13] <Keybuk> right, I figured that :-/
[19:14] <sadmac> Keybuk: but transactions also give us an opportunity to assign certain contexts to actions. Consider opening a transaction with the "shutdown" option. When its applied, anything we kill, we just ignore rather than killing and let it run. Then at the end of the transaction we fire off the halt.
[19:15] <sadmac> if we abort we just reclaim ownership of the lost processes.
[19:16] <Keybuk> how do you mean?
[19:17] <sadmac> well, really we'd never release them in the first place. The point is because of the context we know we don't have to actually stop the services. They'll die at the poweroff (or on a mass-kill somewhere near the end of the transaction)
[19:18] <Keybuk> ah, I had a feeling that's what you meant
[19:18] <Keybuk> treat the shutdown context specially and not really kill services
[19:18] <sadmac> exactly
[19:19] <sadmac> transaction properties are a good way to trigger things like halt or reboot too. just a flag that says "when you commit this transaction, reboot"
[19:20] <Keybuk> the trouble is you get a limited set of "when you..." to it
[19:21] <sadmac> what's the issue?
[19:22] <Keybuk> well, you could only implement a limited set of FOO for "when you commit this transaction, FOO"
[19:22] <Keybuk> otherwise its behaviour is identical to an event - you emit it, wait for it to finish, then do something if successful
[19:23] <sadmac> there's only a couple of things we'd want. reboot, halt, stuff like that.
[19:24] <sadmac> (katzj probably wants "eject cd tray" in there. I've been refusing his patch for awhile now)
[19:25] <Keybuk> eject cd tray?
[19:26] <sadmac> Keybuk: Jeremy Katz wants pid 1 to be able to eject the cd drive.
[19:26] <sadmac> I'm not quite as eager for that feature.
[19:26] <Keybuk> for?
[19:26] <Keybuk> on shutdown?
[19:26] <sadmac> yes, shutdown after a livecd
[19:27] <Keybuk> we just readahead the reboot binary ;)
[19:27] <sadmac> yeah, he really didn't like that
[19:28] <sadmac> *shrug*
[19:28] <Keybuk> :)
[19:28] <Keybuk> I actually do intend for init to make the reboot() system call
[19:28] <Keybuk> which solves the underlying problem, provided eject is the last thing you do
[19:29] <sadmac> I think it makes more sense in newer upstart.
[19:29] <sadmac> he's got a patch to make 0.3.9 do the eject thing though.
[19:29] <sadmac> I've been ignoring it in bugzilla for months.
[19:30] <Keybuk> but then it makes sense to do suspend/hibernate in init too ;)
[19:30] <Keybuk> and richard hughes won't like that
[19:30] <Keybuk> davidkit's ok with the idea
[19:30] <sadmac> who was it that was doing the dbus in kernelspace stuff?
[19:30] <sadmac> I can't google it for shit.
[19:31] <Keybuk> Marcel
[19:32] <sadmac> how far along is that now?
[19:32] <Keybuk> Holtmann
[19:32] <Keybuk> it's from Marcel
[19:32] <Keybuk> how's Hell doing in the Freezing Over stakes?
[19:33] <sadmac> he not carrying it along or upstream not happy about it?
[19:33] <sadmac> or fd.o screwing things up?
[19:37] <Keybuk> no...
[19:37] <Keybuk> Marcel invents a lot of things
[19:37] <Keybuk> Marcel implements substantially fewer things
[19:40]  * sadmac is game
[19:42] <Keybuk> it makes sense
[19:47] <sadmac> has he written anything?
[19:47] <sadmac> ah. exeunt Keybuk.