Hi Ruwan, I've tried the last changes in the 1.3 branch, and the problem is still there. To test it, we've just run a 'telnet localhost 8280'. Based on your answer, it seems that you guys have a solution for this. Could you send me a patch or the changes for that. You don't have to necessarily check them in the branch for now.
Thanks, Daniel -----Original Message----- From: Ruwan Linton [mailto:[email protected]] Sent: Wednesday, September 23, 2009 6:04 PM To: [email protected] Subject: Re: HttpCoreNIOListener$1 - System may be unstable: IOReactor encountered a runtime exception : null Hi Daniel, This should be fixed now on the trunk, were you trying this on the trunk? Can you please verify this on a SNAPSHOT build? This will be available with the 1.3 release. Thanks, Ruwan On Wed, Sep 23, 2009 at 11:24 PM, Moise, Daniel <[email protected]>wrote: > Hi, > > I've found the same problem as the one listed below - every time a > malformed request is given to Synapse, an infinite loop will be > triggered making the Synapse server sluggish, and consuming the entire > log file (in case the output is redirected). I've noticed that the > problem might get fixed. Could you please let me know if the problem was > fixes, and if yes in which release. > > Thanks, > Daniel > > > Hi All > > I guess this boils down to how we deal with broken, > partial, and even > possibly malicious requests in the NIO transport.. I > will fix the issue > pointed to by Andreas and Murali ASAP as I consider this > critical. > > Murali - I believe you should plan on updating to > Synapse 1.3 in the > near future. There are a few issues we have fixed over > the past year > that should be very important for any production > deployment. As I > believe your environment / configuration is > straightforward, so the > migration should be quite trivial too - Could you also > raise an issue on > the JIRA? > > This runtime exception is caught in > BaseIOReactor#writable and delegated to the > registered exception handler (in our case an anonymous > inner class of > HttpCoreNIOListener with the following implementation: > > ioReactor.setExceptionHandler(new > IOReactorExceptionHandler() { > public boolean handle(IOException > ioException) { > log.warn("System may be unstable: > IOReactor encountered a > checked exception : " > + ioException.getMessage(), > ioException); > return true; > } > > public boolean handle(RuntimeException > runtimeException) { > log.warn("System may be unstable: > IOReactor encountered a > runtime exception : " > + > runtimeException.getMessage(), runtimeException); > return true; > } > }); > > I wondering a bit about the return value. Taken from the > JavaDoc of the > interface IOReactorExceptionHandler#handle > > True if it is safe to ignore the exception and continue > execution of the I/O > reactor; if the I/O reactor must throw {...@link > RuntimeException} and terminate > > Hmm, is it really safe to proceed here? We do not test > any detail of the > RuntimeException. To me this looks wrong. > > Yes, we return true since the later versions of HttpCore > dump some > information and try to continue in the face of RT > exceptions. What I > feel is that we need to enhance the NIO transport to be > stable in the > face of broken, partial and malicious requests so that > RT exceptions > will not be thrown in such cases, and we will drop the > connection with a > WARN > > cheers > asankha > > -- > Asankha C. Perera > AdroitLogic, http://adroitlogic.org > > http://esbmagic.blogspot.com > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: > [email protected] > > -- Ruwan Linton Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb WSO2 Inc.; http://wso2.org email: [email protected]; cell: +94 77 341 3097 blog: http://ruwansblog.blogspot.com
