On 12/09/2026 11:24, Michael Kelly wrote:
On 11/09/2026 21:57, Michael Kelly wrote:

Would you expect rumpkernel and/or Hurd to cope with a gpt partitioned disk? Perhaps this is the block but I'll look tomorrow.

I found that parted was somehow blocked in a call to uuid_generate. I haven't delved further yet into this but I suspect maybe a call into '/dev/random' functionality is involved. For the

The lockup happens after uuid_generate() makes the call to getrandom(). getrandom() does attempt to lookup /dev/urandom but that fails with EGRATUITOUS. The library code for uuid_generate() goes on to some fallback code to generate random data involving gettimeofday(), getpid() and getuid(). It's the call to getuid() that causes the lockup because it is attempting to  spin_lock using the invalid pointer 0x30. The root cause is that _hurd_ports is NULL because _hurd_init() hasn't been called yet.

I've seen _hurd_ports_use() is sometimes used, for example in __file_name_lookup_at(), to fail in the case where _hurd_ports is NULL. This might be where the EGRATUITOUS for /dev/urandom comes from. getuid() always assumes it has a valid _hurd_ports.

Any ideas for solving this one ? Patching util-linux/lib/randutils.c (crank_random) to not call getuid() would be simple but doesn't seem right.

Mike.



Reply via email to