#10880: haiku_loader can hang for minutes when one or more BIOS reported drives are unreadable ----------------------------------+---------------------------- Reporter: MasterM | Owner: pdziepak Type: bug | Status: closed Priority: high | Milestone: R1/alpha5 Component: System/Boot Loader | Version: R1/Development Resolution: fixed | Keywords: Blocked By: | Blocking: Has a Patch: 1 | Platform: x86 ----------------------------------+---------------------------- Comment (by axeld): Some general remarks (just got aware of this ticket): * The hash value is only used to identify disks later on in the kernel, if there is no other mapping available (most BIOS implementations do not provide that info, unfortunately). It doesn't really need to be a strong hashing mechanism, as collisions are still not very likely. * If the disks are identical, this algorithm will indeed fail, but then it does not really matter, anyway ;-) * The real problem in the randomness, however, is that it may fail for non-identical drives, too. That may be an actual problem, however unlikely. The only way to improve that would be to smartly choose the blocks, but that would require intimidate knowledge of the underlying file system. And may also fail unless you read in the complete disk. * As discussed on the ML a short time ago, we use Trac for tickets to be able to not lose patches. Whether or not this is a good idea might be debatable, but IMO for simple bug fixes it's not really important to have the committer to stay around to push the same patch over and over until someone finally accepts it. Of course, there are tons of ways to improve this workflow, like using Gerrit instead, or having a "Commit" button in Trac directly. I think removing drives from the list is a good solution, although I'm not sure it should happen at that point (it could also happen at the initial disk detection, as that would save the extra read). -- Ticket URL: <https://dev.haiku-os.org/ticket/10880#comment:13> Haiku <https://dev.haiku-os.org> Haiku - the operating system.