Storage probing problem

David Zeuthen david at fubar.dk
Wed Sep 27 09:53:20 PDT 2006


On Wed, 2006-09-27 at 19:56 +0400, Andrey Borzenkov wrote:
> this looks the same problem we hit recently on Mandriva 
> (https://bugs.freedesktop.org/show_bug.cgi?id=8210). In summary - object gets 
> moved in GDL only after all callouts have finished, but event processing 
> continues in the meantime. In our case hal daemon died because it could not 
> find object parent that should be computer itself; but this one was waiting 
> in TDL yet. In this case we obviously has the same case - 
> hal_util_find_known_parent() looks in GDL but (according to log) not all 
> callouts have finished yet (at least, HAL did not process this event yet) so 
> hda is not found and hotplug_event_begin_add_blockdev() quits.

Pretty sure this is not related. 

Btw, sorry for not having commented on #8210 yet, the fact of the matter
is that right now this won't work. I've talked to Kay several times
about doing just this,

 1. Remove all sysfs coldplug code from HAL
 2. Start HAL before starting udev but tell it not to emit events
    (we don't want coldplug code to emit events, that would be
     unnecessary and expensive)
 3. Start udev (e.g. run udevtrigger)
 4. Wait for udev to settle
 5. Poke HAL and tell it that it can now emit events
 6. Start booting the system

but this isn't the best idea because

 a. It requires /usr to be mounted when starting HAL, e.g. before
    starting udev. So this will surely fail when / and /usr are on
    different file systems unless you do some tricks (chicken and egg)

 b. Potentially HAL might slow down udev a lot - we need to fix
    performance issues in HAL before doing this

Besides, I'm not sure the idea is wildly interesting anyway. But, sure,
it's something we want to do some day. 

    David




More information about the hal mailing list