=== godber_ is now known as godber [05:03] hi there [05:03] i have problem with UEC setup [05:03] my node can't detect cluster [05:03] why? what wrong with me === daker_ is now known as daker [16:07] kim0, hey [16:14] cloud-init does that allow you to specify the versions of the packages as well? [16:14] i can't find good documentatiokn on it === dendrobates is now known as dendro-afk === niemeyer is now known as niemeyer_lunch [16:37] hallyn: actually, ping here. ;) [16:37] hm? [16:37] smoser: you too.. want to chat about lxc / mountall / cloud-init :) [16:38] sigh, ping me when smoser answers, i wanna rmemeber where i kept the selinux testsuite [16:39] here now. [16:39] SpamapS, we can chat, but i donht have a ton of time to talk [16:40] smoser: is there a good time? [16:40] no. [16:40] so now is fine [16:40] Doh. Ok. [16:41] So I think I understand why you want to block mountall from moving on after virtual-filesystems .. [16:41] so that the network isn't brought up... [16:41] am I right? [16:42] no. [16:42] SLAM [16:42] da da da, let the boys be boys! SLAM! [16:42] * SpamapS channels Onyx [16:43] cloud-init takes input from a user (user-data in ec2, alternatively, can take it from filesystem or ISO transport for ovf) [16:43] cloud-init-local searches for data that was provided without needing a network [16:44] cloud-init searches for data that would come from a network source [16:44] so, cloud-init needs network [16:44] that make sense? [16:44] ack [16:44] cloud-init uses this data from a user to modify the fileystem (or other things) [16:45] the basic goal is to allow everything (or as close as possible) that you could do via rebundle to be done via user-data [16:45] in order to do certain things, say write an apache config, you have to make sure that apache isn't going to start while you're in the middle [16:45] so do you or do you not want to block certain upstart jobs [16:45] hm [16:45] i want to block system boot [16:45] until i'm done [16:46] what does apache wait on? [16:46] probably filesystems [16:46] but it doesn't matter [16:46] ssh starts on filesystems. [16:46] yes it does [16:46] no [16:46] smoser: you probably then just need to have a "wait" job that encompasses the 'starting' events of everything you want to stop. [16:46] i want to block as much of the system as i possibly can [16:46] yes, and SpamapS and i are trying to figure out how to do that [16:46] so when cloud-init runs, i want everythign to stop. [16:47] SpamapS, i dont know what i want to stop [16:47] so 'start on starting' and block *EVERYTHING* [16:47] that depends upon what the user is doing [16:47] i think you want to stop filesystem and rc [16:47] as hallyn found, you can 'start on starting' :) [16:47] but then again, maybe this just isn't feasible [16:47] or maybe that was jhunt I forget [16:47] i can't start on starting [16:47] hallyn: filesystem is not "stoppable" [16:47] because at starting there is not neceissarily a network [16:47] the events after all arent' clearly defined [16:48] maybe we should move to #upstart? [16:48] sure. [16:48] basic goal: [16:48] smoser: and for what you want, it doesn't suffice to just make your changes and then reboot, right? [16:48] * run as early as possible in boot [16:48] smoser: you can put a gate in your job that whitelists the things you want to let start. [16:48] * stop all other things from happening until you're done [16:49] hallyn, rebooting is not desireable. [16:49] SpamapS, and then that whitelist will start to break when other people modify things. [16:49] smoser: is there a clearly defined list of services you want to be able to intercept? [16:49] hallyn, no. [16:49] "all things" [16:50] smoser: well we can define an environment variable that people can use to be auto whitelisted.. [16:50] smoser: or you can even add your job *after* the network comes up [16:50] smoser: SpamapS: how about just blocking everything and manually bringing up the network? [16:50] hallyn: need /var/run but yeah thats doable. [16:50] the upstart jobs doing that are not exctly rocket science [16:50] hallyn, its not really doable. [16:51] how am i to know when the network is up? [16:51] i need udev [16:51] that needs virutal-filesystems [16:51] i need to go arbitrarily loading modules and ifuping [16:51] blah [16:51] Ok so that does sound complicated. [16:51] well you have the advantage of being on less varying virtual hardware i suppose [16:51] there is a well designed (that might be arguable) system that does that stuff. [16:52] we coudl discuss changing mountall? [16:52] SpamapS: do you grok mountall's code? [16:52] Simpler is to just check for the state and if the state you want has been reached, block [16:52] hallyn: yes [16:52] but I'm not really sure why mountall would solve anything [16:52] ok, so can we block on mounted MOUNTPOINT=/, but teach mountall to keep doing only virtual-filesystems? [16:53] hallyn: no [16:53] why not? [16:53] because mountall should figure out that it can mount /dev/pts , and should do that before /. then that woudl solve the problem. [16:53] or it just needs smarter ordering [16:53] Because that event is *guaranteed* to block mountall until it completes [16:53] its a sync point [16:53] it *does* have specific ordering rules it knows about. [16:53] so come up with a new event [16:53] it knows that it can mount /dev without having / as rw, for example [16:53] SpamapS: explain to me where mountall gets its list of virtual filesystems [16:53] it's not /etc/fstab. it's not /lib/init/fstab [16:54] hallyn: haha .. from the place where thar be dragons ;) [16:54] it appears to waste time spawning jobs for already-mounted filesystems [16:54] SpamapS: let me rephrase [16:54] SpamapS: there is in fact NOTHING for mountall to do. It only thinks there is [16:54] (in the lxc case) [16:54] so... the mountall solution seems the easiest at the moment. but it probably solves a specific problem in a specific way. [16:54] for that matter, we coudl simply have cloud-init fire off virtual-filesystems once mounted=/ is done. it'd be technically wrong, but practically not. [16:55] I think you're reading too much into mountall's influence on the boot process. [16:55] no we're not. [16:55] no, [16:55] i'm reading the output of 'mountall --debug' :) [16:55] it thinks it wants to mount 9 virtual filesystems, when in fact all are already mounted [16:55] Thats a sure fire way to get fooled into a race tho.. [16:55] just because it happens in this order now doesn't mean it will continue to happen that way. [16:56] how does that matter at all in this cloud-init case?! [16:56] SpamapS, there is already hard coded things such as that in mountall [16:56] SpamapS: faking virtual-filesystems i was just mentioning to make a point :) [16:56] it wouldn't to me seem all that insane that mountall would try to mount all virtual filesystems before mounting / rw [16:56] basically asusming that all virtual filesystems can be mounted immediately [16:56] SpamapS: wha ti'm saying is that mountall could be smarter and faster about the virtual-filesystems to help us out [16:58] well, or starting off by checking that they are already mounted, [16:58] Ok.. well I feel that there are two very different things and I don't understand the focus of the converstaion. cloud-init needs to have the system state a bit frozen so it can reliably change things.. and virtual-filesystems isn't as meaningful as it could be. [16:58] and not tryign ot be smarter than the sysadmin. If I take them ou tof /lib/init/fstab, then I mean it. [17:00] I think adding a different hook point to mountall is totally doable to solve the cloud-init issue.. [17:00] changing virtual-filesystems seems a bit off that mark though [17:00] how would you have a different hook point? [17:00] (even if its a good idea) [17:01] smoser: emit another event that is waited on. [17:01] one that is less accidental than "mounted MOUNTPOINT=/" [17:02] deliberately emit something at the exact point in the mountall process that achieves your goal of being able to change things without having them pulled out from under you. [17:02] SpamapS: sounds good [17:02] smoser: ^ that's basically exactly what you want [17:02] but there may be other things happening in parallel at that point and those need addressing. [17:02] though i can see mountall authors complaining [17:02] (is htat sjr?) [17:02] yeah its Keybuk [17:02] right. [17:03] and jhunt maintains it too [17:03] that seems like a specific solution to a specific problem [17:03] SpamapS: but again, i would argue that saying 'wait on X and Y' where X and Y both are issued by mountall, should be interpreted as 'the later of the two' [17:03] SpamapS: that would keep mountall from having to change for cloud-init's case [17:03] hallyn: heh.. and that, sir, is upstart 2.0 [17:03] smoser: yup, but a workable one [17:03] SpamapS: how far down the pike is that? [17:03] i dont think its really workable [17:04] hallyn: and we can do that in a wait job now.. I just haven't figured out what X and Y are yet. [17:04] i tihnk its an ugly hack [17:04] smoser: that's because you are difficult and contrarian :) [17:04] SpamapS: x == mounted MOUNTPOINT=/, y == virtual-filesystems [17:04] hallyn: upstart 2.0 is an unknown for us. When keybuk has time. [17:04] i am. i agree. [17:05] hallyn: except virtual-filesystems is not a blocker.. so I don't think it does what you want.. hence the need for a new hook point [17:05] but i would suggest that so is keybuk. [17:05] smoser: that's the 'difficult' part of you talking :) [17:06] I think its fair to ask for a 'mounted-virtual-filesystems' hook point. [17:06] its a fairly unique point in the filesystem lifecycle that would be helpful for other bits of the boot as well. [17:07] I wonder tho [17:07] would start on stopping networking work too? Thats basically where ifup -a has exitted. [17:07] or do you need to go before ifup -a ? [17:08] can't go before. [17:08] well, not for data that comes from a network [17:08] cloud-init-local does that. [17:09] but, yeah, via the non-network inputs, you can seed network information. [17:10] smoser: so start on stopping networking is after 'ifup -a' has exitted.. [17:11] smoser: unfortunately that won't block rc.. but.. we can make that block too [17:11] meh [17:11] I need a whiteboard and some coffee === niemeyer_lunch is now known as niemeyer [17:26] SpamapS: btw, there is going to have to be (maybe there already is?) a way to get info on which events are emitted blocking/nonblocking. [17:26] asking SpamapS on irc is not going to be scalable :) === Nolar_ is now known as Nolar [17:28] hallyn: the official ones are documented well [17:28] The mounted event is generated by the mountall(8) daemon after it has mounted a filesystem. mountall(8) will wait for all services [17:28] started by this event to be running, all tasks started by this event to have finished and all jobs stopped by this event to be stopped [17:28] before continuing with other filesystems. [17:28] also the table in 'man upstart-events' is quite clear [17:29] Type, S == signal (not waited on) H == hook point (waited on) [17:31] The virtual-filesystems event is generated by the mountall(8) daemon after it has mounted all virtual filesystems listed in fstab(5). [17:31] mountall(8) emits this event as an informational signal, services and tasks started or stopped by this event will do so in parallel with [17:31] other activity. [17:31] So.. really.. I hate to say "RTFM" .. but.. RTFM. ;) [17:31] SpamapS: the FM is lying though [17:31] i've said it 3 times now, so will wait to see if you know what i'm saying [17:32] which part is lying there? [17:32] fing fstab [17:32] Ok so thats a bug. [17:32] oh, is it? [17:33] i thought it was undocumented but intended black magic [17:33] in the man page yes [17:33] ah [17:33] ok [17:33] in any case i should read the upstart man page :) [17:33] AFAIK, mountall was thrown together while Keybuk was frantically working on boot speed [17:33] and upstart? [17:33] :) [17:34] hey now play nice [17:34] SpamapS: but so can you explain to me what it *is* doing? [17:34] zul: that wasn't meant as a slight. [17:34] hallyn: you're not going to be satisfied by any explanation. Its a hack. period. [17:34] that's fine. but a hack to do what? [17:35] it just guesses at the virtuals so as not to have to read fstab beforehand? [17:35] hallyn, i know...i was just teasing [17:36] zul: just trying to make sure noone comes by and challenges me to do better :) [17:37] hallyn: its a hack to make booting a non blocking independent thread [17:37] hallyn: the guessing, I suspect, is more about not having all the fs's listed in fstab [17:40] SpamapS: i thought that was the point of /lib/init/fstab [17:41] SpamapS: so wait, did we decide that wait on stopped networking and started rc will work? [17:42] err no [17:42] I was thinking about it [17:42] here's one issue.. rc starts on net-device-up IFACE=lo .. which is *before* stopped networking [17:44] so you need to have a 'starting rc RUNLEVEL=[2345]' too [17:48] might work better to have two separate jobs that do that, and both wait on cloud-init-whatever to finish === dendro-afk is now known as dendrobates === daker is now known as daker_ [18:39] hi all [18:40] question — when a user-data script runs, where is the output logged? [18:41] I've found the script in /lib/cloud/data/scripts/part-000 [18:41] but I can't seem to find any logs [18:44] hmm, just found it on the console... [19:44] yo [19:45] somebody here ? [19:56] D: [19:57] $this = NOTCOOL [19:57] ; === dendrobates is now known as dendro-afk === dendro-afk is now known as dendrobates === niemeyer is now known as niemeyer_biab [21:50] mattbillenstein, you will have to redirect the output of your script somewhere other than console if you want it there. [21:50] in natty's cloud-init there is cloud-config syntax for doing that. [21:50] in anything else, you'll have to handle that in whatever language the script is in [21:50] ie: [21:50] #!/bin/sh [21:50] { [21:50] # my script here [21:50] } [21:50] # oops [21:51] } 2>&1 | tee /var/log/my.log [21:52] hmm [21:52] you can do that in bash? [21:54] yeah. [21:54] { ... } [21:54] does redirection [21:54] or.. command grouping [21:54] then the 2>&1 does the redirection [21:54] or, if you don't care about it going to the console then just do: [21:54] exec > /var/log/my.log 2>&1 [21:54] at the beginning [21:55] sweet [21:55] I'll try it out, thanks for the tip! === niemeyer_biab is now known as niemeyer [22:53] yo [23:02] Hi, I'm running ubuntu 10.04 and would like to upgrade it to the latest distribution. What's the recommended way to do this? [23:14] spicyWith: See if this applies to your situation: http://ubuntu-smoser.blogspot.com/2011/02/migrating-to-pv-grub-kernels-for-kernel.html [23:16] erichammond: I was looking at that, and to be honest, I'm not sure. How can I check? === dendrobates is now known as dendro-afk