On 12/09/2009 10:48 AM, Hans de Goede wrote:
Hi all, Currently we specify a timeout for udev_settle in various places inside anaconda, however in all these places the timeout is lower then the default timeout. This does not seem wise, and I think this is based on a misunderstanding of what the udevadm settle timeout parameter does. The way it is currently used it seems (to me) that the callers expect the timeout to cause udevadm to wait for at least timeout seconds for at least 1 event to show up (and then to exit as soon as all events are handled). This is not how the timeout parameter works, the timeout parameter causes udevadm settle to exit after timeout seconds, even if udev is still handling events! Since we are very dependent upon the udev database we really should always wait for udev to be done scanning (and thus blkid, lvm, etc having gathered all info we need). We certainly should not wait only 10 seconds for this as we currently do in some places. So I would like to propose 2 changes: 1) centralize the setting of the timeout parameter inside the udev_settle function. I do realize that the time needed for initially scanning all disks is much larger, then the time for scanning a single new partition when we are creating partitions. But since this is a timeout, and udevadm settle will exit as soon as the scanning is done, I see no reason not to have a single place to configure the timeout assuming the worst case scenario (the initial disk scan). This way we won't have these magic values sprinkled all over the code. 2) Given that in the past we've had bugs filed about anaconda taking many minutes to scan hardware on big iron machine and that our initial udev settle call will scan all disks, I think that udevadm's default timeout of 1 minutes is too low, I would like to suggest using a timeout of 5 minutes.
I agree with that. I am myself dealing with a udev settle issue bug, see #533047. I just posted a patch but your approach is more systematic and so it is better.
Ales _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list