[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: python 2.4: os.urandom() hangs if /dev/random, /dev/urandom are not reconnected to a translator



olafBuddenhagen@gmx.net ha scritto:

>> At first I tried showtrans on the /dev/random, /dev/urandom devices
>> and I found they were attached to the unofficial translator
>> (http://hurd.gnufans.org/bin/view/Hurd/RandomDevice). Resetting
>> /dev/random, /dev/urandom by detaching (settrans -fg /dev/urandom) and
>> then reattaching the translator fixed the bug. If I release the
>> translator the bug comes out again.
> 
> Does it also hang if you don't have a translator there at all?

If I settrans -fg /dev/urandom yes, it hangs.
I haven't tried with a clean reinstall.

>>From the above description, it sounds like this is indeed a bug in the
> urandom translator: The read() operation never returns.

Maybe. I don't know how does the random translator work.
Anyway now the translator is attached and I checked it works perfectly,
so it's quite erratic.
I'll dig it ASAP.

> There is no simple way to protect against such misbehaviour in a
> translator, so I don't think there is anything to fix on the Python
> side.

I thought that for os.urandom():
- a timeout could be useful on any platform without a reliable random
device (I don't think Hurd is alone in this). I'll ask to the python
mailing list.
- hurd-specifically, the module could maybe also check if a translator
is attached to /dev/urandom and at least spit a warning if there is none.

m.



Reply to: