Thanks for the info Bob.

I would say that Axis should NOT need to protect itself against core Java
APIs from failing in this manner.  Putting this kind of call in a timed
thread seems like way too much overkill to me.

It is great that you posted this, as anyone searching the archives can find
the info now.

--
Tom Jordahl

> -----Original Message-----
> From: Bob Arthur [mailto:[EMAIL PROTECTED]
> Sent: Thursday, January 13, 2005 2:27 PM
> To: axis-dev@ws.apache.org
> Subject: Axis hanging when entropy expires
> 
> Hi,
> 
> A colleague was recently trying to set up Axis 1.2 RC2 on his
> development machine.  He got as far as seeing the root page, and having
> HappyAxis display OK.  Also, he was able to view the list of services,
> and download the wsdl from them
> 
> Unfortunately, attempting to call any end-point either from the browser
> or from a precompiled stub would simply hang for > 1 minute.
> 
> After much trawling through the source, making use of debug logging, we
> tracked the problem down to the SOAPPart constructor, where it called
> SessionUtils.generateSessionId().
> 
> It turns out that for some reason, his debian (woody) linux (2.4.23)
> machine was not refreshing its entropy, and had run out.  This caused
> SecureRandom.nextBytes to hang indefinitely while it tried to seed
> itself.  Rebooting the machine solved his problem.
> 
> I'm not convinced that this should be raised as a bug in Axis, as it was
> clearly caused by the OS.  However, I thought I'd let you know, partly
> so it's on record for others who may have the same problem, but also in
> case anyone thinks there's a case for somehow making the SecureRandom
> stuff more defensive.
> 
> For example, in SessionUtils.getRandom, when instantiating the
> SecureRandom object, we could immediately call nextBytes in a timed
> thread.  This would force the object to seed itself or throw an
> exception if it times out.
> 
> Many thanks,
> 
> Bob.

Reply via email to