svn commit: r1685053 - /tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java

2015-06-12 Thread markt
Author: markt
Date: Fri Jun 12 09:37:23 2015
New Revision: 1685053

URL: http://svn.apache.org/r1685053
Log:
Protect against windowSize overflow

Modified:
tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java

Modified: tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java?rev=1685053&r1=1685052&r2=1685053&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java Fri Jun 12 
09:37:23 2015
@@ -18,7 +18,6 @@ package org.apache.coyote.http2;
 
 import java.util.HashSet;
 import java.util.Set;
-import java.util.concurrent.atomic.AtomicLong;
 
 /**
  * Used to managed prioritisation.
@@ -29,7 +28,8 @@ abstract class AbstractStream {
 
 private volatile AbstractStream parentStream = null;
 private final Set childStreams = new HashSet<>();
-private AtomicLong windowSize = new 
AtomicLong(ConnectionSettings.DEFAULT_WINDOW_SIZE);
+private long windowSize = ConnectionSettings.DEFAULT_WINDOW_SIZE;
+private final Object windowSizeLock = new Object();
 
 public Integer getIdentifier() {
 return identifier;
@@ -89,12 +89,16 @@ abstract class AbstractStream {
 
 
 protected void setWindowSize(long windowSize) {
-this.windowSize.set(windowSize);
+synchronized (windowSizeLock) {
+this.windowSize = windowSize;
+}
 }
 
 
 protected long getWindowSize() {
-return windowSize.get();
+synchronized (windowSizeLock) {
+return windowSize;
+}
 }
 
 
@@ -103,12 +107,24 @@ abstract class AbstractStream {
  * @throws Http2Exception
  */
 protected void incrementWindowSize(int increment) throws Http2Exception {
-windowSize.addAndGet(increment);
+synchronized (windowSizeLock) {
+// Overflow protection
+if (Long.MAX_VALUE - increment > windowSize) {
+windowSize = Long.MAX_VALUE;
+} else {
+windowSize += increment;
+}
+}
 }
 
 
 protected void decrementWindowSize(int decrement) {
-windowSize.addAndGet(-decrement);
+// No need for overflow protection here. Decrement can never be larger
+// the Integer.MAX_VALUE and once windowSize does negative no further
+// decrements are permitted
+synchronized (windowSizeLock) {
+windowSize -= decrement;
+}
 }
 
 



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



buildbot failure in ASF Buildbot on tomcat-trunk

2015-06-12 Thread buildbot
The Buildbot has detected a new failure on builder tomcat-trunk while building 
ASF Buildbot. Full details are available at:
http://ci.apache.org/builders/tomcat-trunk/builds/1371

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' 
triggered this build
Build Source Stamp: [branch tomcat/trunk] 1685053
Blamelist: markt

BUILD FAILED: failed compile_1

Sincerely,
 -The Buildbot




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685065 - /tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java

2015-06-12 Thread markt
Author: markt
Date: Fri Jun 12 11:17:08 2015
New Revision: 1685065

URL: http://svn.apache.org/r1685065
Log:
Remove stray '-' after splitting of increment and decrement methods

Modified:
tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1685065&r1=1685064&r2=1685065&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Fri Jun 
12 11:17:08 2015
@@ -530,7 +530,7 @@ public class Http2UpgradeHandler extends
 } else {
 result = toWrite;
 }
-decrementWindowSize(-result);
+decrementWindowSize(result);
 }
 return result;
 }



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685066 - in /tomcat/trunk/java/org/apache/coyote/http2: AbstractStream.java LocalStrings.properties

2015-06-12 Thread markt
Author: markt
Date: Fri Jun 12 11:19:55 2015
New Revision: 1685066

URL: http://svn.apache.org/r1685066
Log:
Add debug logging
Fix logic error in overflow protection

Modified:
tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java
tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties

