Hi Danile/Mike, I had a look at the issue and I think Daniels suggestion will work. I will fix this soon on the 1.3 branch.
Thanks, Ruwan On Sat, Sep 26, 2009 at 4:38 AM, Obendorf, Mike <[email protected] > wrote: > Daniel - > > Did you get a fix from Ruwan for this? We're now seeing the same error in > one of our deployments and would like to patch that build until 1.3 is > officially released. BTW, I just downloaded the latest 1.3 source and get > the same error as well... > > Thanks, > Mike > > -----Original Message----- > From: Moise, Daniel [mailto:[email protected]] > Sent: Thursday, September 24, 2009 11:02 AM > To: [email protected] > Subject: RE: HttpCoreNIOListener$1 - System may be unstable: IOReactor > encountered a runtime exception : null > > The file that contains the error is > synapse-nhttp-transport/ServerHandler.java:209 > int bytesWritten = outBuf.produceContent(encoder); > where the outBuf is > ContentOutputBuffer outBuf = (ContentOutputBuffer) > context.getAttribute(RESPONSE_SOURCE_BUFFER); > > In this case when the outBuf is null, I think a possible solution to fix > this is to just close the connection. > What do you think? > > Thanks, > Daniel > > > -----Original Message----- > From: Ruwan Linton [mailto:[email protected]] > Sent: Thursday, September 24, 2009 11:53 AM > To: [email protected] > Subject: Re: HttpCoreNIOListener$1 - System may be unstable: IOReactor > encountered a runtime exception : null > > Let me get back to you after testing this scenario. Thanks for the input > Daniel. You may also raise a JIRA issue for this. > > Thanks, > Ruwan > > On Thu, Sep 24, 2009 at 10:31 PM, Moise, Daniel > <[email protected]>wrote: > > > 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 <http://wso2.org/esb%0AWSO2> Inc.; http://wso2.org > > email: [email protected]; cell: +94 77 341 3097 > > blog: http://ruwansblog.blogspot.com > > > > > > -- > Ruwan Linton > Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb > WSO2 <http://wso2.org/esb%0AWSO2> Inc.; http://wso2.org > email: [email protected]; cell: +94 77 341 3097 > blog: http://ruwansblog.blogspot.com > -- 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
