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