Modified: tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java?rev=1685066&r1=1685065&r2=1685066&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java Fri Jun 12 
11:19:55 2015
@@ -19,11 +19,18 @@ package org.apache.coyote.http2;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.res.StringManager;
+
 /**
  * Used to managed prioritisation.
  */
 abstract class AbstractStream {
 
+private static final Log log = LogFactory.getLog(AbstractStream.class);
+private static final StringManager sm = 
StringManager.getManager(AbstractStream.class);
+
 private final Integer identifier;
 
 private volatile AbstractStream parentStream = null;
@@ -109,11 +116,15 @@ abstract class AbstractStream {
 protected void incrementWindowSize(int increment) throws Http2Exception {
 synchronized (windowSizeLock) {
 // Overflow protection
-if (Long.MAX_VALUE - increment > windowSize) {
+if (Long.MAX_VALUE - increment < windowSize) {
 windowSize = Long.MAX_VALUE;
 } else {
 windowSize += increment;
 }
+if (log.isDebugEnabled()) {
+log.debug(sm.getString("abstractStream.windowSizeInc", 
getConnectionId(),
+getIdentifier(), Integer.toString(increment), 
Long.toString(windowSize)));
+}
 }
 }
 
@@ -124,6 +135,10 @@ abstract class AbstractStream {
 // decrements are permitted
 synchronized (windowSizeLock) {
 windowSize -= decrement;
+if (log.isDebugEnabled()) {
+log.debug(sm.getString("abstractStream.windowSizeDec", 
getConnectionId(),
+getIdentifier(), Integer.toString(decrement), 
Long.toString(windowSize)));
+}
 }
 }
 

Modified: tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties?rev=1685066&r1=1685065&r2=1685066&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties Fri Jun 
12 11:19:55 2015
@@ -13,6 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+abstractStream.windowSizeDec=Connection [{0}], Stream [{1}], reduce flow 
control window by [{2}] to [{3}]
+abstractStream.windowSizeInc=Connection [{0}], Stream [{1}], increase flow 
control window by [{2}] to [{3}]
+
 connectionPrefaceParser.eos=Unexpected end of stream while reading opening 
client preface byte sequence. Only [{0}] bytes read.
 connectionPrefaceParser.ioError=Failed to read opening client preface byte 
sequence
 connectionPrefaceParser.mismatch=An unexpected byte sequence was received at 
the start of the client preface [{0}]



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



buildbot exception in ASF Buildbot on tomcat-trunk

2015-06-12 Thread buildbot
The Buildbot has detected a build exception on builder tomcat-trunk while 
building ASF Buildbot. Full details are available at:
http://ci.apache.org/builders/tomcat-trunk/builds/1372

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' 
triggered this build
Build Source Stamp: [branch tomcat/trunk] 1685066
Blamelist: markt

BUILD FAILED: exception upload_2

Sincerely,
 -The Buildbot




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685079 - /tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_1.java

2015-06-12 Thread markt
Author: markt
Date: Fri Jun 12 12:48:44 2015
New Revision: 1685079

URL: http://svn.apache.org/r1685079
Log:
Fix test error highlighted by fix in window size handling

Modified:
tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_1.java

Modified: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_1.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_1.java?rev=1685079&r1=1685078&r2=1685079&view=diff
==
--- tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_1.java 
(original)
+++ tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_1.java Fri Jun 
12 12:48:44 2015
@@ -212,10 +212,13 @@ public class TestHttp2Section_5_1 extend
 
 sendSimpleRequest(5);
 
+// Default connection window size is 64k - 1. Initial request will have
+// used 8k (56k -1).
+// Expecting
 // 1 * headers
-// 64k of body (8 * 8k)
+// 56k-1 of body (7 * ~8k)
 // 1 * error (could be in any order)
-for (int i = 0; i < 9; i++) {
+for (int i = 0; i < 8; i++) {
 parser.readFrame(true);
 }
 parser.readFrame(true);



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685091 - in /tomcat/trunk/java/org/apache/coyote/http2: Http2UpgradeHandler.java LocalStrings.properties

2015-06-12 Thread markt
Author: markt
Date: Fri Jun 12 13:45:44 2015
New Revision: 1685091

URL: http://svn.apache.org/r1685091
Log:
Add some debug logging to the allocate process when there is a backlog.
Fix some bugs identified by unit test I haven't committed yet (because it is 
still failing)

Modified:
tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1685091&r1=1685090&r2=1685091&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Fri Jun 
12 13:45:44 2015
@@ -563,7 +563,6 @@ public class Http2UpgradeHandler extends
 while (leftToAllocate > 0) {
 leftToAllocate = allocate(this, leftToAllocate);
 }
-allocate(this, increment);
 for (Entry entry : 
backLogStreams.entrySet()) {
 int allocation = entry.getValue()[1];
 if (allocation > 0) {
@@ -578,6 +577,10 @@ public class Http2UpgradeHandler extends
 
 
 private int allocate(AbstractStream stream, int allocation) {
+if (log.isDebugEnabled()) {
+log.debug(sm.getString("upgradeHandler.allocate.debug", 
getConnectionId(),
+stream.getIdentifier(), Integer.toString(allocation)));
+}
 // Allocate to the specified stream
 int[] value = backLogStreams.get(stream);
 if (value[0] >= allocation) {
@@ -593,6 +596,11 @@ public class Http2UpgradeHandler extends
 value[0] = 0;
 leftToAllocate -= value[1];
 
+if (log.isDebugEnabled()) {
+log.debug(sm.getString("upgradeHandler.allocate.left",
+getConnectionId(), stream.getIdentifier(), 
Integer.toString(leftToAllocate)));
+}
+
 // Recipients are children of the current stream that are in the
 // backlog.
 Set recipients = new HashSet<>();
@@ -608,6 +616,11 @@ public class Http2UpgradeHandler extends
 
 int totalWeight = 0;
 for (AbstractStream recipient : recipients) {
+if (log.isDebugEnabled()) {
+log.debug(sm.getString("upgradeHandler.allocate.recipient",
+getConnectionId(), stream.getIdentifier(), 
recipient.getIdentifier(),
+Integer.toString(recipient.getWeight(;
+}
 totalWeight += recipient.getWeight();
 }
 
@@ -616,10 +629,13 @@ public class Http2UpgradeHandler extends
 Iterator iter = recipients.iterator();
 while (iter.hasNext()) {
 AbstractStream recipient = iter.next();
-// +1 is to avoid rounding issues triggering an infinite loop.
-// Will cause a very slight over allocation but HTTP/2 should
-// cope with that.
-int share = 1 + leftToAllocate * recipient.getWeight() / 
totalWeight;
+int share = leftToAllocate * recipient.getWeight() / 
totalWeight;
+if (share == 0) {
+// This is to avoid rounding issues triggering an infinite
+// loop. It will cause a very slight over allocation but
+// HTTP/2 should cope with that.
+share = 1;
+}
 int remainder = allocate(recipient, share);
 // Remove recipients that receive their full allocation so that
 // they are excluded from the next allocation round.

Modified: tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties?rev=1685091&r1=1685090&r2=1685091&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties Fri Jun 
12 13:45:44 2015
@@ -66,6 +66,9 @@ streamProcessor.httpupgrade.notsupported
 streamStateMachine.debug.change=Connection [{0}], Stream [{1}], State changed 
from [{2}] to [{3}]
 streamStateMachine.invalidFrame=Connection [{0}], Stream [{1}], State [{2}], 
Frame type [{3}]
 
+upgradeHandler.allocate.debug=Connection [{0}], Stream [{1}], allocated [{2}] 
bytes
+upgradeHandler.allocate.left=Connection [{0}], Stream [{1}], [{2}] bytes 
unallocated - trying to allocate to children
+upgradeHandler.allocate.recipient=Connection [{0}], Stream [{1}], potential 
recipient [{2}] with weight [{3}]
 upgradeHandler.rst.debug=Connection [{0}], Stream [{1}], Err

buildbot exception in ASF Buildbot on tomcat-trunk

2015-06-12 Thread buildbot
The Buildbot has detected a build exception on builder tomcat-trunk while 
building ASF Buildbot. Full details are available at:
http://ci.apache.org/builders/tomcat-trunk/builds/1374

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' 
triggered this build
Build Source Stamp: [branch tomcat/trunk] 1685091
Blamelist: markt

BUILD FAILED: exception svn upload_2

Sincerely,
 -The Buildbot




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



buildbot success in ASF Buildbot on tomcat-trunk

2015-06-12 Thread buildbot
The Buildbot has detected a restored build on builder tomcat-trunk while 
building ASF Buildbot. Full details are available at:
http://ci.apache.org/builders/tomcat-trunk/builds/1373

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' 
triggered this build
Build Source Stamp: [branch tomcat/trunk] 1685079
Blamelist: markt

Build succeeded!

Sincerely,
 -The Buildbot




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 57974] getOpenSessions() bug

2015-06-12 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57974

Remy Maucherat  changed:

   What|Removed |Added

   Severity|critical|minor
 OS|Windows XP  |All
   Hardware|PC  |All

--- Comment #2 from Remy Maucherat  ---
Did you look at the code ? The endpointSessionMap map is keyed on the class
(rather than the endpoint instance) so what you describe can only occur when
you have multiple endpoints from the same endpoint class. This is probably not
correct (need to check first though ...), and is easy to fix, but running into
this issue should not be very common, and it also has an easy workaround.
Adjusting severity accordingly.

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 57282] request process UML diagram seems outdated

2015-06-12 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57282

--- Comment #28 from Stephen Chen  ---
Created attachment 32813
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=32813&action=edit
request process pdf version

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 57282] request process UML diagram seems outdated

2015-06-12 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57282

--- Comment #29 from Stephen Chen  ---
Created attachment 32814
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=32814&action=edit
Authenticate pdf

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685108 - in /tomcat/tc8.0.x/trunk: java/org/apache/coyote/ajp/AbstractAjpProcessor.java webapps/docs/changelog.xml

2015-06-12 Thread remm
Author: remm
Date: Fri Jun 12 15:43:16 2015
New Revision: 1685108

URL: http://svn.apache.org/r1685108
Log:
58004: AJP would buffer data even in blocking mode, leading to leaking. Should 
not affect trunk from what I can see.

Modified:
tomcat/tc8.0.x/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java
tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml

Modified: 
tomcat/tc8.0.x/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java?rev=1685108&r1=1685107&r2=1685108&view=diff
==
--- tomcat/tc8.0.x/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java 
(original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java 
Fri Jun 12 15:43:16 2015
@@ -1648,7 +1648,7 @@ public abstract class AbstractAjpProcess
 
 bytesWritten += off;
 
-if (len > 0) {
+if (len > 0 && !blocking) {
 // Add this chunk to the buffer
 addToBuffers(chunk.getBuffer(), off, len);
 }

Modified: tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml?rev=1685108&r1=1685107&r2=1685108&view=diff
==
--- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Fri Jun 12 15:43:16 2015
@@ -109,6 +109,10 @@
 Support "-" separator in the SSLProtocol configuration of the
 APR/native connector for protocol exclusion. (rjung)
   
+  
+58004: Fix AJP buffering output data even in blocking mode.
+(remm)
+  
 
   
   



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 58004] Possible memory leak on ClientAbortException in Ajp

2015-06-12 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=58004

Remy Maucherat  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #1 from Remy Maucherat  ---
Buffering data in blocking mode seems wrong, it will be fixed in 8.0.24.
However, it is really wrong to catch an IOE and expect to write some data ...

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685126 - in /tomcat/trunk/java/org/apache/coyote/http2: Http2UpgradeHandler.java Stream.java

2015-06-12 Thread markt
Author: markt
Date: Fri Jun 12 16:41:30 2015
New Revision: 1685126

URL: http://svn.apache.org/r1685126
Log:
Fix an edge case bug
- Window size may go negative due to handling of rounding errors

Fix a nasty type s/=-/-=/ that was causing strange allocation effects

Modified:
tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
tomcat/trunk/java/org/apache/coyote/http2/Stream.java

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1685126&r1=1685125&r2=1685126&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Fri Jun 
12 16:41:30 2015
@@ -540,7 +540,7 @@ public class Http2UpgradeHandler extends
 @Override
 protected void incrementWindowSize(int increment) throws Http2Exception {
 synchronized (backLogLock) {
-if (getWindowSize() == 0) {
+if (getWindowSize() < 1) {
 releaseBackLog(increment);
 }
 super.incrementWindowSize(increment);
@@ -566,7 +566,7 @@ public class Http2UpgradeHandler extends
 for (Entry entry : 
backLogStreams.entrySet()) {
 int allocation = entry.getValue()[1];
 if (allocation > 0) {
-backLogSize =- allocation;
+backLogSize -= allocation;
 synchronized (entry.getKey()) {
 entry.getKey().notifyAll();
 }

Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Stream.java?rev=1685126&r1=1685125&r2=1685126&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http2/Stream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Stream.java Fri Jun 12 16:41:30 
2015
@@ -134,7 +134,7 @@ public class Stream extends AbstractStre
 }
 
 
-private int reserveWindowSize(int reservation) {
+private int checkWindowSize(int reservation) {
 long windowSize = getWindowSize();
 if (reservation > windowSize) {
 return (int) windowSize;
@@ -318,7 +318,7 @@ public class Stream extends AbstractStre
 while (left > 0) {
 // Flow control for the Stream
 do {
-thisWriteStream = reserveWindowSize(left);
+thisWriteStream = checkWindowSize(left);
 if (thisWriteStream < 1) {
 // Need to block until a WindowUpdate message is
 // processed for this stream
@@ -349,6 +349,9 @@ public class Stream extends AbstractStre
 }
 } while (thisWrite < 1);
 
+// Stream.checkWindowSize() doesn't reduce the flow control
+// window (reserveWindowSize() does) so the Stream's window
+// needs to be reduced here.
 decrementWindowSize(thisWrite);
 
 // Do the write



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685128 - in /tomcat/trunk/java/org/apache/tomcat/websocket: WsSession.java WsWebSocketContainer.java

2015-06-12 Thread remm
Author: remm
Date: Fri Jun 12 16:42:31 2015
New Revision: 1685128

URL: http://svn.apache.org/r1685128
Log:
57974: Key the open session map on the endpoint instance rather than endpoint 
class. Will backport if it doesn't cause issues.

Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1685128&r1=1685127&r2=1685128&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Fri Jun 12 
16:42:31 2015
@@ -415,7 +415,7 @@ public class WsSession implements Sessio
 @Override
 public Set getOpenSessions() {
 checkState();
-return webSocketContainer.getOpenSessions(localEndpoint.getClass());
+return webSocketContainer.getOpenSessions(localEndpoint);
 }
 
 

Modified: 
tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1685128&r1=1685127&r2=1685128&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Fri 
Jun 12 16:42:31 2015
@@ -83,7 +83,7 @@ public class WsWebSocketContainer implem
 private final Object asynchronousChannelGroupLock = new Object();
 
 private final Log log = LogFactory.getLog(WsWebSocketContainer.class);
-private final Map, Set> endpointSessionMap =
+private final Map> endpointSessionMap =
 new HashMap<>();
 private final Map sessions = new 
ConcurrentHashMap<>();
 private final Object endPointSessionMapLock = new Object();
@@ -370,8 +370,6 @@ public class WsWebSocketContainer implem
 
 protected void registerSession(Endpoint endpoint, WsSession wsSession) {
 
-Class endpointClazz = endpoint.getClass();
-
 if (!wsSession.isOpen()) {
 // The session was closed during onOpen. No need to register it.
 return;
@@ -380,10 +378,10 @@ public class WsWebSocketContainer implem
 if (endpointSessionMap.size() == 0) {
 BackgroundProcessManager.getInstance().register(this);
 }
-Set wsSessions = endpointSessionMap.get(endpointClazz);
+Set wsSessions = endpointSessionMap.get(endpoint);
 if (wsSessions == null) {
 wsSessions = new HashSet<>();
-endpointSessionMap.put(endpointClazz, wsSessions);
+endpointSessionMap.put(endpoint, wsSessions);
 }
 wsSessions.add(wsSession);
 }
@@ -411,7 +409,7 @@ public class WsWebSocketContainer implem
 }
 
 
-Set getOpenSessions(Class endpoint) {
+Set getOpenSessions(Endpoint endpoint) {
 HashSet result = new HashSet<>();
 synchronized (endPointSessionMapLock) {
 Set sessions = endpointSessionMap.get(endpoint);



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685129 - /tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java

2015-06-12 Thread remm
Author: remm
Date: Fri Jun 12 16:44:24 2015
New Revision: 1685129

URL: http://svn.apache.org/r1685129
Log:
57974: Key the open session map on the endpoint instance rather than endpoint 
class. Will backport if it doesn't cause issues. [forgot unregister ...]

Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java

Modified: 
tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1685129&r1=1685128&r2=1685129&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Fri 
Jun 12 16:44:24 2015
@@ -391,14 +391,12 @@ public class WsWebSocketContainer implem
 
 protected void unregisterSession(Endpoint endpoint, WsSession wsSession) {
 
-Class endpointClazz = endpoint.getClass();
-
 synchronized (endPointSessionMapLock) {
-Set wsSessions = endpointSessionMap.get(endpointClazz);
+Set wsSessions = endpointSessionMap.get(endpoint);
 if (wsSessions != null) {
 wsSessions.remove(wsSession);
 if (wsSessions.size() == 0) {
-endpointSessionMap.remove(endpointClazz);
+endpointSessionMap.remove(endpoint);
 }
 }
 if (endpointSessionMap.size() == 0) {



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 57974] getOpenSessions() bug

2015-06-12 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57974

--- Comment #3 from Remy Maucherat  ---
Attempting fix in trunk, will backport if there are no issues.

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: org.apache.tomcat.util.net.AprEndpoint to 100% CPU

2015-06-12 Thread Milo van der Zee

Hello all,

Should I submit a bug report?
The fact that Tomcat starts consuming 100% CPU as soon as Apache-HTTP is 
restarted does to me sound like a bug. Without using APR there is no issue.


Thanks,
Milo

On 06/07/2015 08:56 PM, Milo van der Zee wrote:

Hello,

I'm having trouble with the following setup:
- Gentoo / mariaDB
- Tomcat 8.0.23
- Tomcat native 1.1.33
- Apache http 2.4.12 with modproxy_ajp

server.xml:
...

...

Everything works fina as long as I don' restart the apache server 
while the tomcat server is also running. If I do so the I get this in 
my catalina.out (after tweaking logging.properties):
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Add to poller socket 
[139,918,626,023,232]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.removeFromPoller 
Attempting to remove [139,918,626,023,232] from poller
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Processing socket 
[139,918,626,023,232] for event(s) [1]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Add to poller socket 
[139,918,626,078,656]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.removeFromPoller 
Attempting to remove [139,918,626,078,656] from poller
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Processing socket 
[139,918,626,078,656] for event(s) [1]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Add to poller socket 
[139,918,626,023,232]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.removeFromPoller 
Attempting to remove [139,918,626,023,232] from poller
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Processing socket 
[139,918,626,023,232] for event(s) [1]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Add to poller socket 
[139,918,626,078,656]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.removeFromPoller 
Attempting to remove [139,918,626,078,656] from poller
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Processing socket 
[139,918,626,078,656] for event(s) [1]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Add to poller socket 
[139,918,626,023,232]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.removeFromPoller 
Attempting to remove [139,918,626,023,232] from poller
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Processing socket 
[139,918,626,023,232] for event(s) [1]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Add to poller socket 
[139,918,626,078,656]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.removeFromPoller 
Attempting to remove [139,918,626,078,656] from poller
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Processing socket 
[139,918,626,078,656] for event(s) [1]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Add to poller socket 
[139,918,626,023,232]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.removeFromPoller 
Attempting to remove [139,918,626,023,232] from poller
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Processing socket 
[139,918,626,023,232] for event(s) [1]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Add to poller socket 
[139,918,626,078,656]
07-Jun-2015 11:47:48.217 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.removeFromPoller 
Attempting to remove [139,918,626,078,656] from poller
07-Jun-2015 11:47:48.218 FINE [ajp-apr-8208-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Processing socket 
[139,918,626,078,656] for event(s) [1]


As long as everything is running fine the output is like:
07-Jun-2015 20:44:01.106 FINE [http-apr-127.0.0.1-8508-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.run Processing socket 
[139,978,017,344,528] for event(s) [1]
07-Jun-2015 20:44:01.109 FINE [http-apr-127.0.0.1-8508-Poller] 
org.apache.tomcat.util.net.AprEndpoint$Poller.removeFromPoller 
Attempting to remove [139,978,017,344,528] from poller
07-Jun-2015 20:44:01.929 FINE [http-apr-127.0.0.1-8508-Acceptor-0] 
org.apache.tomcat.util.net.AprEndpoint$Acceptor.run AP

svn commit: r1685134 - /tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java

2015-06-12 Thread markt
Author: markt
Date: Fri Jun 12 17:11:38 2015
New Revision: 1685134

URL: http://svn.apache.org/r1685134
Log:
Don't release backlog until window size is positive

Modified:
tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1685134&r1=1685133&r2=1685134&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Fri Jun 
12 17:11:38 2015
@@ -540,7 +540,8 @@ public class Http2UpgradeHandler extends
 @Override
 protected void incrementWindowSize(int increment) throws Http2Exception {
 synchronized (backLogLock) {
-if (getWindowSize() < 1) {
+long windowSize = getWindowSize();
+if (windowSize < 1 && windowSize + increment > 0) {
 releaseBackLog(increment);
 }
 super.incrementWindowSize(increment);



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685136 - /tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java

2015-06-12 Thread markt
Author: markt
Date: Fri Jun 12 17:20:46 2015
New Revision: 1685136

URL: http://svn.apache.org/r1685136
Log:
writeBody() log the actual length being written rather than the size of the 
data remaining in the buffer.

allocate() don't update leftToAllocate until the allocation loop has completed

Modified:
tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1685136&r1=1685135&r2=1685136&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Fri Jun 
12 17:20:46 2015
@@ -456,7 +456,7 @@ public class Http2UpgradeHandler extends
 void writeBody(Stream stream, ByteBuffer data, int len, boolean finished) 
throws IOException {
 if (log.isDebugEnabled()) {
 log.debug(sm.getString("upgradeHandler.writeBody", connectionId, 
stream.getIdentifier(),
-Integer.toString(data.remaining(;
+Integer.toString(len)));
 }
 synchronized (socketWrapper) {
 byte[] header = new byte[9];
@@ -628,6 +628,7 @@ public class Http2UpgradeHandler extends
 // Use an Iterator so fully allocated children/recipients can be
 // removed.
 Iterator iter = recipients.iterator();
+int allocated = 0;
 while (iter.hasNext()) {
 AbstractStream recipient = iter.next();
 int share = leftToAllocate * recipient.getWeight() / 
totalWeight;
@@ -643,8 +644,9 @@ public class Http2UpgradeHandler extends
 if (remainder > 0) {
 iter.remove();
 }
-leftToAllocate -= (share - remainder);
+allocated += (share - remainder);
 }
+leftToAllocate -= allocated;
 }
 
 return 0;



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685137 - /tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_3.java

2015-06-12 Thread markt
Author: markt
Date: Fri Jun 12 17:21:12 2015
New Revision: 1685137

URL: http://svn.apache.org/r1685137
Log:
Test for priority

Added:
tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_3.java   (with 
props)

Added: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_3.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_3.java?rev=1685137&view=auto
==
--- tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_3.java (added)
+++ tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_3.java Fri Jun 
12 17:21:12 2015
@@ -0,0 +1,119 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.coyote.http2;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Unit tests for Section 5.3 of
+ * https://tools.ietf.org/html/rfc7540";>RFC 7540.
+ * 
+ * The order of tests in this class is aligned with the order of the
+ * requirements in the RFC.
+ *
+ * Note: Unit tests for the examples described by each of the figures may be
+ * found in {@link TestAbstractStream}.
+ */
+public class TestHttp2Section_5_3 extends Http2TestBase {
+
+// Section 5.3.2
+
+@Test
+public void testWeighting() throws Exception {
+http2Connect();
+
+// Default connection window size is 64k - 1. Initial request will have
+// used 8k (56k -1). Increase it to 57k
+sendWindowUpdate(0, 1 + 1024);
+
+// Use up 56k of the connection window
+for (int i = 3; i < 17; i += 2) {
+sendSimpleRequest(i);
+readSimpleResponse();
+}
+
+// Set the default window size to 1024 bytes
+sendSetting(4, 1024);
+// Wait for the ack
+parser.readFrame(true);
+output.clearTrace();
+
+// At this point the connection window should be 1k and any new stream
+// should have a window of 1k as well
+
+// Set up streams A=17, B=19, C=21
+sendPriority(17,  0, 15);
+sendPriority(19, 17,  3);
+sendPriority(21, 17, 11);
+
+// Send a simple request on each stream
+sendSimpleRequest(17);
+sendSimpleRequest(19);
+sendSimpleRequest(21);
+
+// Open up the flow control windows for stream 19 & 21 to more than the
+// size of a simple request (8k)
+sendWindowUpdate(19, 16*1024);
+sendWindowUpdate(21, 16*1024);
+
+// Read some frames
+// 17-headers, 17-1k-body, 19-headers, 21-headers
+
+for (int i = 0; i < 4; i++) {
+parser.readFrame(true);
+}
+output.clearTrace();
+
+// Stream 17 should have used up its own 1k window and the connection 
1k
+// window. At this point 17 is blocked because the stream window is 
zero
+// small and 19 & 21 are blocked because the connection window is zero.
+
+// This should release a single byte from each of 19 and 21 (the update
+// is allocated by weight and then rounded up).
+sendWindowUpdate(0, 1);
+parser.readFrame(true);
+parser.readFrame(true);
+
+String trace = output.getTrace();
+Assert.assertTrue(trace, trace.contains("19-Body-1"));
+Assert.assertTrue(trace, trace.contains("21-Body-1"));
+output.clearTrace();
+
+// This should address the 'overrun' of the connection flow control
+// window above.
+sendWindowUpdate(0, 1);
+
+sendWindowUpdate(0, 1024);
+parser.readFrame(true);
+parser.readFrame(true);
+
+trace = output.getTrace();
+Assert.assertTrue(trace, trace.contains("19-Body-256"));
+Assert.assertTrue(trace, trace.contains("21-Body-768"));
+
+// Release everything and read all the remaining data
+sendWindowUpdate(0, 1024 * 1024);
+sendWindowUpdate(17, 1024 * 1024);
+
+// Read remaining frames
+// 17-7k-body, 19~8k-body, 21~8k-body
+for (int i = 0; i < 3; i++) {
+parser.readFrame(true);
+}
+}
+}

Propchange: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_3.java

[Bug 57974] getOpenSessions() bug

2015-06-12 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57974

--- Comment #4 from Mark Thomas  ---
This issue will occur frequently in POJO endpoints since they all share the
same Endpoint implementation class (which is how I suspect the OP hit this
issue).

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 57974] getOpenSessions() bug

2015-06-12 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57974

--- Comment #5 from Remy Maucherat  ---
Good point. So I'll backport the fix then.

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



buildbot failure in ASF Buildbot on tomcat-trunk

2015-06-12 Thread buildbot
The Buildbot has detected a new failure on builder tomcat-trunk while building 
ASF Buildbot. Full details are available at:
http://ci.apache.org/builders/tomcat-trunk/builds/1377

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' 
triggered this build
Build Source Stamp: [branch tomcat/trunk] 1685137
Blamelist: markt

BUILD FAILED: failed compile_1

Sincerely,
 -The Buildbot




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 57974] getOpenSessions() bug

2015-06-12 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57974

--- Comment #6 from Remy Maucherat  ---
TestWsWebSocketContainer, so it needs more work/review.

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1685147 - /tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java

2015-06-12 Thread markt
Author: markt
Date: Fri Jun 12 19:32:52 2015
New Revision: 1685147

URL: http://svn.apache.org/r1685147
Log:
Use right i18n key

Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1685147&r1=1685146&r2=1685147&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Jun 12 
19:32:52 2015
@@ -2581,7 +2581,7 @@ public class AprEndpoint extends Abstrac
 @Override
 protected void doWriteInternal(boolean block) throws IOException {
 if (closed) {
-throw new IOException(sm.getString("apr.closed", getSocket()));
+throw new IOException(sm.getString("socket.apr.closed", 
getSocket()));
 }
 
 Lock readLock = getBlockingStatusReadLock();



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: [Bug 58004] Possible memory leak on ClientAbortException in Ajp

2015-06-12 Thread Christopher Schultz
Rémy,

On 6/12/15 11:52 AM, bugzi...@apache.org wrote:
> https://bz.apache.org/bugzilla/show_bug.cgi?id=58004
> 
> Remy Maucherat  changed:
> 
>What|Removed |Added
> 
>  Resolution|--- |FIXED
>  Status|NEW |RESOLVED
> 
> --- Comment #1 from Remy Maucherat  ---
> Buffering data in blocking mode seems wrong, it will be fixed in 8.0.24.
> However, it is really wrong to catch an IOE and expect to write some data ...

Tomcat should protect itself from corruption from misbehaving web
applications, right?

True, there are faster ways to leak memory, but this causes Tomcat
itself to leak memory, which is a Bad Thing.

-chris



signature.asc
Description: OpenPGP digital signature


Françoise Rebel est absente.

2015-06-12 Thread francoise . rebel




Je serai absent(e) du  12/06/2015 au 25/06/2015.

Je répondrai à votre message dès mon retour. Pour toute urgence vous pouvez
contacter le BIJ au 05 61 02 86 10


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 57530] Reimplement TestAbstractHttp11Processor.testNon2xxResponseWithExpectation test using SimpleHttpClient instead of Java 6

2015-06-12 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57530

--- Comment #5 from Christopher Schultz  ---
Having played-around with sun.net.http.allowRestrictedHeaders, I believe it's
one of those things that gets consulted one time and then never looked-at
again. That means that, if the tests are run in an unpredictable order, you'll
never know which tests are using that value and which aren't. And you can't
turn it off.

For predictability's sake, maybe we should set that system property for the
whole set of unit tests to be run?

I think in the long run, use of SimpleHttpClient is probably better, since it
will handle "Expect" the way we ... expect.

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org