>An effect of the above mentioned NPE is that the node starts consuming 
>100% CPU until it is shut down (it might be spawning an unlimited number 
>of threads or something). 

>Just catching the NPE and doing a continue; seems to leave the node in a 
>suprisingly working state (at least for local browsing, nothing else 
>tested yet) 
 
The 100% CPU is because the channel is now screwed and the selector is entering 
an infinite loop.

using selector.wakeup() is happening only over my dead body.  If the bug is 
related to a messy .close() of the socketChannel, we should ignore it and 
continue.  But make sure the catch statement checks whether the NPE is exactly 
the one we're seeing, either by checking the message or parsing the stack trace 
or whatever; the way the code is now all kinds of throwables end up in the same 
catch.  Also it could appear when you close the socketChannel, but not appear 
when you close the socket; I'm tempted to think something that lame is the 
cause of the pipes & sockets leak...



_______________________________________________
devl mailing list
[EMAIL PROTECTED]
http://hawk.freenetproject.org:8080/cgi-bin/mailman/listinfo/devl

Reply via email to