On 11/07/2012 20:13, Filip Hanik (mailing lists) wrote: > > >> -----Original Message----- >> From: Filip Hanik (mailing lists) [mailto:devli...@hanik.com] >> Sent: Wednesday, July 11, 2012 10:13 AM >> To: 'Tomcat Developers List' >> Subject: RE: Unit tests and trunk >> >> >> >>> -----Original Message----- >>> From: Mark Thomas [mailto:ma...@apache.org] >>> Sent: Wednesday, July 11, 2012 2:45 AM >>> To: Tomcat Developers List >>> Subject: Re: Unit tests and trunk >>> >>> On 11/07/2012 02:27, Filip Hanik (mailing lists) wrote: >>>> Here's what I've found out so far >>>> >>>> The patch below does solve the problem. In a rather remarkable way. >>>> The line >>>> int cnt = socket.write(buf); //write the data >>>> >>>> never returns 0, meaning the writes are always blocking. Even though >>> they >>>> are not supposed to be. >>>> Remove this patch, and socket.write(buf) returns 0, and then we >> never >>> get >>>> issued the OP_WRITE from the selector itself. >>> >>> I'm not sure I follow the above. Remove the patch and it returns 0? >> [Filip Hanik] >> Correct, as it should. The buffer should fill up very quick, and when >> the >> buffer is full NIO returns 0, can't write. >> So there are two problems: >> a) The selector doesn't work the same in Java 7 as it does in Java 5 and >> 6 >> b) Starting a new selector turns non blocking writes into blocking, even >> when I write 10MB in the TestOutputBuffer test, there is not a single >> socket.write that returns 0. Removing the Selector.open call, and >> immediately we have a hit return 0 as expected. >> >> >>> >>> Regardless, it seems very strange that the patch below fixes it. I had >> a >>> quick look through the Java source and couldn't see anything >> immediately >>> obvious. Any ideas what is going on? >> [Filip Hanik] >> Can't think of anything but a bug in the JDK. I'll keep investigating. >> Possibly we have to move the async NIO stuff to get it to work > [Filip Hanik] > Btw, this affects the BIO connector too. The write blocks and hangs forever. > Maybe it's just my Windows 7 system. Works fine on linux.
Let me see if I can find (or create if necessary) a clean-ish Windows 7 VM to test this on. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org