/srv/irclogs.ubuntu.com/2007/05/03/#upstart.txt

=== mbiebl [n=michael@e180072200.adsl.alicedsl.de] has joined #upstart
=== blackmogu [n=neilm@cpc2-char2-0-0-cust912.sotn.cable.ntl.com] has joined #upstart
blackmogugot a quick question about initctl and upstart01:44
blackmoguis it possible to get output from a job on a pty without resorting to silly hacks ?01:45
=== blackmogu [n=neilm@cpc2-char2-0-0-cust912.sotn.cable.ntl.com] has left #upstart []
=== nenolod [i=nenolod@freenode/developer/atheme.nenolod] has joined #upstart
=== mbiebl [n=michael@e180072200.adsl.alicedsl.de] has joined #upstart
=== mbiebl [n=michael@e180072200.adsl.alicedsl.de] has joined #upstart
=== mbiebl_ [n=michael@e180072200.adsl.alicedsl.de] has joined #upstart
=== sadleder [n=sadleder@p508127AF.dip0.t-ipconnect.de] has joined #upstart
=== sadleder [n=sadleder@p508127AF.dip0.t-ipconnect.de] has joined #upstart
=== mbiebl [n=michael@e180072200.adsl.alicedsl.de] has joined #upstart
=== Md [i=md@freenode/staff/md] has joined #upstart
sadledermbiebl: hi, what's going on on the upstart-for-debian front?10:41
=== cort [n=sam@62-31-146-25.cable.ubr12.azte.blueyonder.co.uk] has joined #upstart
Mdsadleder: crap. some people are proposing to create a huge infrastructure to support every existing init daemon10:59
sadlederMd: oh boy11:00
sadlederMd: i read some posts on p.d.o11:01
sadlederMd: could you point me to planning pages?11:08
Mdno pages, subscribe to the initscripts-ng-devel@lists.alioth.debian.org list11:09
mbieblI also think that this idea is crap and will not work.11:14
nenolodseems a bit silly11:16
Mdyes, but right now I am the only person saying it's stupid... please subscribe11:21
mbieblMd: Yeah, I'll add my 2 soon.11:24
sadlederi sencond this11:25
sadledersecond*11:25
sadledermbiebl: are you running a fully upstartified system now?11:28
mbieblYes. The mounting and network stuff is still serial though.11:29
sadledermbiebl: and it's not yet packaged, right?11:32
mbieblThere are still some missing pieces where I haven't decided yet, how I'm going to handle it.11:33
mbieblSo, no. No "official" packages yet.11:33
sadledermbiebl: ok. just let me know, I'm available for trying them early11:34
sadleder;-)11:34
=== Md [i=md@freenode/staff/md] has joined #upstart
cortwhat problem can't be solved by the addition of a new layer of indirection?01:05
ion_cort: Some problems need a perl oneliner and a regexp in addition to that.01:25
=== wasabi [n=wasabi@ubuntu/member/wasabi] has joined #upstart
=== sadleder [n=sadleder@p508127AF.dip0.t-ipconnect.de] has left #upstart []
=== cort [n=sam@62-31-146-25.cable.ubr12.azte.blueyonder.co.uk] has joined #upstart
=== wasabi_ [n=jhaltom@ubuntu/member/wasabi] has joined #upstart
=== cort [n=sam@62-31-146-25.cable.ubr12.azte.blueyonder.co.uk] has joined #upstart
=== tale [n=tale@207.235.54.1] has joined #upstart
=== juergbi [n=juerg@80-219-18-22.dclient.hispeed.ch] has joined #upstart
=== Julius [n=julius@user-85-201-1-232.tvcablenet.be] has joined #upstart
Juliushi06:09
JuliusMd are u there ?06:09
=== cort [n=sam@62-31-146-25.cable.ubr12.azte.blueyonder.co.uk] has joined #upstart
ion_julius: Im sure others can answer your Upstart-related questions as well.06:24
Juliusion_, well actually i wanted to get my nickname dropped but some1 did it, thanks :)06:25
ion_I fail to see how thats on-topic for #upstart.06:25
AlexExtremeJulius, if you want freenode issues solving you should msg a staff member06:25
JuliusAlexExtreme, that's what i did, thanks ! Md is one of them, that's why i tried to speak to him06:26
Juliuscya guys :)06:27
=== Julius [n=julius@user-85-201-1-232.tvcablenet.be] has left #upstart ["Quitte"]
=== AlexExtreme sighs
cyberixHow does one set up serial login with upstart?08:37
cyberixAfter a serial driver loaded signal somehow?08:37
Mdwhat?08:49
Mdyou just take the event configuration for a console getty, copy it and write ttyS0 there08:49
ion_For a system without the sysvrc compatibility layer, perhaps just add a modprobe command to pre-start. An alternative would be making udev emit an event when it loads the module, and 'start on' that event.08:53
ion_If you have the compatibility layer, you can pretty much assume the module has been loaded.08:53
ion_(i think)08:54
cyberixThanks08:54
=== cyberix [n=cyberix@hoasb-ff02dd00-192.dhcp.inet.fi] has left #upstart []
Mdthe serial driver will be loaded automatically by udev08:55
=== sadleder [n=sadleder@p508127AF.dip0.t-ipconnect.de] has joined #upstart
=== sadleder [n=sadleder@p508127AF.dip0.t-ipconnect.de] has left #upstart []
=== mbiebl [n=michael@e180066000.adsl.alicedsl.de] has joined #upstart
=== AlexExtreme ponders: I have a udev job which runs udevd, and a udevtrigger job doing udevtrigger && udevsettle with 'start on started udev'. the udev job has the respawn stanza
AlexExtremeso10:40
AlexExtremeif I stop and restart udev, or udevd dies and gets respawned10:40
AlexExtremeudevtrigger will be re-run10:40
AlexExtremeand thus all the jobs with start on stopped udevtrigger ok will get run10:40
AlexExtremeand the whole boot sequence will be run again10:40
AlexExtremewhich is not good10:40
=== AlexExtreme wonders how to get around that
mbieblThis only happens for jobs which start on stopped udevtrigger, which aren't stateful, right?10:53
mbieblIn your case, that would be fsck and swap I guess.10:54
mbieblActually, swap is stateful.10:55
mbieblSo it wouldn't start again (as the job is already running)10:55
mbieblAlexExtreme: You could create a state "system-mounted" (better name to be chosen) which run on started udevtrigger10:56
mbieblArgh, I meant "system-fscked"10:57
Mdactions on file systems like fsck and swap should happen as a result of the block devices appearing, either as udev rules or upstart events10:58
Mdthere is no need to serialize everything on udevtrigger10:58
mbieblMd: If udev dies and is respawned, would udevtrigger see the block devices as newly added11:00
mbieblor not.11:00
Mdif udev is respawned for any reason (e.g. upgrade) it is wrong to run again udevtrigger11:05
Mdudevtrigger must be run exactly once (at boot time) and never again11:05
mbiebl Then either the udevtrigger has to create some kind of lock file on startup (in /var/run) and when invoked a second time it simply does nothing when this file exists11:08
mbieblOr we would need something like a "once" keyword in upstart.11:08
MdI think it should be possible to create some condition to run an event only once11:09
Mdudevtrigger cannot do anything by itself because it's usually run at a time where / is mounted ro, so if there is some rw fs available it's a distro-specific issue11:09
mbieblOne problem on running the mounting/fscking asynchronously is, that it might actually be slower than running it sequentially.11:17
ion_I dont see how.11:18
ion_And if there are multiple HDDs, it would be faster.11:18
mbieblDisk thrashing.11:18
ion_That would naturally be prevented by locking the fsck instances based on the physical device.11:18
mbiebl(which means, we serialize them again ;-) )11:19
ion_Only if there is just a single HDD.11:19
ion_http://johan.kiviniemi.name/blag/2007/03/19/upstart-and-mounting-partitions-part-2/11:20
mbieblRight. I agree with you though, that this is probably the way to go.11:20
mbieblIt might get a bit tricky for lvm on raid and stuff like that.11:22
ion_Why is that?11:22
mbieblHave you already worked on the tools to give you the physical device?11:23
ion_I did a functional prototype in sh, but i havent done the final C implementation.11:23
mbieblOk: what about the following scenario:11:25
mbieblYou have two disks: 40 GB and 80 GB11:25
ion_% foo() { local syspath="${1#/sys/block/}"; syspath="${syspath%%/*}"; set -- $(ls -1 /sys/block/"$syspath"/slaves); if [ "$*" = "" ] ; then echo "$syspath"; else for file in "$@"; do foo "$(readlink -f /sys/block/"$syspath"/slaves/"$file")"; done; fi; }; for f in dm-0 md1 sda sdb/sdb1; do foo "$f" | xargs echo "$f":; done11:25
ion_dm-0: sda sdb11:25
ion_md1: sda sdb11:25
ion_sda: sda11:25
ion_sdb/sdb1: sdb11:25
mbieblOne 40 GB pv on the first, a second pv on the second disk, and the remaining 40 GB on disk 2 are a regular partition.11:26
ion_It causes no problem at all.11:26
mbieblYou then create a lv out of pv1 and pv211:26
mbieblWhen you fsck the lv, will you lock disk1 and disk2?11:26
ion_Yes.11:26
mbieblSo, this means the second hard disk has to wait, event when it could check the second partition hdb2.11:27
ion_How can you be sure it could check hdb2, unless you hack fsck itself to handle the parallelization and make it compute which physical devices certain subsections of a partition reside on?11:29
mbieblYeah, what if I make hdb1 1GB and hdb2 79 GB.11:30
mbieblThis would mean after fscking hda1 there would be two instances of fsck on hdb running in parallel11:31
ion_It changes nothing. :-)11:31
mbiebl(for 1 Gb)11:31
ion_What do you mean?11:31
mbieblIt would still be faster11:31
cortsurely you'd want to serialise the fscks anyway if the two disks were hda and hdb11:32
cortsince they would both be on the same ide channel ;)11:32
ion_Say there are the partitions dm-0[hda1,hdb1]  and hdb2. fscking dm-0 would lock hda and hdb, fscking hdb2 would lock hdb. Why would there ever be two instances of fsck running on hdb?11:33
mbieblWell, what about hda and hdc then11:33
mbieblThis is,  what I meant it get's a bit tricky to do it right.11:33
cortso the actual decision of what to serialise requires some domain specific knowledge11:33
cortgets tricky when you consider that with a recently kernel, hda and hdb show up as sda and sdb11:33
mbiebl(if you use libata)11:34
ion_What problems would fscking two HDDs in the same ATA channel cause?11:34
cortit would be slow i think11:34
cortafaik the two would compete for i/o, just as if you tried to fsck two partitions on hda at the same time11:34
ion_I wouldnt expect it to be slower than serializing the checks. The problem in fscking two partitions on the same HDD is disk thrashing; any I/O waits are a consequence, not a cause.11:36
ion_If the ATA bus is faster than one of the HDDs, it would definitely be faster than serializing the checks.11:40
mbieblion_: you still have the scenario, where a small 1gb lvm partition on disk2 would block disk2 for a long time11:46
ion_That is no worse than the current situation where nothing happens in parallel.11:47
ion_I.e. even in that scenario, there is no regression.11:48
ion_Getting rid of that problem would require some serious fsck hacking.11:48
mbieblOk, off to bed now.11:59
mbieblG'night11:59

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