[tomcat] branch 9.0.x updated: Avoid most of the thread pool use during NIO2 socket accept
This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 3f2df25 Avoid most of the thread pool use during NIO2 socket accept 3f2df25 is described below commit 3f2df25b8e5a7a7be595437a2fcea8040ed71fd4 Author: remm AuthorDate: Thu Oct 29 22:26:09 2020 +0100 Avoid most of the thread pool use during NIO2 socket accept When maxConnections is not -1, the socket accept of NIO2 competes with the other request execution activities. This can be avoided when it is known that it will not block. Patch submitted by Anil Gursel. --- java/org/apache/tomcat/util/net/Nio2Endpoint.java | 8 webapps/docs/changelog.xml| 4 2 files changed, 12 insertions(+) diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java b/java/org/apache/tomcat/util/net/Nio2Endpoint.java index 284f342..15873ec 100644 --- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java +++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java @@ -434,6 +434,14 @@ public class Nio2Endpoint extends AbstractJsseEndpointSocketTimeoutException instances that did not have one. (markt) + +Avoid most of the thread pool use during NIO2 socket accept. Patch +submitted by Anil Gursel. (remm) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch master updated: Avoid most of the thread pool use during NIO2 socket accept
This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/master by this push: new 7444f1e Avoid most of the thread pool use during NIO2 socket accept 7444f1e is described below commit 7444f1e13b091e0c140cf4959c4530e84ef67fdd Author: remm AuthorDate: Thu Oct 29 22:26:09 2020 +0100 Avoid most of the thread pool use during NIO2 socket accept When maxConnections is not -1, the socket accept of NIO2 competes with the other request execution activities. This can be avoided when it is known that it will not block. Patch submitted by Anil Gursel. --- java/org/apache/tomcat/util/net/Nio2Endpoint.java | 8 webapps/docs/changelog.xml| 4 2 files changed, 12 insertions(+) diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java b/java/org/apache/tomcat/util/net/Nio2Endpoint.java index 1d218a5..7bd882e 100644 --- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java +++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java @@ -422,6 +422,14 @@ public class Nio2Endpoint extends AbstractJsseEndpointSocketTimeoutException instances that did not have one. (markt) + +Avoid most of the thread pool use during NIO2 socket accept. Patch +submitted by Anil Gursel. (remm) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: JPMS module names
Hi all, Just a reminder that this is on the radar. I'll likely be looking to make these changes early next week as part of the prep for the next release round (I need to sort this to be able to fix BZ 64849 sensibly). Mark On 27/10/2020 20:04, Mark Thomas wrote: > Hi all, > > We are starting to get JPMS related bug reports. Resolving the issues is > technically simple but depends on us deciding on the names to use for > the various modules. > > The names we choose for our own modules are easy. Generally we are using > the same or derivation from the OSGi module name. > > The names we use for the spec API modules are a little more tricky. We > need to (try and) remain aligned with the RI spec JARs. > > It looks like Jakarta EE 9 onwards is going to have consistent naming > (at least it does for the modules we use). Java EE 8 / Jakarta EE 8 is a > bit more inconsistent. > > I have put together a wiki page that documents the current position and > the naming I propose we use in Tomcat. > > https://cwiki.apache.org/confluence/display/TOMCAT/JPMS+names > > Comments (in this thread ideally) welcome. > > Once we (appear to) have consensus I'll update the builds to use the new > names and start fixing the associated bugs. > > Mark > > - > 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: svn/git for website
On 29/10/2020 19:27, Igal Sapir wrote: > Dave, > > On Wed, Oct 28, 2020 at 9:36 PM Dave Fisher wrote: > >> Hi - >> >> I may have helpful ideas. Tell me where the Tomcst site repository and >> build are located. >> > > The SVN repo for the Tomcat site is at > http://svn.apache.org/repos/asf/tomcat/site/ > > I'm not sure where the build scripts are stored or executed from. There is no automated build. Committers run the scripts locally when the site needs updating. Details in the read me file in the root of the repo. Mark > > Thanks, > > Igal > > > >> >> Regards, >> Dave >> >> Sent from my iPhone >> >>> On Oct 27, 2020, at 12:18 PM, Christopher Schultz < >> ch...@christopherschultz.net> wrote: >>> >>> Konstantin, >>> On 10/26/20 20:47, Konstantin Kolinko wrote: пт, 2 окт. 2020 г. в 00:09, Mark Thomas : > > Hi all, > > The topic came up at the BoF session at the end of the Tomcat track of > migrating the website from svn to git. There were strong opinions both > for migrating and for sticking with svn. > > As a middle ground I'd like to propose we ask Infra to create a git > mirror of the svn repo. > > For those who favour git: > The git mirror would be read-only but it would be possible to: > - clone the git mirror > - make changes in git > - use git-svn to commit those changes back to svn > - then the mirror automatically replicates them back to git > > For those who favour svn there would be no change. > > If there is agreement on this approach, I volunteer to contact infra to > get it set up. My proposal at BoF was for a partial mirror. The issue is that 1. I think that this mirror is intended as a tool to collect feedback / patches from random people, and to lower barriers for contribution. 2. The full Tomcat site is large. It includes documentation for all versions of Tomcat, including javadocs. Those pages are changed rarely and are not needed for people who contribute small changes for the site. The source code for those pages is elsewhere. >>> >>> The question I have to ask, here is: why do we bother putting all those >> files in revision-control? The users guide for 4 different versions of >> Tomcat is not a problem, but the javadocs are just stupid to store. >>> >>> Is there some policy we are following by having all those files in >> there? Or is it just to make sure that website "publication" is as simple >> as "svn checkout"? >>> 3. Subversion has easy commands to cope with such large source trees. This feature is called "sparse checkouts". For our site the necessary commands are documented in README.txt. Essentially, it is done with --depth and --set-depth arguments to "svn checkout" and "svn update" commands Speaking about Git, there are huge repositories [1] out there, but I think that the majority of people are not accustomed to them. [1] https://en.wikipedia.org/wiki/Monorepo I see that Git developers recently did some work to make dealing with such repositories simpler, with addition of "git sparse-checkout" command in Git 2.25.0 [2], released in January 2020. [2] >> https://github.com/git/git/blob/v2.25.0/Documentation/RelNotes/2.25.0.txt Though I think that support in tools is still lacking. E.g. missing in TortoiseGit. [3] [3] https://gitlab.com/tortoisegit/tortoisegit/issues/1599 If we go with a full Git mirror or with migration to Git, then I think that somebody has to prepare an update to README.txt. If we go with a partial Git mirror, I think it could be named "tomcat-site-dev", reserving the name "tomcat-site" for a full mirror if we ever make one. Ignored paths for git-svn are configured with "--ignore-paths" argument or with "svn-remote..ignore-paths" configuration option. [4] [4] https://git-scm.com/docs/git-svn Other notes: 4. Release managers use Subversion to publish the binaries. Thus I expect that they are able to update the published documentation with Subversion as well. 5. Publishing the javadocs generates small changes over a large number of files. The script that generates the commit email notes that the diff is huge and trims it all to a small summary. If we ever migrate to Git, I wonder whether a similar script in Git is able to cope with it. >>> >>> We might also want to consider complicating the website-building process >> in order to simplify the repository. Yes, "disk space is cheap" but it's >> kind of ridiculous that we have all that derivative content in RCS, >> separate from its canonical source. >>> >>> -chris >>> >>> - >>> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >>> For additional commands, e-mail: dev-h...@tomcat.apache.org >>> >> >> >> ---
[Bug 64858] Allow to deploy a WAR whose dependencies are on a Maven repository
https://bz.apache.org/bugzilla/show_bug.cgi?id=64858 --- Comment #5 from Mark Thomas --- I have always viewed WebResource and friends as the extension point for things like this. Easy extensibility rather took a back seat as those interfaces evolved but I'd be happy to consider changes to them to make it easier to provide custom extensions (or complete replacement) of Tomcat's resources implementation. I think it highly unlikely the necessary extension points to add additional deployment types identified by file extension will be added. -- 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 64762] CoyoteInputStream getInputStream() read (wait after premature end and the rest comes)
https://bz.apache.org/bugzilla/show_bug.cgi?id=64762 --- Comment #9 from Mark Thomas --- This issue has been in the NEEDINFO state for a month now. Without sufficient information to reproduce the issue this will eventually get closed. -- 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: svn/git for website
Dave, On Wed, Oct 28, 2020 at 9:36 PM Dave Fisher wrote: > Hi - > > I may have helpful ideas. Tell me where the Tomcst site repository and > build are located. > The SVN repo for the Tomcat site is at http://svn.apache.org/repos/asf/tomcat/site/ I'm not sure where the build scripts are stored or executed from. Thanks, Igal > > Regards, > Dave > > Sent from my iPhone > > > On Oct 27, 2020, at 12:18 PM, Christopher Schultz < > ch...@christopherschultz.net> wrote: > > > > Konstantin, > > > >> On 10/26/20 20:47, Konstantin Kolinko wrote: > >> пт, 2 окт. 2020 г. в 00:09, Mark Thomas : > >>> > >>> Hi all, > >>> > >>> The topic came up at the BoF session at the end of the Tomcat track of > >>> migrating the website from svn to git. There were strong opinions both > >>> for migrating and for sticking with svn. > >>> > >>> As a middle ground I'd like to propose we ask Infra to create a git > >>> mirror of the svn repo. > >>> > >>> For those who favour git: > >>> The git mirror would be read-only but it would be possible to: > >>> - clone the git mirror > >>> - make changes in git > >>> - use git-svn to commit those changes back to svn > >>> - then the mirror automatically replicates them back to git > >>> > >>> For those who favour svn there would be no change. > >>> > >>> If there is agreement on this approach, I volunteer to contact infra to > >>> get it set up. > >> My proposal at BoF was for a partial mirror. > >> The issue is that > >> 1. I think that this mirror is intended as a tool to collect feedback > >> / patches from random people, and to lower barriers for contribution. > >> 2. The full Tomcat site is large. It includes documentation for all > >> versions of Tomcat, including javadocs. Those pages are changed rarely > >> and are not needed for people who contribute small changes for the > >> site. The source code for those pages is elsewhere. > > > > The question I have to ask, here is: why do we bother putting all those > files in revision-control? The users guide for 4 different versions of > Tomcat is not a problem, but the javadocs are just stupid to store. > > > > Is there some policy we are following by having all those files in > there? Or is it just to make sure that website "publication" is as simple > as "svn checkout"? > > > >> 3. Subversion has easy commands to cope with such large source trees. > >> This feature is called "sparse checkouts". > >> For our site the necessary commands are documented in README.txt. > >> Essentially, it is done with --depth and --set-depth arguments to "svn > >> checkout" and "svn update" commands > >> Speaking about Git, there are huge repositories [1] out there, but I > >> think that the majority of people are not accustomed to them. > >> [1] https://en.wikipedia.org/wiki/Monorepo > >> I see that Git developers recently did some work to make dealing with > >> such repositories simpler, with addition of "git sparse-checkout" > >> command in Git 2.25.0 [2], released in January 2020. > >> [2] > https://github.com/git/git/blob/v2.25.0/Documentation/RelNotes/2.25.0.txt > >> Though I think that support in tools is still lacking. E.g. missing in > >> TortoiseGit. [3] > >> [3] https://gitlab.com/tortoisegit/tortoisegit/issues/1599 > >> If we go with a full Git mirror or with migration to Git, then I think > >> that somebody has to prepare an update to README.txt. > >> If we go with a partial Git mirror, I think it could be named > >> "tomcat-site-dev", reserving the name "tomcat-site" for a full mirror > >> if we ever make one. > >> Ignored paths for git-svn are configured with "--ignore-paths" > >> argument or with "svn-remote..ignore-paths" configuration > >> option. [4] > >> [4] https://git-scm.com/docs/git-svn > >> Other notes: > >> 4. Release managers use Subversion to publish the binaries. > >> Thus I expect that they are able to update the published documentation > >> with Subversion as well. > >> 5. Publishing the javadocs generates small changes over a large number > >> of files. The script that generates the commit email notes that the > >> diff is huge and trims it all to a small summary. > >> If we ever migrate to Git, I wonder whether a similar script in Git is > >> able to cope with it. > > > > We might also want to consider complicating the website-building process > in order to simplify the repository. Yes, "disk space is cheap" but it's > kind of ridiculous that we have all that derivative content in RCS, > separate from its canonical source. > > > > -chris > > > > - > > 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 > >
[Bug 64859] Assertion errros org.apache.catalina.mapper.Mapper.internalMap(Mapper.java:744)
https://bz.apache.org/bugzilla/show_bug.cgi?id=64859 Mark Thomas changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Mark Thomas --- This is typically caused by an application or library retaining a reference to a request, response, InputStream, OutputStream etc. beyond the lifetime of the original request (Tomcat recycles these objects and you end up with two threads trying to use the same object). The users list is usually the best place to debug issues such as these. If you are sure a reference is not being retained and you are able to reproduce this issue feel free to re-open this report and provide the necessary steps to recreate the issue from a clean install of the latest release of a currently supported Tomcat major version (e.g. 9.0.x). -- 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 63690] [HTTP/2] The socket [*] associated with this connection has been closed.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63690 Mark Thomas changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED --- Comment #25 from Mark Thomas --- The provided stack trace is unrelated to the original issue. It looks like the connection is being closed as a result of a stream reset being received. That may be normal behaviour. If you consider this a bug you'll need to open a new issue and provide a minimal test case that reproduces the 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 64830] HTTP2 : GOAWAY sent with Protocol Error and Frame Size Error
https://bz.apache.org/bugzilla/show_bug.cgi?id=64830 Mark Thomas changed: What|Removed |Added Status|NEW |NEEDINFO --- Comment #10 from Mark Thomas --- Moving to NEEDINFO as more information about the provided test case is required to reproduce the 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 64830] HTTP2 : GOAWAY sent with Protocol Error and Frame Size Error
https://bz.apache.org/bugzilla/show_bug.cgi?id=64830 --- Comment #9 from Mark Thomas --- What hardware are you running this on? I've been running the test case locally for 15+ mins and I haven't seen a single error reported. Details are hardware used, memory allocated to Tomcat and JMeter, network between client and server would likely be helpful. If we can't recreate the issue, we can't debug it. -- 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
[GitHub] [tomcat] rmaucher commented on pull request #371: NIO2: Call `accept` immediately if connection count is not close to max con…
rmaucher commented on pull request #371: URL: https://github.com/apache/tomcat/pull/371#issuecomment-718885690 Hum, ok, since incrementing is not done in parallel, then it's something that can be tried. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 02/02: Add bug ID after an issue was opened against an older version
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit a9e4c87db38ac347e3d4f6158fd859db0156997e Author: Mark Thomas AuthorDate: Thu Oct 29 14:45:22 2020 + Add bug ID after an issue was opened against an older version --- webapps/docs/changelog.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 7f7caf8..9d1e1da 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -398,8 +398,9 @@ provided by Ronny Perinke. (markt) -Fix a potential issue where the write lock for a WebSocket connection -may not be released if an exception occurs during the write. (markt) +64848: Fix a potential issue where the write lock for a +WebSocket connection may not be released if an exception occurs during +the write. (markt) 64644: Add support for a read idle timeout and a write idle - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 01/02: Provide exception messages for SocketTimeoutException
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 18cfff56a0ca945c0bc43b033deb8f2480f03301 Author: Mark Thomas AuthorDate: Thu Oct 29 14:44:23 2020 + Provide exception messages for SocketTimeoutException --- java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 4 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/java/org/apache/tomcat/util/net/LocalStrings.properties b/java/org/apache/tomcat/util/net/LocalStrings.properties index b6d7861..17c3309 100644 --- a/java/org/apache/tomcat/util/net/LocalStrings.properties +++ b/java/org/apache/tomcat/util/net/LocalStrings.properties @@ -132,6 +132,9 @@ socket.apr.write.error=Unexpected error [{0}] writing data to the APR/native soc socket.closed=The socket associated with this connection has been closed. socket.sslreneg=Exception re-negotiating SSL connection +socketWrapper.readTimeout=Read timeout +socketWrapper.writeTimeout=Write timeout + sslHostConfig.certificate.notype=Multiple certificates were specified and at least one is missing the required attribute type sslHostConfig.certificateVerificationInvalid=The certificate verification value [{0}] is not recognised sslHostConfig.fileNotFound=Configured file [{0}] does not exist diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java b/java/org/apache/tomcat/util/net/SocketWrapperBase.java index d044a47..dd1da55 100644 --- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java +++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java @@ -1407,13 +1407,13 @@ public abstract class SocketWrapperBase { state.wait(unit.toMillis(timeout)); if (state.state == CompletionState.PENDING) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } } catch (InterruptedException e) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } @@ -1423,12 +1423,23 @@ public abstract class SocketWrapperBase { return state.state; } + +private String getTimeoutMsg(boolean read) { +if (read) { +return sm.getString("socketWrapper.readTimeout"); +} else { +return sm.getString("socketWrapper.writeTimeout"); +} +} + + protected abstract OperationState newOperationState(boolean read, ByteBuffer[] buffers, int offset, int length, BlockingMode block, long timeout, TimeUnit unit, A attachment, CompletionCheck check, CompletionHandler handler, Semaphore semaphore, VectoredIOCompletionHandler completion); + // - Utility methods protected static int transfer(byte[] from, int offset, int length, ByteBuffer to) { diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 606603d..7f7caf8 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -91,6 +91,10 @@ 63362: Add collection of statistics for HTTP/2, WebSocket and connections upgraded via the HTTP upgrade mechanism. (markt) + +Provide messages for some SocketTimeoutException instances +that did not have one. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 8.5.x updated (f0b2ace -> a9e4c87)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git. from f0b2ace Revert "Restore try catch around Poller.events" new 18cfff5 Provide exception messages for SocketTimeoutException new a9e4c87 Add bug ID after an issue was opened against an older version The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 9 +++-- 3 files changed, 23 insertions(+), 4 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 01/02: Provide exception messages for SocketTimeoutException
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 18cfff56a0ca945c0bc43b033deb8f2480f03301 Author: Mark Thomas AuthorDate: Thu Oct 29 14:44:23 2020 + Provide exception messages for SocketTimeoutException --- java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 4 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/java/org/apache/tomcat/util/net/LocalStrings.properties b/java/org/apache/tomcat/util/net/LocalStrings.properties index b6d7861..17c3309 100644 --- a/java/org/apache/tomcat/util/net/LocalStrings.properties +++ b/java/org/apache/tomcat/util/net/LocalStrings.properties @@ -132,6 +132,9 @@ socket.apr.write.error=Unexpected error [{0}] writing data to the APR/native soc socket.closed=The socket associated with this connection has been closed. socket.sslreneg=Exception re-negotiating SSL connection +socketWrapper.readTimeout=Read timeout +socketWrapper.writeTimeout=Write timeout + sslHostConfig.certificate.notype=Multiple certificates were specified and at least one is missing the required attribute type sslHostConfig.certificateVerificationInvalid=The certificate verification value [{0}] is not recognised sslHostConfig.fileNotFound=Configured file [{0}] does not exist diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java b/java/org/apache/tomcat/util/net/SocketWrapperBase.java index d044a47..dd1da55 100644 --- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java +++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java @@ -1407,13 +1407,13 @@ public abstract class SocketWrapperBase { state.wait(unit.toMillis(timeout)); if (state.state == CompletionState.PENDING) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } } catch (InterruptedException e) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } @@ -1423,12 +1423,23 @@ public abstract class SocketWrapperBase { return state.state; } + +private String getTimeoutMsg(boolean read) { +if (read) { +return sm.getString("socketWrapper.readTimeout"); +} else { +return sm.getString("socketWrapper.writeTimeout"); +} +} + + protected abstract OperationState newOperationState(boolean read, ByteBuffer[] buffers, int offset, int length, BlockingMode block, long timeout, TimeUnit unit, A attachment, CompletionCheck check, CompletionHandler handler, Semaphore semaphore, VectoredIOCompletionHandler completion); + // - Utility methods protected static int transfer(byte[] from, int offset, int length, ByteBuffer to) { diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 606603d..7f7caf8 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -91,6 +91,10 @@ 63362: Add collection of statistics for HTTP/2, WebSocket and connections upgraded via the HTTP upgrade mechanism. (markt) + +Provide messages for some SocketTimeoutException instances +that did not have one. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 02/02: Add bug ID after an issue was opened against an older version
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit a9e4c87db38ac347e3d4f6158fd859db0156997e Author: Mark Thomas AuthorDate: Thu Oct 29 14:45:22 2020 + Add bug ID after an issue was opened against an older version --- webapps/docs/changelog.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 7f7caf8..9d1e1da 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -398,8 +398,9 @@ provided by Ronny Perinke. (markt) -Fix a potential issue where the write lock for a WebSocket connection -may not be released if an exception occurs during the write. (markt) +64848: Fix a potential issue where the write lock for a +WebSocket connection may not be released if an exception occurs during +the write. (markt) 64644: Add support for a read idle timeout and a write idle - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 8.5.x updated (f0b2ace -> a9e4c87)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git. from f0b2ace Revert "Restore try catch around Poller.events" new 18cfff5 Provide exception messages for SocketTimeoutException new a9e4c87 Add bug ID after an issue was opened against an older version The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 9 +++-- 3 files changed, 23 insertions(+), 4 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 02/02: Add bug ID after an issue was opened against an older version
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit a9e4c87db38ac347e3d4f6158fd859db0156997e Author: Mark Thomas AuthorDate: Thu Oct 29 14:45:22 2020 + Add bug ID after an issue was opened against an older version --- webapps/docs/changelog.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 7f7caf8..9d1e1da 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -398,8 +398,9 @@ provided by Ronny Perinke. (markt) -Fix a potential issue where the write lock for a WebSocket connection -may not be released if an exception occurs during the write. (markt) +64848: Fix a potential issue where the write lock for a +WebSocket connection may not be released if an exception occurs during +the write. (markt) 64644: Add support for a read idle timeout and a write idle - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 8.5.x updated (f0b2ace -> a9e4c87)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git. from f0b2ace Revert "Restore try catch around Poller.events" new 18cfff5 Provide exception messages for SocketTimeoutException new a9e4c87 Add bug ID after an issue was opened against an older version The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 9 +++-- 3 files changed, 23 insertions(+), 4 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 01/02: Provide exception messages for SocketTimeoutException
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 18cfff56a0ca945c0bc43b033deb8f2480f03301 Author: Mark Thomas AuthorDate: Thu Oct 29 14:44:23 2020 + Provide exception messages for SocketTimeoutException --- java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 4 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/java/org/apache/tomcat/util/net/LocalStrings.properties b/java/org/apache/tomcat/util/net/LocalStrings.properties index b6d7861..17c3309 100644 --- a/java/org/apache/tomcat/util/net/LocalStrings.properties +++ b/java/org/apache/tomcat/util/net/LocalStrings.properties @@ -132,6 +132,9 @@ socket.apr.write.error=Unexpected error [{0}] writing data to the APR/native soc socket.closed=The socket associated with this connection has been closed. socket.sslreneg=Exception re-negotiating SSL connection +socketWrapper.readTimeout=Read timeout +socketWrapper.writeTimeout=Write timeout + sslHostConfig.certificate.notype=Multiple certificates were specified and at least one is missing the required attribute type sslHostConfig.certificateVerificationInvalid=The certificate verification value [{0}] is not recognised sslHostConfig.fileNotFound=Configured file [{0}] does not exist diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java b/java/org/apache/tomcat/util/net/SocketWrapperBase.java index d044a47..dd1da55 100644 --- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java +++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java @@ -1407,13 +1407,13 @@ public abstract class SocketWrapperBase { state.wait(unit.toMillis(timeout)); if (state.state == CompletionState.PENDING) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } } catch (InterruptedException e) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } @@ -1423,12 +1423,23 @@ public abstract class SocketWrapperBase { return state.state; } + +private String getTimeoutMsg(boolean read) { +if (read) { +return sm.getString("socketWrapper.readTimeout"); +} else { +return sm.getString("socketWrapper.writeTimeout"); +} +} + + protected abstract OperationState newOperationState(boolean read, ByteBuffer[] buffers, int offset, int length, BlockingMode block, long timeout, TimeUnit unit, A attachment, CompletionCheck check, CompletionHandler handler, Semaphore semaphore, VectoredIOCompletionHandler completion); + // - Utility methods protected static int transfer(byte[] from, int offset, int length, ByteBuffer to) { diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 606603d..7f7caf8 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -91,6 +91,10 @@ 63362: Add collection of statistics for HTTP/2, WebSocket and connections upgraded via the HTTP upgrade mechanism. (markt) + +Provide messages for some SocketTimeoutException instances +that did not have one. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 01/02: Provide exception messages for SocketTimeoutException
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 18cfff56a0ca945c0bc43b033deb8f2480f03301 Author: Mark Thomas AuthorDate: Thu Oct 29 14:44:23 2020 + Provide exception messages for SocketTimeoutException --- java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 4 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/java/org/apache/tomcat/util/net/LocalStrings.properties b/java/org/apache/tomcat/util/net/LocalStrings.properties index b6d7861..17c3309 100644 --- a/java/org/apache/tomcat/util/net/LocalStrings.properties +++ b/java/org/apache/tomcat/util/net/LocalStrings.properties @@ -132,6 +132,9 @@ socket.apr.write.error=Unexpected error [{0}] writing data to the APR/native soc socket.closed=The socket associated with this connection has been closed. socket.sslreneg=Exception re-negotiating SSL connection +socketWrapper.readTimeout=Read timeout +socketWrapper.writeTimeout=Write timeout + sslHostConfig.certificate.notype=Multiple certificates were specified and at least one is missing the required attribute type sslHostConfig.certificateVerificationInvalid=The certificate verification value [{0}] is not recognised sslHostConfig.fileNotFound=Configured file [{0}] does not exist diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java b/java/org/apache/tomcat/util/net/SocketWrapperBase.java index d044a47..dd1da55 100644 --- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java +++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java @@ -1407,13 +1407,13 @@ public abstract class SocketWrapperBase { state.wait(unit.toMillis(timeout)); if (state.state == CompletionState.PENDING) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } } catch (InterruptedException e) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } @@ -1423,12 +1423,23 @@ public abstract class SocketWrapperBase { return state.state; } + +private String getTimeoutMsg(boolean read) { +if (read) { +return sm.getString("socketWrapper.readTimeout"); +} else { +return sm.getString("socketWrapper.writeTimeout"); +} +} + + protected abstract OperationState newOperationState(boolean read, ByteBuffer[] buffers, int offset, int length, BlockingMode block, long timeout, TimeUnit unit, A attachment, CompletionCheck check, CompletionHandler handler, Semaphore semaphore, VectoredIOCompletionHandler completion); + // - Utility methods protected static int transfer(byte[] from, int offset, int length, ByteBuffer to) { diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 606603d..7f7caf8 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -91,6 +91,10 @@ 63362: Add collection of statistics for HTTP/2, WebSocket and connections upgraded via the HTTP upgrade mechanism. (markt) + +Provide messages for some SocketTimeoutException instances +that did not have one. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 02/02: Add bug ID after an issue was opened against an older version
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit a9e4c87db38ac347e3d4f6158fd859db0156997e Author: Mark Thomas AuthorDate: Thu Oct 29 14:45:22 2020 + Add bug ID after an issue was opened against an older version --- webapps/docs/changelog.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 7f7caf8..9d1e1da 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -398,8 +398,9 @@ provided by Ronny Perinke. (markt) -Fix a potential issue where the write lock for a WebSocket connection -may not be released if an exception occurs during the write. (markt) +64848: Fix a potential issue where the write lock for a +WebSocket connection may not be released if an exception occurs during +the write. (markt) 64644: Add support for a read idle timeout and a write idle - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 8.5.x updated (f0b2ace -> a9e4c87)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git. from f0b2ace Revert "Restore try catch around Poller.events" new 18cfff5 Provide exception messages for SocketTimeoutException new a9e4c87 Add bug ID after an issue was opened against an older version The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 9 +++-- 3 files changed, 23 insertions(+), 4 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 02/02: Add bug ID after an issue was opened against an older version
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit a9e4c87db38ac347e3d4f6158fd859db0156997e Author: Mark Thomas AuthorDate: Thu Oct 29 14:45:22 2020 + Add bug ID after an issue was opened against an older version --- webapps/docs/changelog.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 7f7caf8..9d1e1da 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -398,8 +398,9 @@ provided by Ronny Perinke. (markt) -Fix a potential issue where the write lock for a WebSocket connection -may not be released if an exception occurs during the write. (markt) +64848: Fix a potential issue where the write lock for a +WebSocket connection may not be released if an exception occurs during +the write. (markt) 64644: Add support for a read idle timeout and a write idle - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 8.5.x updated (f0b2ace -> a9e4c87)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git. from f0b2ace Revert "Restore try catch around Poller.events" new 18cfff5 Provide exception messages for SocketTimeoutException new a9e4c87 Add bug ID after an issue was opened against an older version The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 9 +++-- 3 files changed, 23 insertions(+), 4 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 01/02: Provide exception messages for SocketTimeoutException
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 18cfff56a0ca945c0bc43b033deb8f2480f03301 Author: Mark Thomas AuthorDate: Thu Oct 29 14:44:23 2020 + Provide exception messages for SocketTimeoutException --- java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 4 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/java/org/apache/tomcat/util/net/LocalStrings.properties b/java/org/apache/tomcat/util/net/LocalStrings.properties index b6d7861..17c3309 100644 --- a/java/org/apache/tomcat/util/net/LocalStrings.properties +++ b/java/org/apache/tomcat/util/net/LocalStrings.properties @@ -132,6 +132,9 @@ socket.apr.write.error=Unexpected error [{0}] writing data to the APR/native soc socket.closed=The socket associated with this connection has been closed. socket.sslreneg=Exception re-negotiating SSL connection +socketWrapper.readTimeout=Read timeout +socketWrapper.writeTimeout=Write timeout + sslHostConfig.certificate.notype=Multiple certificates were specified and at least one is missing the required attribute type sslHostConfig.certificateVerificationInvalid=The certificate verification value [{0}] is not recognised sslHostConfig.fileNotFound=Configured file [{0}] does not exist diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java b/java/org/apache/tomcat/util/net/SocketWrapperBase.java index d044a47..dd1da55 100644 --- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java +++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java @@ -1407,13 +1407,13 @@ public abstract class SocketWrapperBase { state.wait(unit.toMillis(timeout)); if (state.state == CompletionState.PENDING) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } } catch (InterruptedException e) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } @@ -1423,12 +1423,23 @@ public abstract class SocketWrapperBase { return state.state; } + +private String getTimeoutMsg(boolean read) { +if (read) { +return sm.getString("socketWrapper.readTimeout"); +} else { +return sm.getString("socketWrapper.writeTimeout"); +} +} + + protected abstract OperationState newOperationState(boolean read, ByteBuffer[] buffers, int offset, int length, BlockingMode block, long timeout, TimeUnit unit, A attachment, CompletionCheck check, CompletionHandler handler, Semaphore semaphore, VectoredIOCompletionHandler completion); + // - Utility methods protected static int transfer(byte[] from, int offset, int length, ByteBuffer to) { diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 606603d..7f7caf8 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -91,6 +91,10 @@ 63362: Add collection of statistics for HTTP/2, WebSocket and connections upgraded via the HTTP upgrade mechanism. (markt) + +Provide messages for some SocketTimeoutException instances +that did not have one. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 02/02: Add bug ID after an issue was opened against an older version
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 9db8adbb3da30173c26c55b83c00cd65b6d2aa34 Author: Mark Thomas AuthorDate: Thu Oct 29 14:45:22 2020 + Add bug ID after an issue was opened against an older version --- webapps/docs/changelog.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index a2414ab..68031ff 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -511,8 +511,9 @@ provided by Ronny Perinke. (markt) -Fix a potential issue where the write lock for a WebSocket connection -may not be released if an exception occurs during the write. (markt) +64848: Fix a potential issue where the write lock for a +WebSocket connection may not be released if an exception occurs during +the write. (markt) 64644: Add support for a read idle timeout and a write idle - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 9.0.x updated (99c52a2 -> efaeff3)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git. from 99c52a2 Add dedicated handling and warn for a null socket channel add aca2226 Provide exception messages for SocketTimeoutException add efaeff3 Add bug ID after an issue was opened against an older version No new revisions were added by this update. Summary of changes: java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 9 +++-- 3 files changed, 23 insertions(+), 4 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch master updated (717387f -> 9db8adb)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git. from 717387f Add dedicated handling and warn for a null socket channel new 3ecb663 Provide exception messages for SocketTimeoutException new 9db8adb Add bug ID after an issue was opened against an older version The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 9 +++-- 3 files changed, 23 insertions(+), 4 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] 01/02: Provide exception messages for SocketTimeoutException
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 3ecb6633ff958812635f36a0d1274adba5b0ef1b Author: Mark Thomas AuthorDate: Thu Oct 29 14:44:23 2020 + Provide exception messages for SocketTimeoutException --- java/org/apache/tomcat/util/net/LocalStrings.properties | 3 +++ java/org/apache/tomcat/util/net/SocketWrapperBase.java | 15 +-- webapps/docs/changelog.xml | 4 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/java/org/apache/tomcat/util/net/LocalStrings.properties b/java/org/apache/tomcat/util/net/LocalStrings.properties index a6a376a..1de8916 100644 --- a/java/org/apache/tomcat/util/net/LocalStrings.properties +++ b/java/org/apache/tomcat/util/net/LocalStrings.properties @@ -154,6 +154,9 @@ socket.apr.write.error=Unexpected error [{0}] writing data to the APR/native soc socket.closed=The socket associated with this connection has been closed. socket.sslreneg=Exception re-negotiating SSL connection +socketWrapper.readTimeout=Read timeout +socketWrapper.writeTimeout=Write timeout + sslHostConfig.certificate.notype=Multiple certificates were specified and at least one is missing the required attribute type sslHostConfig.certificateVerificationInvalid=The certificate verification value [{0}] is not recognised sslHostConfig.fileNotFound=Configured file [{0}] does not exist diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java b/java/org/apache/tomcat/util/net/SocketWrapperBase.java index ad7d1e3..06fea5f 100644 --- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java +++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java @@ -1395,13 +1395,13 @@ public abstract class SocketWrapperBase { state.wait(unit.toMillis(timeout)); if (state.state == CompletionState.PENDING) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } } catch (InterruptedException e) { if (handler != null && state.callHandler.compareAndSet(true, false)) { -handler.failed(new SocketTimeoutException(), attachment); +handler.failed(new SocketTimeoutException(getTimeoutMsg(read)), attachment); } return CompletionState.ERROR; } @@ -1411,12 +1411,23 @@ public abstract class SocketWrapperBase { return state.state; } + +private String getTimeoutMsg(boolean read) { +if (read) { +return sm.getString("socketWrapper.readTimeout"); +} else { +return sm.getString("socketWrapper.writeTimeout"); +} +} + + protected abstract OperationState newOperationState(boolean read, ByteBuffer[] buffers, int offset, int length, BlockingMode block, long timeout, TimeUnit unit, A attachment, CompletionCheck check, CompletionHandler handler, Semaphore semaphore, VectoredIOCompletionHandler completion); + // - Utility methods protected static int transfer(byte[] from, int offset, int length, ByteBuffer to) { diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index f5adf81..a2414ab 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -112,6 +112,10 @@ the NIO poller thread to exit. This is a regression caused when the Poller.events method was refactored. (remm) + +Provide messages for some SocketTimeoutException instances +that did not have one. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] anilgursel commented on pull request #371: NIO2: Call `accept` immediately if connection count is not close to max con…
anilgursel commented on pull request #371: URL: https://github.com/apache/tomcat/pull/371#issuecomment-718799285 I updated the PR to have it as `getMaxConnections() / 2`. I agree it is just a heuristic and not clean. We can potentially make it configurable? If my understanding is correct, one reason to schedule the `accept` is to prevent blocking the thread. The reason behind blocking (via `LimitLatch`) is to have a hard limit on the `maxConnections`. Is there any possibility to relax this a bit? Something like: ```java else if (getConnectionCount() < getMaxConnections()) { increment(); serverSock.accept(null, this); } ``` With this, there is possibility of number of connections to go over `maxConnections` little bit (which I think the expectation can be managed in documentation). Actually, I believe there will only be one thread doing `accept` logic at any given time. Because, a new `accept` is scheduled only when the previous one is `completed`. Is this true? If so, it would not go beyond maxConnections. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 64848] WsSession objects in OUTPUT_CLOSED state are implicitly held by waitingProcessors and GC cannot purge them from the JVM heap
https://bz.apache.org/bugzilla/show_bug.cgi?id=64848 Mark Thomas changed: What|Removed |Added Resolution|--- |FIXED Status|NEEDINFO|RESOLVED --- Comment #5 from Mark Thomas --- This bug has already been fixed in the 9.0.38 onwards. https://github.com/apache/tomcat/commit/5707895bafa38c1443460356a268932a967b79e9 -- 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 64848] WsSession objects in OUTPUT_CLOSED state are implicitly held by waitingProcessors and GC cannot purge them from the JVM heap
https://bz.apache.org/bugzilla/show_bug.cgi?id=64848 --- Comment #4 from Mark Thomas --- I'm able to recreate this with the 3 provided Maven projects. I ran the client on a local VM with VMware Workstation configured to limit the network connection to 10Mbps with 20ms latency inbound and outbound. Next step is to update to the latest Tomcat 9 code and see if the issue persists. -- 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 64859] Assertion errros org.apache.catalina.mapper.Mapper.internalMap(Mapper.java:744)
https://bz.apache.org/bugzilla/show_bug.cgi?id=64859 marcin borcz changed: What|Removed |Added CC||marcin.bo...@asseco.pl -- 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 64859] New: Assertion errros org.apache.catalina.mapper.Mapper.internalMap(Mapper.java:744)
https://bz.apache.org/bugzilla/show_bug.cgi?id=64859 Bug ID: 64859 Summary: Assertion errros org.apache.catalina.mapper.Mapper.internalMap(Mapper.j ava:744) Product: Tomcat 9 Version: 9.0.34 Hardware: All OS: Linux Status: NEW Severity: normal Priority: P2 Component: Catalina Assignee: dev@tomcat.apache.org Reporter: marcin.bo...@asseco.pl Target Milestone: - Created attachment 37538 --> https://bz.apache.org/bugzilla/attachment.cgi?id=37538&action=edit Full stacktraces for mentioned log entries We had observed the following assertion errors, total 356 cases. "java.lang.AssertionError at org.apache.catalina.mapper.Mapper.internalMap(Mapper.java:744)" Above errors were preceded by the two log info entries "org.apache.catalina.connector.CoyoteAdapter.checkRecycled Encountered a non-recycled request and recycled it forcedly. org.apache.catalina.connector.CoyoteAdapter$RecycleRequiredException" "org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalStateException: Unexpected state: headers already parsed. Buffer not recycled?" Full log entries are in the attachment. Assertion errors had occurred for 2 hours and then the problem disappeared. After a few hours, we had noticed another two cases this time not preceded by any connected log entries. After that, we restarted the problematic instance and the situation has not repeated anymore. Almost the same configuration and application are in use for weeks so it's rather not an issue. Application and installation: Spring Boot 2.0 + Vaadin 8 The application running in Kubernetes based on image tomcat:9.0.34-jdk8-openjdk-slim -- 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
[GitHub] [tomcat] rmaucher commented on pull request #371: NIO2: Call `accept` immediately if connection count is not close to max con…
rmaucher commented on pull request #371: URL: https://github.com/apache/tomcat/pull/371#issuecomment-718632321 maxConnections overall is a bad design for NIO2, that is a bit obvious. It started with connections not being counted accurately then after some iterative refactorings of close it remains a bad idea. For the longest time the default was fixed to -1 (still there in 8.5). I guess all you're doing is add a heuristic that works for you [but actually no guarantee]. Also about accept, I refactored it NIO2 style to save one thread and it seems more efficient overall, before it was a much more classical NIO1 style accept using the same dedicated thread (so one extra thread, and likely less efficient). The downside of the strategy is that the accept is just like the other processing threads when maxConnections is used. If there's a heavy thread starvation, then accept will get delayed. I don't think it's the end of the world, the server will actually be slow for everyone, but I understand. OTOH, if your app is as you say using non blocking IO and is saving on threads, then there's no downside to the strategy [even with full use of the thread pool, the threads become available very frequently and accept stays responsive]. So I'm ok with adding some heuristic, but maxThreads can be too low. Maybe maxConnections/2 would be good enough, with another heuristic on a minimal number ... Not very clean ... This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 64858] Allow to deploy a WAR whose dependencies are on a Maven repository
https://bz.apache.org/bugzilla/show_bug.cgi?id=64858 --- Comment #4 from Gael Lalire --- There is nothing proprietary, all my code is open source. And by extension point I mean a Tomcat extension point. So for example in Tomcat : interface MainResourceSetLoader { String getExtension(); DirResourceSet load(File file); } in Tomcat-vestige : class VestigeMainResourceSetLoader implements MainResourceSetLoader { String getExtension() { return ".vwar" } DirResourceSet load(File file) { /* read the vwar and create the resourceset */ } } So in StandardRoot.java you can do private MainResourceSetLoader externalMainResourceSetLoader; ... if (externalMainResourceSetLoader != null && file.endsWith(externalMainResourceSetLoader.getExtension())) { mainResourceSet = externalMainResourceSetLoader.load(file); } That is what I mean by extension point. -- 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