Re: [VOTE] Release Apache Tomcat 8.0.26
Am 18. August 2015 14:42:17 MESZ, schrieb Mark Thomas : >The proposed Apache Tomcat 8.0.26 release is now available for voting. >This fixes the BOM issue with changelog.xml in the 8.0.25 tag. > >The main changes since 8.0.24 are: > >- Fix EOF handling in the AJP APR/native connector to avoid the tight > loop that caused high CPU load > >- Avoid an NPE when adding POJO WEebSocket endpoints programmatically > >- Improved handling of async timeouts > > >There is the usual collection of bug fixes, new features and >performance improvements. For full details, see the changelog: >http://svn.us.apache.org/repos/asf/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml > >It can be obtained from: >https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.0.26/ >The Maven staging repo is: >https://repository.apache.org/content/repositories/orgapachetomcat-1049/ >The svn tag is: >http://svn.apache.org/repos/asf/tomcat/tc8.0.x/tags/TOMCAT_8_0_26/ > >The proposed 8.0.26 release is: >[ ] Broken - do not release >[x] Stable - go ahead and release as 8.0.26 (non-binding) Tested on opensuse 13.1 with openjdk 1.7.0_85 64bit. MD5, SHA1 sums and pgp signatures are ok. Drawboard example didn't work on first start, but couldn't reproduce failure on later starts. No exceptions could be found in the logs or the browser. Regards, Felix > >- >To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >For additional commands, e-mail: dev-h...@tomcat.apache.org > > >- >To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release Apache Tomcat 8.0.26
Am 20. August 2015 09:35:24 MESZ, schrieb Felix Schumacher : > > >Am 18. August 2015 14:42:17 MESZ, schrieb Mark Thomas >: >>The proposed Apache Tomcat 8.0.26 release is now available for voting. >>This fixes the BOM issue with changelog.xml in the 8.0.25 tag. >> >>The main changes since 8.0.24 are: >> >>- Fix EOF handling in the AJP APR/native connector to avoid the tight >> loop that caused high CPU load >> >>- Avoid an NPE when adding POJO WEebSocket endpoints programmatically >> >>- Improved handling of async timeouts >> >> >>There is the usual collection of bug fixes, new features and >>performance improvements. For full details, see the changelog: >>http://svn.us.apache.org/repos/asf/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml >> >>It can be obtained from: >>https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.0.26/ >>The Maven staging repo is: >>https://repository.apache.org/content/repositories/orgapachetomcat-1049/ >>The svn tag is: >>http://svn.apache.org/repos/asf/tomcat/tc8.0.x/tags/TOMCAT_8_0_26/ >> >>The proposed 8.0.26 release is: >>[ ] Broken - do not release >>[x] Stable - go ahead and release as 8.0.26 (non-binding) > >Tested on opensuse 13.1 with openjdk 1.7.0_85 64bit. > >MD5, SHA1 sums and pgp signatures are ok. > >Drawboard example didn't work on first start, but couldn't reproduce >failure on later starts. No exceptions could be found in the logs or >the browser. I found the reason for the first failure. It was my faulty X11 setup. I had a DISPLAY variable pointing to a non existing X server. The error message I overlooked (shame on me) would have told me right away. Regards, Felix > >Regards, >Felix > >> >>- >>To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >>For additional commands, e-mail: dev-h...@tomcat.apache.org >> >> >>- >>To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >>For additional commands, e-mail: dev-h...@tomcat.apache.org > > >- >To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release Apache Tomcat 7.0.64
Am 19. August 2015 20:01:52 MESZ, schrieb Violeta Georgieva : >The proposed Apache Tomcat 7.0.64 release is now available for voting. > >It can be obtained from: >https://dist.apache.org/repos/dist/dev/tomcat/tomcat-7/v7.0.64/ >The Maven staging repo is: >https://repository.apache.org/content/repositories/orgapachetomcat-1050/ >The svn tag is: >http://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_7_0_64/ > >The proposed 7.0.64 release is: >[ ] Broken - do not release >[x] Stable - go ahead and release as 7.0.64 Stable (non-binding) Tested on opensuse 13.1 with openjdk 1.7.0_85 64bit. MD5, SHA1 sums and pgp signatures are ok. Regards, Felix > >Regards, >Violeta - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1696729 - /tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java
Author: markt Date: Thu Aug 20 08:47:40 2015 New Revision: 1696729 URL: http://svn.apache.org/r1696729 Log: Fix typo Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java?rev=1696729&r1=1696728&r2=1696729&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java Thu Aug 20 08:47:40 2015 @@ -36,7 +36,7 @@ public class ConnectionSettingsLocal { private static final Integer KEY_HEADER_TABLE_SIZE = Integer.valueOf(1); private static final Integer KEY_ENABLE_PUSH = Integer.valueOf(2); private static final Integer KEY_MAX_CONCURRENT_STREAMS = Integer.valueOf(3); -private static final Integer KEY_INITAIL_WINDOW_SIZE = Integer.valueOf(4); +private static final Integer KEY_INITIAL_WINDOW_SIZE = Integer.valueOf(4); private static final Integer KEY_MAX_FRAME_SIZE = Integer.valueOf(5); private static final Integer KEY_MAX_HEADER_LIST_SIZE = Integer.valueOf(6); @@ -63,7 +63,7 @@ public class ConnectionSettingsLocal { current.put(KEY_HEADER_TABLE_SIZE, DEFAULT_HEADER_TABLE_SIZE); current.put(KEY_ENABLE_PUSH,DEFAULT_ENABLE_PUSH); current.put(KEY_MAX_CONCURRENT_STREAMS, DEFAULT_MAX_CONCURRENT_STREAMS); -current.put(KEY_INITAIL_WINDOW_SIZE,DEFAULT_INITIAL_WINDOW_SIZE); +current.put(KEY_INITIAL_WINDOW_SIZE,DEFAULT_INITIAL_WINDOW_SIZE); current.put(KEY_MAX_FRAME_SIZE, DEFAULT_MAX_FRAME_SIZE); current.put(KEY_MAX_HEADER_LIST_SIZE, DEFAULT_MAX_HEADER_LIST_SIZE); } @@ -189,10 +189,10 @@ public class ConnectionSettingsLocal { public int getInitialWindowSize() { -return getMaxInt(KEY_INITAIL_WINDOW_SIZE); +return getMaxInt(KEY_INITIAL_WINDOW_SIZE); } public void setInitialWindowSize(long initialWindowSize) { -set(KEY_INITAIL_WINDOW_SIZE, initialWindowSize); +set(KEY_INITIAL_WINDOW_SIZE, initialWindowSize); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1696732 - in /tomcat/trunk/java/org/apache/coyote/http2: ConnectionSettingsBase.java ConnectionSettingsLocal.java ConnectionSettingsRemote.java
Author: markt Date: Thu Aug 20 08:51:11 2015 New Revision: 1696732 URL: http://svn.apache.org/r1696732 Log: Create a (currently empty) common base class for connection settings to enable common code to be pulled up. Added: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java Added: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java?rev=1696732&view=auto == --- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java (added) +++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java Thu Aug 20 08:51:11 2015 @@ -0,0 +1,21 @@ +/* + * 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; + +public abstract class ConnectionSettingsBase { + +} Propchange: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java -- svn:eol-style = native Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java?rev=1696732&r1=1696731&r2=1696732&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java Thu Aug 20 08:51:11 2015 @@ -31,7 +31,7 @@ import java.util.Map; * client will respond (almost certainly by closing the connection) as defined * in the HTTP/2 specification. */ -public class ConnectionSettingsLocal { +public class ConnectionSettingsLocal extends ConnectionSettingsBase { private static final Integer KEY_HEADER_TABLE_SIZE = Integer.valueOf(1); private static final Integer KEY_ENABLE_PUSH = Integer.valueOf(2); Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java?rev=1696732&r1=1696731&r2=1696732&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java Thu Aug 20 08:51:11 2015 @@ -24,7 +24,7 @@ import org.apache.tomcat.util.res.String * Represents the remote connection settings: i.e. the settings the server must * use when communicating with the client. */ -public class ConnectionSettingsRemote { +public class ConnectionSettingsRemote extends ConnectionSettingsBase { private final Log log = LogFactory.getLog(ConnectionSettingsRemote.class); private final StringManager sm = StringManager.getManager(ConnectionSettingsRemote.class); - 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
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/168 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] 1696732 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
svn commit: r1696754 - in /tomcat/trunk: java/org/apache/coyote/http2/ test/org/apache/coyote/http2/
Author: markt Date: Thu Aug 20 10:36:25 2015 New Revision: 1696754 URL: http://svn.apache.org/r1696754 Log: Refactor setting handling so common validation is applied to local and remote Added: tomcat/trunk/java/org/apache/coyote/http2/Setting.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_4_2.java tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_2.java tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_3.java tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_5_5.java tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_5.java tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.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=1696754&r1=1696753&r2=1696754&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/AbstractStream.java Thu Aug 20 10:36:25 2015 @@ -35,7 +35,7 @@ abstract class AbstractStream { private volatile AbstractStream parentStream = null; private final Set childStreams = new HashSet<>(); -private long windowSize = ConnectionSettingsRemote.DEFAULT_INITIAL_WINDOW_SIZE; +private long windowSize = ConnectionSettingsBase.DEFAULT_INITIAL_WINDOW_SIZE; public Integer getIdentifier() { return identifier; @@ -119,7 +119,7 @@ abstract class AbstractStream { getIdentifier(), Integer.toString(increment), Long.toString(windowSize))); } -if (windowSize > ConnectionSettingsRemote.MAX_WINDOW_SIZE) { +if (windowSize > ConnectionSettingsBase.MAX_WINDOW_SIZE) { String msg = sm.getString("abstractStream.windowSizeTooBig", getConnectionId(), identifier, Integer.toString(increment), Long.toString(windowSize)); if (identifier.intValue() == 0) { Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java?rev=1696754&r1=1696753&r2=1696754&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java Thu Aug 20 10:36:25 2015 @@ -16,6 +16,198 @@ */ package org.apache.coyote.http2; -public abstract class ConnectionSettingsBase { +import java.util.HashMap; +import java.util.Map; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; +import org.apache.tomcat.util.res.StringManager; + +public abstract class ConnectionSettingsBase { + +private final Log log = LogFactory.getLog(ConnectionSettingsBase.class); +private final StringManager sm = StringManager.getManager(ConnectionSettingsBase.class); + +// Limits +protected static final int MAX_WINDOW_SIZE = (1 << 31) - 1; +protected static final int MIN_MAX_FRAME_SIZE = 1 << 14; +protected static final int MAX_MAX_FRAME_SIZE = (1 << 24) - 1; +protected static final long UNLIMITED = ((long)1 << 32); // Use the maximum possible + +// Defaults +protected static final int DEFAULT_HEADER_TABLE_SIZE = 4096; +protected static final boolean DEFAULT_ENABLE_PUSH = true; +protected static final long DEFAULT_MAX_CONCURRENT_STREAMS = UNLIMITED; +protected static final int DEFAULT_INITIAL_WINDOW_SIZE = (1 << 16) - 1; +protected static final int DEFAULT_MAX_FRAME_SIZE = MIN_MAX_FRAME_SIZE; +protected static final long DEFAULT_MAX_HEADER_LIST_SIZE = UNLIMITED; + +protected Map current = new HashMap<>(); +protected Map pending = new HashMap<>(); + + +public ConnectionSettingsBase() { +// Set up the defaults +current.put(Setting.HEADER_TABLE_SIZE, Long.valueOf(DEFAULT_HEADER_TABLE_SIZE)); +current.put(Setting.ENABLE_PUSH, Long.valueOf(DEFAULT_ENABLE_PUSH ? 1 : 0)); +current.put(Setting.MAX_CONCURRENT_STREAMS, Long.valueOf(DEFAULT_MAX_CONCURRENT_STREAMS)); +current.put(Setting.INITIAL_WINDOW_SIZE, Long.valueOf(DEFAULT_INITIAL_WINDOW_SIZE)); +current.put(Setting.MAX_FRAME_SIZE, Long.valueOf(DEF
svn commit: r1696756 - in /tomcat/trunk: java/org/apache/coyote/http2/Http2UpgradeHandler.java test/org/apache/coyote/http2/TestHttp2Section_6_9.java
Author: markt Date: Thu Aug 20 11:02:58 2015 New Revision: 1696756 URL: http://svn.apache.org/r1696756 Log: Changes to the initial window size need to modify existing flow control windows as if the had started with the new initial size. Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.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=1696756&r1=1696755&r2=1696756&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Thu Aug 20 11:02:58 2015 @@ -983,7 +983,22 @@ public class Http2UpgradeHandler extends @Override public void setting(Setting setting, long value) throws ConnectionException { -remoteSettings.set(setting, value); +// Special handling required +if (setting == Setting.INITIAL_WINDOW_SIZE) { +long oldValue = remoteSettings.getInitialWindowSize(); +// Do this first in case new value is invalid +remoteSettings.set(setting, value); +int diff = (int) (value - oldValue); +for (Stream stream : streams.values()) { +try { +stream.incrementWindowSize(diff); +} catch (Http2Exception e) { +// Should never happen since the diff should always be valid +} +} +} else { +remoteSettings.set(setting, value); +} } Modified: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java?rev=1696756&r1=1696755&r2=1696756&view=diff == --- tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java (original) +++ tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java Thu Aug 20 11:02:58 2015 @@ -16,6 +16,8 @@ */ package org.apache.coyote.http2; +import java.nio.ByteBuffer; + import org.junit.Assert; import org.junit.Test; @@ -153,5 +155,89 @@ public class TestHttp2Section_6_9 extend Assert.assertTrue(output.getTrace(), output.getTrace().startsWith( "0-Goaway-[1]-[" + Http2Error.FLOW_CONTROL_ERROR.getCode() + "]-[")); } + + +@Test +public void testWindowSizeAndSettingsFrame() throws Exception { +http2Connect(); + +// Set up a POST request that echoes the body back +byte[] headersFrameHeader = new byte[9]; +ByteBuffer headersPayload = ByteBuffer.allocate(128); +byte[] dataFrameHeader = new byte[9]; +ByteBuffer dataPayload = ByteBuffer.allocate(8 * 1024); + +buildPostRequest(headersFrameHeader, headersPayload, +dataFrameHeader, dataPayload, null, 3); + +// Write the headers +writeFrame(headersFrameHeader, headersPayload); + +// Now use a settings frame to reduce the size of the flow control +// window. +sendSettings(0, false, new SettingValue(4, 4 * 1024)); +// Ack +parser.readFrame(true); +Assert.assertEquals("0-Settings-Ack\n", output.getTrace()); +output.clearTrace(); + +// Write the body +writeFrame(dataFrameHeader, dataPayload); + +// Window size updates after reading POST body +parser.readFrame(true); +parser.readFrame(true); +Assert.assertEquals( +"0-WindowSize-[8192]\n" + +"3-WindowSize-[8192]\n", +output.getTrace()); +output.clearTrace(); + +// Read stream 3 headers and first part of body +parser.readFrame(true); +parser.readFrame(true); +Assert.assertEquals( +"3-HeadersStart\n" + +"3-Header-[:status]-[200]\n" + +"3-HeadersEnd\n" + +"3-Body-4096\n", output.getTrace()); +output.clearTrace(); + +// Do a POST that won't be affected by the above limit +sendSimplePostRequest(5, null); +// Window size updates after reading POST body +parser.readFrame(true); +parser.readFrame(true); +Assert.assertEquals( +"0-WindowSize-[128]\n" + +"5-WindowSize-[128]\n", +output.getTrace()); +output.clearTrace(); +// Headers + body +parser.readFrame(true); +parser.readFrame(true); +Assert.assertEquals( +"5-HeadersStart\n" + +"5-Header-[:status]-[200]\n" + +"5-HeadersEnd\n" + +"5-Body-
svn commit: r1696757 - /tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java
Author: markt Date: Thu Aug 20 11:10:24 2015 New Revision: 1696757 URL: http://svn.apache.org/r1696757 Log: Expand the test to ensure that once the flow control window goes negative, nothing is written until it becomes positive again. Modified: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java Modified: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java?rev=1696757&r1=1696756&r2=1696757&view=diff == --- tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java (original) +++ tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java Thu Aug 20 11:10:24 2015 @@ -203,6 +203,22 @@ public class TestHttp2Section_6_9 extend "3-Body-4096\n", output.getTrace()); output.clearTrace(); +// Now use a settings frame to further reduce the size of the flow +// control window. This should make the stream 3 window negative +sendSettings(0, false, new SettingValue(4, 2 * 1024)); +// Ack +parser.readFrame(true); +Assert.assertEquals("0-Settings-Ack\n", output.getTrace()); +output.clearTrace(); + +// Now use a settings frame to increase the size of the flow control +// window. The stream 3 window should still be negative +sendSettings(0, false, new SettingValue(4, 3 * 1024)); +// Ack +parser.readFrame(true); +Assert.assertEquals("0-Settings-Ack\n", output.getTrace()); +output.clearTrace(); + // Do a POST that won't be affected by the above limit sendSimplePostRequest(5, null); // Window size updates after reading POST body - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1696785 - in /tomcat/trunk: java/org/apache/coyote/http2/Http2UpgradeHandler.java java/org/apache/coyote/http2/LocalStrings.properties test/org/apache/coyote/http2/TestHttp2Section_6_9.ja
Author: markt Date: Thu Aug 20 13:09:27 2015 New Revision: 1696785 URL: http://svn.apache.org/r1696785 Log: Another test for 6.9 Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.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=1696785&r1=1696784&r2=1696785&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Thu Aug 20 13:09:27 2015 @@ -992,8 +992,17 @@ public class Http2UpgradeHandler extends for (Stream stream : streams.values()) { try { stream.incrementWindowSize(diff); -} catch (Http2Exception e) { -// Should never happen since the diff should always be valid +} catch (Http2Exception h2e) { +try { +closeStream(new StreamException(sm.getString( +"upgradeHandler.windowSizeTooBig", connectionId, +stream.getIdentifier()), +h2e.getError(), stream.getIdentifier().intValue())); +} catch (IOException ioe) { +if (log.isDebugEnabled()) { + log.debug(sm.getString("upgradeHandler.socketCloseFailed"), ioe); +} +} } } } else { 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=1696785&r1=1696784&r2=1696785&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties Thu Aug 20 13:09:27 2015 @@ -102,6 +102,7 @@ upgradeHandler.upgrade=Connection [{0}], upgradeHandler.upgrade.fail=Connection [{0}], HTTP/1.1 upgrade failed upgradeHandler.upgradeDispatch.entry=Entry, Connection [{0}], SocketStatus [{1}] upgradeHandler.upgradeDispatch.exit=Exit, Connection [{0}], SocketState [{1}] +upgradeHandler.windowSizeTooBig=Connection [{0}], Stream [{1}], Window size too big upgradeHandler.windowSizeReservationInterrupted=Connection [{0}], Stream [{1}], reservation for [{2}] bytes upgradeHandler.writeBody=Connection [{0}], Stream [{1}], Data length [{2}] upgradeHandler.writeHeaders=Connection [{0}], Stream [{1}] Modified: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java?rev=1696785&r1=1696784&r2=1696785&view=diff == --- tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java (original) +++ tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java Thu Aug 20 13:09:27 2015 @@ -255,5 +255,24 @@ public class TestHttp2Section_6_9 extend "3-EndOfStream\n", output.getTrace()); output.clearTrace(); } -// TODO: Remaining 6.9 tests + + +@Test +public void testWindowSizeTooLargeViaSettings() throws Exception { +http2Connect(); + +// Set up stream 3 +sendSimplePostRequest(3, null, false); + +// Increase the flow control window but keep it under the limit +sendWindowUpdate(3, 1 << 30); + +// Now increase beyond the limit via a settings frame +sendSettings(0, false, new SettingValue(4, 1 << 30)); +// Ack +parser.readFrame(true); +Assert.assertEquals("3-RST-[" + Http2Error.FLOW_CONTROL_ERROR.getCode() + "]", +output.getTrace()); + +} } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1696787 - in /tomcat/trunk/java/org/apache/coyote/http2: ConnectionSettingsLocal.java Http2UpgradeHandler.java LocalStrings.properties
Author: markt Date: Thu Aug 20 13:15:34 2015 New Revision: 1696787 URL: http://svn.apache.org/r1696787 Log: Implement a TODO. Log receipt of an unexpected ACK. Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java 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/ConnectionSettingsLocal.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java?rev=1696787&r1=1696786&r2=1696787&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java Thu Aug 20 13:15:34 2015 @@ -67,14 +67,14 @@ public class ConnectionSettingsLocal ext } -synchronized void ack() { +synchronized boolean ack() { if (sendInProgress) { sendInProgress = false; current.putAll(pending); pending.clear(); +return true; } else { -// Unexpected ACK. Log it? -// TODO +return false; } } 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=1696787&r1=1696786&r2=1696787&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Thu Aug 20 13:15:34 2015 @@ -1014,7 +1014,11 @@ public class Http2UpgradeHandler extends @Override public void settingsEnd(boolean ack) throws IOException { if (ack) { -localSettings.ack(); +if (!localSettings.ack()) { +// Ack was unexpected +log.warn(sm.getString( +"upgradeHandler.unexpectedAck", connectionId, getIdentifier())); +} } else { synchronized (socketWrapper) { socketWrapper.write(true, SETTINGS_ACK, 0, SETTINGS_ACK.length); 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=1696787&r1=1696786&r2=1696787&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties Thu Aug 20 13:15:34 2015 @@ -96,6 +96,7 @@ upgradeHandler.stream.closed=Stream [{0} upgradeHandler.stream.even=A new remote stream ID of [{0}] was requested but all remote streams must use odd identifiers upgradeHandler.stream.old=A new remote stream ID of [{0}] was requested but the most recent stream was [{1}] upgradeHandler.tooManyRemoteStreams=The client attempted to use more than [{0}] active streams +upgradeHandler.unexpectedAck=Connection [{0}], Stream [{1}], A settings acknowledgement was received when not expected upgradeHandler.unexpectedEos=Unexpected end of stream upgradeHandler.unexpectedStatus=An unexpected value of status ([{0}]) was passed to this method upgradeHandler.upgrade=Connection [{0}], HTTP/1.1 upgrade to stream [1] - 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
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/172 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] 1696785 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
buildbot exception in ASF Buildbot on tomcat-trunk
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/173 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] 1696787 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
[GUMP@vmgump]: Project tomcat-trunk-validate (in module tomcat-trunk) failed
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact the folk at gene...@gump.apache.org. Project tomcat-trunk-validate has an issue affecting its community integration. This issue affects 1 projects. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - tomcat-trunk-validate : Tomcat 9.x, a web server implementing the Java Servlet 4.0, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on checkstyle exists, no need to add for property checkstyle.jar. -INFO- Failed with reason build failed The following work was performed: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate/gump_work/build_tomcat-trunk_tomcat-trunk-validate.html Work Name: build_tomcat-trunk_tomcat-trunk-validate (Type: Build) Work ended in a state of : Failed Elapsed: 1 min 9 secs Command Line: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Dcheckstyle.jar=/srv/gump/public/workspace/checkstyle/target/checkstyle-6.10-SNAPSHOT.jar -Dexecute.validate=true validate [Working Directory: /srv/gump/public/workspace/tomcat-trunk] CLASSPATH: /usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/public/workspace/checkstyle/target/checkstyle-6.10-SNAPSHOT.jar:/srv/gump/packages/antlr/antlr-3.1.3.jar:/srv/gump/public/workspace/apache-commons/beanutils/dist/commons-beanutils-20150820.jar:/srv/gump/packages/commons-collections3/commons-collections-3.2.1.jar:/srv/gump/public/workspace/apache-commons/cli/target/commons-cli-1.4-SNAPSHOT.jar:/srv/gump/public/workspace/commons-lang-trunk/target/commons-lang3-3.5-SNAPSHOT.ja r:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-20150820.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-api-20150820.jar:/srv/gump/packages/guava/guava-18.0.jar - Buildfile: /srv/gump/public/workspace/tomcat-trunk/build.xml build-prepare: [delete] Deleting directory /srv/gump/public/workspace/tomcat-trunk/output/build/temp [mkdir] Created dir: /srv/gump/public/workspace/tomcat-trunk/output/build/temp compile-prepare: download-validate: testexist: [echo] Testing for /srv/gump/public/workspace/checkstyle/target/checkstyle-6.10-SNAPSHOT.jar setproxy: downloadfile: validate: [mkdir] Created dir: /srv/gump/public/workspace/tomcat-trunk/output/res/checkstyle [checkstyle] Running Checkstyle 6.10-SNAPSHOT on 3037 files [checkstyle] /srv/gump/public/workspace/tomcat-trunk/java/org/apache/coyote/http2/Setting.java:1: Line does not match expected header line of '^(rem)?\W*Licensed to the Apache Software Foundation \(ASF\) under one or more$'. BUILD FAILED /srv/gump/public/workspace/tomcat-trunk/build.xml:547: Got 1 errors and 0 warnings. Total time: 1 minute 8 seconds - To subscribe to this information via syndicated feeds: - RSS: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate/rss.xml - Atom: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate/atom.xml == Gump Tracking Only === Produced by Apache Gump(TM) version 2.3. Gump Run 20150820120004, vmgump.apache.org:vmgump:20150820120004 Gump E-mail Identifier (unique within run) #1. -- Apache Gump http://gump.apache.org/ [Instance: vmgump] - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1696861 - /tomcat/trunk/java/org/apache/coyote/http2/Setting.java
Author: markt Date: Thu Aug 20 21:46:13 2015 New Revision: 1696861 URL: http://svn.apache.org/r1696861 Log: Whoops. Forgot the AL2 header. Modified: tomcat/trunk/java/org/apache/coyote/http2/Setting.java Modified: tomcat/trunk/java/org/apache/coyote/http2/Setting.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Setting.java?rev=1696861&r1=1696860&r2=1696861&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Setting.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Setting.java Thu Aug 20 21:46:13 2015 @@ -1,3 +1,19 @@ +/* + * 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; public enum Setting { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GUMP@vmgump]: Project tomcat-tc7.0.x-test-nio (in module tomcat-7.0.x) failed
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact the folk at gene...@gump.apache.org. Project tomcat-tc7.0.x-test-nio has an issue affecting its community integration. This issue affects 1 projects. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - tomcat-tc7.0.x-test-nio : Tomcat 7.x, a web server implementing Java Servlet 3.0, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-7.0.x/tomcat-tc7.0.x-test-nio/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on tomcat-tc7.0.x-dbcp exists, no need to add for property tomcat-dbcp-src.jar. -DEBUG- Dependency on commons-daemon exists, no need to add for property commons-daemon.native.src.tgz. -DEBUG- Dependency on commons-daemon exists, no need to add for property tomcat-native.tar.gz. -DEBUG- Dependency on tomcat-tc7.0.x-dbcp exists, no need to add for property tomcat-dbcp.home. -INFO- Failed with reason build failed -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-7.0.x/output/logs-NIO -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-7.0.x/output/test-tmp-NIO/logs The following work was performed: http://vmgump.apache.org/gump/public/tomcat-7.0.x/tomcat-tc7.0.x-test-nio/gump_work/build_tomcat-7.0.x_tomcat-tc7.0.x-test-nio.html Work Name: build_tomcat-7.0.x_tomcat-tc7.0.x-test-nio (Type: Build) Work ended in a state of : Failed Elapsed: 29 mins 51 secs Command Line: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150821-native-src.tar.gz -Dtest.reports=output/logs-NIO -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150821-native-src.tar.gz -Dexamples.sources.skip=true -Dtomcat-dbcp.home=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.5-201506032000/ecj-4.5.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20150821.jar -Dtomcat-dbcp-src.jar=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-src.jar -Dtest.excludePerformance=true -Dtest.accesslog=true -Dcommons-pool.home=/srv/gump/pub lic/workspace/commons-pool-1.x -Dcommons-dbcp.home=/srv/gump/public/workspace/commons-dbcp-1.x -Dexecute.test.apr=false -Dexecute.test.bio=false -Dexecute.test.nio=true -Dtomcat-dbcp.jar=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-20150821.jar -Dtest.temp=output/test-tmp-NIO -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.jar test [Working Directory: /srv/gump/public/workspace/tomcat-7.0.x] CLASSPATH: /usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/webapps/examples/WEB-INF/classes:/srv/gump/public/workspace/tomcat-7.0.x/output/testclasses:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/bin/bootstrap.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/bin/tomcat-juli.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/annotations-api.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/servlet-api.ja r:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/jsp-api.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/el-api.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/catalina.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/catalina-ant.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/tomcat-coyote.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/jasper.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/jasper-el.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/catalina-tribes.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/catalina-ha.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/tomcat-api.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/tomcat-util.jar:/srv