You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/01/06 14:45:03 UTC
svn commit: r1777619 - in /tomcat/trunk:
java/org/apache/tomcat/websocket/server/WsFrameServer.java
webapps/docs/changelog.xml
Author: markt
Date: Fri Jan 6 14:45:03 2017
New Revision: 1777619
URL: http://svn.apache.org/viewvc?rev=1777619&view=rev
Log:
Partial revert of r1534619.
The caller has to be able to differentiate between no data and EOF.
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java?rev=1777619&r1=1777618&r2=1777619&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java Fri Jan 6 14:45:03 2017
@@ -16,6 +16,7 @@
*/
package org.apache.tomcat.websocket.server;
+import java.io.EOFException;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -61,7 +62,9 @@ public class WsFrameServer extends WsFra
inputBuffer.position(inputBuffer.limit()).limit(inputBuffer.capacity());
int read = socketWrapper.read(false, inputBuffer);
inputBuffer.limit(inputBuffer.position()).reset();
- if (read <= 0) {
+ if (read < 0) {
+ throw new EOFException();
+ } else if (read == 0) {
return;
}
if (log.isDebugEnabled()) {
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1777619&r1=1777618&r2=1777619&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Jan 6 14:45:03 2017
@@ -53,6 +53,14 @@
</fix>
</changelog>
</subsection>
+ <subsection name="WebSocket">
+ <changelog>
+ <fix>
+ Prevent potential processing loop on unexpected WebSocket connection
+ closure. (markt)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="Other">
<changelog>
<update>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1777619 - in /tomcat/trunk:
java/org/apache/tomcat/websocket/server/WsFrameServer.java
webapps/docs/changelog.xml
Posted by Mark Thomas <ma...@apache.org>.
On 06/01/2017 20:22, Violeta Georgieva wrote:
> 2017-01-06 21:29 GMT+02:00 Mark Thomas <ma...@apache.org>:
>>
>> On 06/01/2017 15:57, Mark Thomas wrote:
>>> On 06/01/2017 14:45, markt@apache.org wrote:
>>>> Author: markt
>>>> Date: Fri Jan 6 14:45:03 2017
>>>> New Revision: 1777619
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=1777619&view=rev
>>>> Log:
>>>> Partial revert of r1534619.
>>>> The caller has to be able to differentiate between no data and EOF.
>>>
>>> While this fixed the looping issue, it appears to have broken multiple
>>> Autobahn tests. I'm working on a better fix.
>>
>> I'm not sure if this is good news or bad news. The Autobahn test
>> failures persist after I revet this fix.
>>
>> Digging...
>
> Which test is the failing one? Connector type - NIO/NIO2/APR?
> I ran it on my machine - MAC OS, Connector - NIO and I do not see failures.
Fairly old autobahn tests: (I haven't updated them in a while)
User-Agent: AutobahnTestSuite/0.7.5-0.10.1
APR/native
Windows
Not exactly sure what is going wrong yet.
Mark
>
>> Mark
>>
>>
>>>
>>> Mark
>>>
>>>
>>>>
>>>> Modified:
>>>>
> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
>>>> tomcat/trunk/webapps/docs/changelog.xml
>>>>
>>>> Modified:
> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
>>>> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java?rev=1777619&r1=1777618&r2=1777619&view=diff
>>>>
> ==============================================================================
>>>> ---
> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
> (original)
>>>> +++
> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java Fri
> Jan 6 14:45:03 2017
>>>> @@ -16,6 +16,7 @@
>>>> */
>>>> package org.apache.tomcat.websocket.server;
>>>>
>>>> +import java.io.EOFException;
>>>> import java.io.IOException;
>>>> import java.nio.ByteBuffer;
>>>>
>>>> @@ -61,7 +62,9 @@ public class WsFrameServer extends WsFra
>>>>
> inputBuffer.position(inputBuffer.limit()).limit(inputBuffer.capacity());
>>>> int read = socketWrapper.read(false, inputBuffer);
>>>> inputBuffer.limit(inputBuffer.position()).reset();
>>>> - if (read <= 0) {
>>>> + if (read < 0) {
>>>> + throw new EOFException();
>>>> + } else if (read == 0) {
>>>> return;
>>>> }
>>>> if (log.isDebugEnabled()) {
>>>>
>>>> Modified: tomcat/trunk/webapps/docs/changelog.xml
>>>> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1777619&r1=1777618&r2=1777619&view=diff
>>>>
> ==============================================================================
>>>> --- tomcat/trunk/webapps/docs/changelog.xml (original)
>>>> +++ tomcat/trunk/webapps/docs/changelog.xml Fri Jan 6 14:45:03 2017
>>>> @@ -53,6 +53,14 @@
>>>> </fix>
>>>> </changelog>
>>>> </subsection>
>>>> + <subsection name="WebSocket">
>>>> + <changelog>
>>>> + <fix>
>>>> + Prevent potential processing loop on unexpected WebSocket
> connection
>>>> + closure. (markt)
>>>> + </fix>
>>>> + </changelog>
>>>> + </subsection>
>>>> <subsection name="Other">
>>>> <changelog>
>>>> <update>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1777619 - in /tomcat/trunk: java/org/apache/tomcat/websocket/server/WsFrameServer.java
webapps/docs/changelog.xml
Posted by Violeta Georgieva <mi...@gmail.com>.
2017-01-06 21:29 GMT+02:00 Mark Thomas <ma...@apache.org>:
>
> On 06/01/2017 15:57, Mark Thomas wrote:
> > On 06/01/2017 14:45, markt@apache.org wrote:
> >> Author: markt
> >> Date: Fri Jan 6 14:45:03 2017
> >> New Revision: 1777619
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1777619&view=rev
> >> Log:
> >> Partial revert of r1534619.
> >> The caller has to be able to differentiate between no data and EOF.
> >
> > While this fixed the looping issue, it appears to have broken multiple
> > Autobahn tests. I'm working on a better fix.
>
> I'm not sure if this is good news or bad news. The Autobahn test
> failures persist after I revet this fix.
>
> Digging...
Which test is the failing one? Connector type - NIO/NIO2/APR?
I ran it on my machine - MAC OS, Connector - NIO and I do not see failures.
> Mark
>
>
> >
> > Mark
> >
> >
> >>
> >> Modified:
> >>
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
> >> tomcat/trunk/webapps/docs/changelog.xml
> >>
> >> Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
> >> URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java?rev=1777619&r1=1777618&r2=1777619&view=diff
> >>
==============================================================================
> >> ---
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
(original)
> >> +++
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java Fri
Jan 6 14:45:03 2017
> >> @@ -16,6 +16,7 @@
> >> */
> >> package org.apache.tomcat.websocket.server;
> >>
> >> +import java.io.EOFException;
> >> import java.io.IOException;
> >> import java.nio.ByteBuffer;
> >>
> >> @@ -61,7 +62,9 @@ public class WsFrameServer extends WsFra
> >>
inputBuffer.position(inputBuffer.limit()).limit(inputBuffer.capacity());
> >> int read = socketWrapper.read(false, inputBuffer);
> >> inputBuffer.limit(inputBuffer.position()).reset();
> >> - if (read <= 0) {
> >> + if (read < 0) {
> >> + throw new EOFException();
> >> + } else if (read == 0) {
> >> return;
> >> }
> >> if (log.isDebugEnabled()) {
> >>
> >> Modified: tomcat/trunk/webapps/docs/changelog.xml
> >> URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1777619&r1=1777618&r2=1777619&view=diff
> >>
==============================================================================
> >> --- tomcat/trunk/webapps/docs/changelog.xml (original)
> >> +++ tomcat/trunk/webapps/docs/changelog.xml Fri Jan 6 14:45:03 2017
> >> @@ -53,6 +53,14 @@
> >> </fix>
> >> </changelog>
> >> </subsection>
> >> + <subsection name="WebSocket">
> >> + <changelog>
> >> + <fix>
> >> + Prevent potential processing loop on unexpected WebSocket
connection
> >> + closure. (markt)
> >> + </fix>
> >> + </changelog>
> >> + </subsection>
> >> <subsection name="Other">
> >> <changelog>
> >> <update>
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> >> For additional commands, e-mail: dev-help@tomcat.apache.org
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: dev-help@tomcat.apache.org
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
Re: svn commit: r1777619 - in /tomcat/trunk:
java/org/apache/tomcat/websocket/server/WsFrameServer.java
webapps/docs/changelog.xml
Posted by Mark Thomas <ma...@apache.org>.
On 06/01/2017 15:57, Mark Thomas wrote:
> On 06/01/2017 14:45, markt@apache.org wrote:
>> Author: markt
>> Date: Fri Jan 6 14:45:03 2017
>> New Revision: 1777619
>>
>> URL: http://svn.apache.org/viewvc?rev=1777619&view=rev
>> Log:
>> Partial revert of r1534619.
>> The caller has to be able to differentiate between no data and EOF.
>
> While this fixed the looping issue, it appears to have broken multiple
> Autobahn tests. I'm working on a better fix.
I'm not sure if this is good news or bad news. The Autobahn test
failures persist after I revet this fix.
Digging...
Mark
>
> Mark
>
>
>>
>> Modified:
>> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
>> tomcat/trunk/webapps/docs/changelog.xml
>>
>> Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
>> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java?rev=1777619&r1=1777618&r2=1777619&view=diff
>> ==============================================================================
>> --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java (original)
>> +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java Fri Jan 6 14:45:03 2017
>> @@ -16,6 +16,7 @@
>> */
>> package org.apache.tomcat.websocket.server;
>>
>> +import java.io.EOFException;
>> import java.io.IOException;
>> import java.nio.ByteBuffer;
>>
>> @@ -61,7 +62,9 @@ public class WsFrameServer extends WsFra
>> inputBuffer.position(inputBuffer.limit()).limit(inputBuffer.capacity());
>> int read = socketWrapper.read(false, inputBuffer);
>> inputBuffer.limit(inputBuffer.position()).reset();
>> - if (read <= 0) {
>> + if (read < 0) {
>> + throw new EOFException();
>> + } else if (read == 0) {
>> return;
>> }
>> if (log.isDebugEnabled()) {
>>
>> Modified: tomcat/trunk/webapps/docs/changelog.xml
>> URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1777619&r1=1777618&r2=1777619&view=diff
>> ==============================================================================
>> --- tomcat/trunk/webapps/docs/changelog.xml (original)
>> +++ tomcat/trunk/webapps/docs/changelog.xml Fri Jan 6 14:45:03 2017
>> @@ -53,6 +53,14 @@
>> </fix>
>> </changelog>
>> </subsection>
>> + <subsection name="WebSocket">
>> + <changelog>
>> + <fix>
>> + Prevent potential processing loop on unexpected WebSocket connection
>> + closure. (markt)
>> + </fix>
>> + </changelog>
>> + </subsection>
>> <subsection name="Other">
>> <changelog>
>> <update>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1777619 - in /tomcat/trunk:
java/org/apache/tomcat/websocket/server/WsFrameServer.java
webapps/docs/changelog.xml
Posted by Mark Thomas <ma...@apache.org>.
On 06/01/2017 14:45, markt@apache.org wrote:
> Author: markt
> Date: Fri Jan 6 14:45:03 2017
> New Revision: 1777619
>
> URL: http://svn.apache.org/viewvc?rev=1777619&view=rev
> Log:
> Partial revert of r1534619.
> The caller has to be able to differentiate between no data and EOF.
While this fixed the looping issue, it appears to have broken multiple
Autobahn tests. I'm working on a better fix.
Mark
>
> Modified:
> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
> tomcat/trunk/webapps/docs/changelog.xml
>
> Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java?rev=1777619&r1=1777618&r2=1777619&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java (original)
> +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java Fri Jan 6 14:45:03 2017
> @@ -16,6 +16,7 @@
> */
> package org.apache.tomcat.websocket.server;
>
> +import java.io.EOFException;
> import java.io.IOException;
> import java.nio.ByteBuffer;
>
> @@ -61,7 +62,9 @@ public class WsFrameServer extends WsFra
> inputBuffer.position(inputBuffer.limit()).limit(inputBuffer.capacity());
> int read = socketWrapper.read(false, inputBuffer);
> inputBuffer.limit(inputBuffer.position()).reset();
> - if (read <= 0) {
> + if (read < 0) {
> + throw new EOFException();
> + } else if (read == 0) {
> return;
> }
> if (log.isDebugEnabled()) {
>
> Modified: tomcat/trunk/webapps/docs/changelog.xml
> URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1777619&r1=1777618&r2=1777619&view=diff
> ==============================================================================
> --- tomcat/trunk/webapps/docs/changelog.xml (original)
> +++ tomcat/trunk/webapps/docs/changelog.xml Fri Jan 6 14:45:03 2017
> @@ -53,6 +53,14 @@
> </fix>
> </changelog>
> </subsection>
> + <subsection name="WebSocket">
> + <changelog>
> + <fix>
> + Prevent potential processing loop on unexpected WebSocket connection
> + closure. (markt)
> + </fix>
> + </changelog>
> + </subsection>
> <subsection name="Other">
> <changelog>
> <update>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org