While discussing a patch that broke hal, Kay Sievers (upstream udev maintainer) pointed out (he checked our latest RPM) we're missing rules to cope with the kernel. Pasting from IRC: kay you should add this as 05-udev-early.rules: kay # sysfs is populated after the event is sent kay ACTION=="add", DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus" kay ACTION=="add", SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt" kay ACTION=="add", SUBSYSTEM=="net", WAIT_FOR_SYSFS="address" kay otherwise a lot of stuff does not work kay including udev itself can't use BUS=="... Please fix this soon... Thanks!
What specifically is broken here that users would notice?
Without these rules the events come out of order which messes up the logic in HAL to e.g. reliably detect hotplugged drives. Kay (he is the upstream udev maintainer now) also says it affects module loading etc. I've seen noise on f-d-l about this, maybe this is the root cause... I dunno though. I do know that with ACTION=="add", SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt" hal CVS was broken (0.5.6 which is in rawhide was fine but you never know..) Suggest to talk to kay, he normally hangs hangs out on #hal on Freenode. Also suggest to look at the udev rules that e.g. SUSE ships. One of these days we should also rip out the hotplug.d and dev.d interfaces from udev - these interfaces are old and broken though interestingly enough we still rely on them in hal. This will change in the next hal release where we don't install a helper in hotplug.d but rather install a udev rule to use SOCKET+=...
Still, this implies some sort of kernel bug, it seems - you shouldn't need to wait for the bus in sysfs if you get a event for that bus. Mmmm, racy.
Maybe. Talk to Kay.