[11:54] <Keybuk> ion: I believe that killall5 sends SIGSTOP to all processes so that the process tree is unlikely to change while it iterates it
[11:54] <Keybuk> mbiebl: haven't seen the ntfs-3g problem before, any idea why it fails?
[11:54] <Keybuk> mbiebl: mountall should just call mount the same way mount -a does
[11:54] <Keybuk> does the boot "fail" or does the boot hang?
[11:55] <Keybuk> /mnt/data won't stop the "filesystem" event being emitted, but it would cause a shell
[11:55] <Keybuk> and as to the output difference, it's simply cosmetic
[11:55] <Keybuk> mountall leaves the device field as "none" for nodev filesystems deliberately
[12:48] <ion> Btw, using the vbox guest filesystem that mounts host directories in fstab caused mountall-shell to activate because the module wasn’t loaded yet. The system booted fine otherwise, and after the init script loaded the vboxvfs module, just exiting the shell finished the job. I wonder what could be done?
[12:48] <ion> Hardcoding special cases for everything like that doesn’t sound very appealing.
[12:48] <Keybuk> the shell is probably over-sensitive
[12:49] <Keybuk> really you only want to know whether mountall failed to mount an FHS filesystem
[12:49] <Keybuk> sorry, want to *fail* if
[12:49] <ion> Yeah
[12:49] <Keybuk> if some other filesystem marked "auto" fails, it's not realllly critical
[12:49] <Keybuk> but I'm not quite sure yet how to strike the balance
[12:49] <Keybuk> esp. since debugging, it's sane to leave it slightly over-keen for now
[12:54] <ion> How about /etc/mountall/fs/networking: ‘until network: nfs nfs4 smbfs...’ and /etc/mountall/fs/vbox (installed by vbox-guest-utils): ‘until vbox: vboxsf’ and have the if-up.d and vbox-guest-utils scripts send a message to mountall about ‘network’ or ‘vbox’ being available?
[12:54] <ion> And have mountall delay the mounting of such filesystem types until the message
[12:55] <ion> Perhaps instead of sending a message, launch a parallel mountall with a ‘network’/‘vbox’ parameter.
[12:55] <ion> Or something :-P
[13:02] <Keybuk> well, that's basically how network works now
[13:02] <Keybuk> you send it SIGUSR1 and it retries them
[13:02] <Keybuk> we could just add vboxsf to that set
[13:02] <Keybuk> the bit that needs fixing is that failure to mount them can be temporary ;)
[13:03] <Keybuk> (ie. it's ok to try again later)
[13:06] <ion> True
[13:10] <Keybuk> might be worth applying the same to outside-of-FHS filesystems?
[13:10] <Keybuk> it's ok for them to fail to mount, just retry?
[13:11] <ion> Yeah
[15:51] <ion> keybuk: http://pastebin.com/m17081a2f
[16:30] <mbiebl> Regarding the ntfs issue: The boot simply hangs at this point
[16:30] <mbiebl> LABEL=Data      /mnt/data       ntfs-3g user,auto     0       0
[16:30] <mbiebl> is the fstab entry
[16:47] <ion> (An irrelevant comment: /mnt is for temporary mounts. If it’s in fstab, it’s not temporary. :-P)
[16:49] <soren> I think, actually, /mnt is for temporary mount (singular).
[16:49] <ion> True
[16:50] <soren> (i.e. not mounting stuff on subdirs of /mnt, but on /mnt itself)
[16:51] <ion> Unless you need to have two temporary mounts at the same time. :-P But yeah, if you only need one, mount foo /mnt is quick and nice.
[16:54] <ion> keybuk: Regarding the pseudocode above, the try-again-if-mount-failed thing would become a simple ‘while’ loop around some code in a single function instead of additional logic buried in the a callback function somewhere.
[17:08] <mbiebl> ion: fwiw, it doesn't really matter if I mount it at /mnt/data or /data ;-)
[17:09] <ion> You lose the ability to mount a temporary partition without having to do a whopping amount of work to make a new directory first. ;-)
[17:16] <mbiebl> ion: What I meant was, that it doesn't matter wrt my failing boot
[17:16] <ion> As i said, my nitpicking was an irrelevant comment. :-)
[17:18] <mbiebl> It seems, robbiew just found the cause for the failing ntfs mount
[17:18] <ion> What was it?
[17:19] <robbiew> ;)
[17:19] <mbiebl> mountall tries to run fsck.ntfs
[17:20] <mbiebl> which is not available
[17:21] <mbiebl> it also seems to pass a -n option to ntfs-3g, which it doesn't understand
[17:22] <ion> Huh. If i’m reading the code right, when passno = 0, it shouldn’t try to fsck it.
[19:23] <ion> keybuk: The equivalent could be nice for libnih as well. Too bad nih_log_message doesn’t know the caller’s going to abort. http://launchpadlibrarian.net/31650305/glib2.0_2.21.6-0ubuntu1_2.21.6-0ubuntu2.diff.gz
[20:15] <ion> http://developers.slashdot.org/story/09/09/11/1139212/Apple-Open-Sources-Grand-Central-Dispatch
[20:19] <sadmac2> ion: just so long as their blocks implementation doesn't require trampolines
[20:19] <ion> Dunno
[20:19] <ion> I’ve only read http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/12 and the next page so far.
[20:21] <sadmac2> ion: it'd probably have to get as far as gcc before we knew
[20:56] <Keybuk> mbiebl: I don't see what mountall is doing that mount -a doesn't here
[20:56] <Keybuk> remember, mountall isn't passing -n to ntfs-3g, _mount_ is
[20:56] <Keybuk> likewise mountall isn't calling fsck.ntfs, _fsck_ is
[21:01] <robbiew> Keybuk: in any case...*somethings* broken that we would need to fix before release, right?
[21:01] <Keybuk> oh, definitely
[21:01] <Keybuk> I just won't yet understand why mountall is failing when the old script didn't
[21:01] <Keybuk> but that's ok
[21:02] <Keybuk> this is just a bug
[21:02] <Keybuk> in some ways I'm glad we're finding some now :p
[21:03] <robbiew> yep
[21:05] <Keybuk> robbiew: can you mail me your /etc/fstab as well?
[21:06] <robbiew> sure
[21:08] <ion> keybuk: I take it you noticed my messages above? :-)
[21:08] <Keybuk> fsck /windows [1581] exited normally
[21:08] <Keybuk> ah
[21:08] <Keybuk> so it complains about no fsck.ntfs but doesn't actually consider it an error
[21:08] <Keybuk> ion: I did, but now is not really the time to suddenly think about rewriting something with some neat library that would need an MIR, etc. etc.
[21:09] <Keybuk> mountall: mount /windows [1590] terminated with status 11
[21:09] <Keybuk> mountall: Filesystem could not be mounted: /windows]
[21:09] <Keybuk> hmm
[21:09] <sadmac2> ion: I'm betting the gcc implementation of blocks would end up using trampolines
[21:09] <Keybuk> even the exit status makes no sense
[21:10] <sadmac2> ion: and consequently be a force of overwhelming evil
[21:10] <Keybuk> mount status 11 means
[21:10] <Keybuk> "user interrupted a system error whilst permission denied"
[21:10] <Keybuk> !!
[21:10]  * Keybuk thinks ntfs-3g is just broken wrt compatibility with mount
[21:10] <robbiew> I didn't touch anythin 
[21:10] <robbiew> I can run 'mount /windows' after login...no problems
[21:10] <robbiew> fwiw
[21:11] <Keybuk> yeah that's what doesn't make sense
[21:11] <Keybuk> because that's basically what mountall does ;)
[21:11] <Keybuk> it seems it doesn't like the "-n"
[21:11] <robbiew> /dev/sda1 on /windows type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
[21:11] <ion> I didn’t mean that would have to be done for karmic, but it would be... interesting. :-) In fact, i might be interested in refactoring (wouldn’t really need a full rewrite) the code within the next n years, if you ever bless that idea. :-P
[21:11]  * Keybuk may have to fix ntfs-3g to support -n
[21:12] <Keybuk> ion: I'm hoping to understand the corner cases enough to recode most of mountall into Upstart itself - it should be largely flexible enough eventually
[21:12] <Keybuk> depends really
[21:12] <ion> Alright
[21:14] <Keybuk> right, according to mount ntfs-3g should support the -s, -f, -n, -v & -o options
[21:14] <Keybuk> since those are the mounts that mount passes to mount.*
[21:15] <Keybuk> and looking at the ntfs-3g code, it's probably ok to workaround in mountall either
[21:15] <Keybuk> so this should be simple enough
[21:19] <ion> keybuk: About my patches, i ended up creating a hash of dev_ids and then converting it to a string array in update_mount_dev_ids, and then iterating over the string array when locking. That’s only because i implemented it as a string array first and then started using the hash to dismiss duplicate dev_ids. I might as well put the hash that’s generated anyway to the Mount struct and iterate over that when locking. Should be a quick enough change. Do you agree?
[21:19] <Keybuk> yup
[21:35] <ion> Testing in a vm...
[21:39] <ion> Ah, no wonder i got no debug output. console output missing.
[21:43] <ion> Seems to work. http://heh.fi/patches/mountall/ updated.
[21:51] <ion> Oh, i think i noticed a bug with the fsck_queue list. I’ll fix.
[21:59] <sadmac2> Keybuk: please see new upstart-devel email (and old one for that matter :)
[22:27] <ion> keybuk: Updated once again.