[Bug 63235] Defer potentially expensive Charset.availableCharsets() call
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 Andy Wilkinson changed: What|Removed |Added CC||awilkin...@pivotal.io -- 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 63237] Consider processing mbeans-descriptors.xml at compile time
https://bz.apache.org/bugzilla/show_bug.cgi?id=63237 Andy Wilkinson changed: What|Removed |Added CC||awilkin...@pivotal.io -- 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 63236] Reduce duplicate Strings
https://bz.apache.org/bugzilla/show_bug.cgi?id=63236 Andy Wilkinson changed: What|Removed |Added CC||awilkin...@pivotal.io -- 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 issue #142: Defer creation of encodingToCharsetCache
rmaucher commented on issue #142: Defer creation of encodingToCharsetCache URL: https://github.com/apache/tomcat/pull/142#issuecomment-470022349 If there is a lookup with Charset.forName, then would the cache be used at all ? I don't understand this sort of Windows style "startup time" optimization, where you hide stuff behind making running actual application code slower. This is often a bad design, so I don't see what this change brings. -0 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] rmaucher commented on issue #143: Apply deduplication to certain loaded and created Strings
rmaucher commented on issue #143: Apply deduplication to certain loaded and created Strings URL: https://github.com/apache/tomcat/pull/143#issuecomment-470022913 Can you give a metric of actual memory gains made using this change ? Adding complexity for very little benefit doesn't seem like a good move overall. 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 63235] Defer potentially expensive Charset.availableCharsets() call
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 Mark Thomas changed: What|Removed |Added Severity|normal |enhancement --- Comment #2 from Mark Thomas --- Lazy loading simply defers the performance hit so a user experiences a delay during a request rather than it happening at startup. The balance of opinion in the past has been that it is better to take such a hit on startup rather than during a request. This has been discussed previously. For the history see these bugs and the bugs linked from them: - bug 57808 - bug 58859 If we take some ideas from each of the various solutions that have been proposed at various points then I think it might be possible to come up with something that addresses all of the various concerns: - retain a cache of charset name to Charset - populate the keys only from a list of known charsets generated off-line by looking at the various JREs (OpenJDK, Oracle, IBM to start with) at system start - add a unit test to monitor for new Charsets in new JRE versions - populate the cache values at start-up for 'popular' charsets (ISO-8859-1, UTF-8 plus any others we think are likely to be used) - lazily populate any cache values for other Charsets - if a charset is requested, the key is present but the JVM can't create it, remove the key from the cache to speed up any future requests (saves trying to load non-existent Charset again) As I typed the above I though of perhaps a simpler variation: - retain a cache of charset name to Charset - populate the cache values at start-up for 'popular' charsets (ISO-8859-1, UTF-8 plus any others we think are likely to be used) - lazily populate any cache values for other Charsets - if a requested Charset does not exist, insert a special "NoSuchCharset" object to speed up future requests The more I think about it, the more I like that second option. Thoughts? -- 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 63237] Consider processing mbeans-descriptors.xml at compile time
https://bz.apache.org/bugzilla/show_bug.cgi?id=63237 Remy Maucherat changed: What|Removed |Added Severity|normal |enhancement --- Comment #1 from Remy Maucherat --- I have not tried to measure the time and resource costs of this parsing. Obviously changing it to something compiled would not be exclusively beneficial, so there needs to be clear gains for the embedded use case. -- 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 63235] Defer potentially expensive Charset.availableCharsets() call
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 --- Comment #3 from Remy Maucherat --- I think this adds complexity and possible problems for no real benefit. For example option 2 could have a very big cache (all you need to do is request random charset values) and could need a lot more sync than a static cache (which is basically free). -- 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 63235] Defer potentially expensive Charset.availableCharsets() call
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 --- Comment #4 from Mark Thomas --- Of course. That makes option 2 a non-starter. The other option isn't that far from the current code. I think it is worth looking at what it does to memory footprint and start-up time so we can see if the added complexity is worth the benefit. -- 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] y987425112 opened a new pull request #144: Variable adds final modifier
y987425112 opened a new pull request #144: Variable adds final modifier URL: https://github.com/apache/tomcat/pull/144 If these variables do not add final modifiers, there will be ambiguity and security risks. 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] markt-asf commented on issue #144: Variable adds final modifier
markt-asf commented on issue #144: Variable adds final modifier URL: https://github.com/apache/tomcat/pull/144#issuecomment-470050541 Potential security vulnerabilities should be reported privately to secur...@tomcat.apache.org. Not in a PR or any other public forum. That said, there are no valid security risks here so - fortunately - no harm is done. The additional of final here (and the many, many other places tools such as UCDetector will identify automatically) is more a matter of style than anything else. Making invalid claims of 'security risks' is not helpful. It undermines the credibility of the PR and makes it more likely it will be rejected. We generally do not make changes purely for stylistic reasons. There is a code quality case that could be made for this change but it isn't a particularly strong one. I am -1 on the PR as currently submitted due to the incorrect statement regarding security risks in the commit comment. 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 63191] RemoteEndpoint.Async#sendText(String, SendHandler) never calls the callback
https://bz.apache.org/bugzilla/show_bug.cgi?id=63191 --- Comment #11 from Mark Thomas --- Going back to the original thread dump with the "long" and the "short" stack traces... It is possible that the short stack trace is Tomcat trying to send the rest of the message sent via Async.sendText() and it blocked by the longer stack trace which is, in turn, blocked because the CometD Promise has not completed. Hence my question: what is that Promise waiting for? I don't know the CometD code well enough to trace it through to answer that question. I can see possibilities for deadlock here but it could be a complete red herring. What would be helpful at this point is an explanation of the execution path of CometD that shows what action the Promise is waiting to complete. -- 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 issue #144: Variable adds final modifier
rmaucher commented on issue #144: Variable adds final modifier URL: https://github.com/apache/tomcat/pull/144#issuecomment-470054183 That's a very useful reminder for me, if a PR is pulled, it *also* needs to have a decent description as well, otherwise misleading information gets into the commit info [and for sure it is the sort that would bring us trouble]. So -1 as well for this reason. 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] y987425112 commented on issue #144: Variable adds final modifier
y987425112 commented on issue #144: Variable adds final modifier URL: https://github.com/apache/tomcat/pull/144#issuecomment-470055949 I am very sorry, this is the first time I submit the code, because I am Chinese, my English is a little poor, there are errors in the description. Thank you very much for your guidance. I will continue to work hard. 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] y987425112 closed pull request #144: Variable adds final modifier
y987425112 closed pull request #144: Variable adds final modifier URL: https://github.com/apache/tomcat/pull/144 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
4 Apache Events in 2019: DC Roadshow soon; next up Chicago, Las Vegas, and Berlin!
Dear Apache Enthusiast, (You’re receiving this because you are subscribed to one or more user mailing lists for an Apache Software Foundation project.) TL;DR: * Apache Roadshow DC is in 3 weeks. Register now at https://apachecon.com/usroadshowdc19/ * Registration for Apache Roadshow Chicago is open. http://apachecon.com/chiroadshow19 * The CFP for ApacheCon North America is now open. https://apachecon.com/acna19 * Save the date: ApacheCon Europe will be held in Berlin, October 22nd through 24th. https://apachecon.com/aceu19 Registration is open for two Apache Roadshows; these are smaller events with a more focused program and regional community engagement: Our Roadshow event in Washington DC takes place in under three weeks, on March 25th. We’ll be hosting a day-long event at the Fairfax campus of George Mason University. The roadshow is a full day of technical talks (two tracks) and an open source job fair featuring AWS, Bloomberg, dito, GridGain, Linode, and Security University. More details about the program, the job fair, and to register, visit https://apachecon.com/usroadshowdc19/ Apache Roadshow Chicago will be held May 13-14th at a number of venues in Chicago’s Logan Square neighborhood. This event will feature sessions in AdTech, FinTech and Insurance, startups, “Made in Chicago”, Project Shark Tank (innovations from the Apache Incubator), community diversity, and more. It’s a great way to learn about various Apache projects “at work” while playing at a brewery, a beercade, and a neighborhood bar. Sign up today at https://www.apachecon.com/chiroadshow19/ We’re delighted to announce that the Call for Presentations (CFP) is now open for ApacheCon North America in Las Vegas, September 9-13th! As the official conference series of the ASF, ApacheCon North America will feature over a dozen Apache project summits, including Cassandra, Cloudstack, Tomcat, Traffic Control, and more. We’re looking for talks in a wide variety of categories -- anything related to ASF projects and the Apache development process. The CFP closes at midnight on May 26th. In addition, the ASF will be celebrating its 20th Anniversary during the event. For more details and to submit a proposal for the CFP, visit https://apachecon.com/acna19/ . Registration will be opening soon. Be sure to mark your calendars for ApacheCon Europe, which will be held in Berlin, October 22-24th at the KulturBrauerei, a landmark of Berlin's industrial history. In addition to innovative content from our projects, we are collaborating with the Open Source Design community (https://opensourcedesign.net/) to offer a track on design this year. The CFP and registration will open soon at https://apachecon.com/aceu19/ . Sponsorship opportunities are available for all events, with details listed on each event’s site at http://apachecon.com/. We look forward to seeing you! Rich, for the ApacheCon Planners @apachecon - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] philwebb commented on issue #143: Apply deduplication to certain loaded and created Strings
philwebb commented on issue #143: Apply deduplication to certain loaded and created Strings URL: https://github.com/apache/tomcat/pull/143#issuecomment-470145284 Sure. I discovered these by using the "Inspections" feature from [YourKit](https://www.yourkit.com/) on an [embedded Tomcat application](https://github.com/spring-projects/spring-boot/tree/87d696d6971c8bbd28be4fa885f9cf5719309c99/spring-boot-samples/spring-boot-sample-tomcat). Without the change YourKit reports 2192 duplicate Strings, with the change it's 1126 (so a saving of 1066). It's hard to get the exact memory saving but scanning the UI for the top hitters we have: | String | Duplicates | Waste | --- | --- | -- | "java.lang.String" | 2192 | 149112 | "ACTION" | 542 | 38952 | "boolean" | 191 | 10640 | "void" | 204 | 9744 | "Introspected parameter param0" | 80 | 8216 | "int" | 155 | 7392 | "[Ljava.lang.String;" | 42 | 3280 | So it looks like at least 227336 bytes can be saved. One other thing to consider is that I think these Strings are retained for the life of the application. They can't be GC'd because references remain until shutdown. 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] ChristopherSchultz commented on issue #143: Apply deduplication to certain loaded and created Strings
ChristopherSchultz commented on issue #143: Apply deduplication to certain loaded and created Strings URL: https://github.com/apache/tomcat/pull/143#issuecomment-470156059 I like the idea, but I think. the implementation could be better. For instance: 1. There is no need to have two collections; just use one and cache everything. 2. The cache should be "weak" so that any value no longer used can be GC'd 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] ChristopherSchultz edited a comment on issue #143: Apply deduplication to certain loaded and created Strings
ChristopherSchultz edited a comment on issue #143: Apply deduplication to certain loaded and created Strings URL: https://github.com/apache/tomcat/pull/143#issuecomment-470156059 I like the idea, but I think the implementation could be better. For instance: 1. There is no need to have two collections; just use one and cache everything. 2. The cache should be "weak" so that any value no longer used can be GC'd 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] rmaucher commented on issue #143: Apply deduplication to certain loaded and created Strings
rmaucher commented on issue #143: Apply deduplication to certain loaded and created Strings URL: https://github.com/apache/tomcat/pull/143#issuecomment-470157903 Ok, I'm not sure it is a very significant saving overall (probably not), but it's still more than I expected. Yes, +1for Chris, it needs to be something like TomcatString.getString I suppose. 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch master updated: NIO2 should use SocketTimeoutException
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 0969485 NIO2 should use SocketTimeoutException 0969485 is described below commit 09694859e475c7bdb2a522fb4325bf06b4e80193 Author: remm AuthorDate: Wed Mar 6 17:21:19 2019 +0100 NIO2 should use SocketTimeoutException Harmonize on SocketTimeoutException instead of mixing it with InterruptedByTimeout. Remove exception replacement in websockets code. --- java/org/apache/tomcat/util/net/Nio2Endpoint.java| 5 - .../apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java | 4 webapps/docs/changelog.xml | 4 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java b/java/org/apache/tomcat/util/net/Nio2Endpoint.java index bba8d97..7bd7191 100644 --- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java +++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java @@ -30,6 +30,7 @@ import java.nio.channels.AsynchronousSocketChannel; import java.nio.channels.ClosedChannelException; import java.nio.channels.CompletionHandler; import java.nio.channels.FileChannel; +import java.nio.channels.InterruptedByTimeoutException; import java.nio.channels.NetworkChannel; import java.nio.file.StandardOpenOption; import java.util.ArrayList; @@ -1172,7 +1173,9 @@ public class Nio2Endpoint extends AbstractJsseEndpoint state) { IOException ioe; -if (exc instanceof IOException) { +if (exc instanceof InterruptedByTimeoutException) { +ioe = new SocketTimeoutException(); +} else if (exc instanceof IOException) { ioe = (IOException) exc; } else { ioe = new IOException(exc); diff --git a/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java b/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java index 30a10a6..301d25c 100644 --- a/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java +++ b/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.net.SocketTimeoutException; import java.nio.ByteBuffer; import java.nio.channels.CompletionHandler; -import java.nio.channels.InterruptedByTimeoutException; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.TimeUnit; @@ -110,9 +109,6 @@ public class WsRemoteEndpointImplServer extends WsRemoteEndpointImplBase { } @Override public void failed(Throwable exc, Void attachment) { -if (exc instanceof InterruptedByTimeoutException) { -exc = new SocketTimeoutException(); -} if (block) { SendResult sr = new SendResult(exc); handler.onResult(sr); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 914b36b..86830b0 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -115,6 +115,10 @@ https://bugs.openjdk.java.net/browse/JDK-8157404";>JRE KeyStore loading bug. (markt) + +NIO2 should try to use SocketTimeoutException everywhere rather than a +mix of it and InterruptedByTimeout. (remm) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot success in on tomcat-trunk
The Buildbot has detected a restored build on builder tomcat-trunk while building tomcat. Full details are available at: https://ci.apache.org/builders/tomcat-trunk/builds/4115 Buildbot URL: https://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 master] 09694859e475c7bdb2a522fb4325bf06b4e80193 Blamelist: remm Build succeeded! Sincerely, -The Buildbot - 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: NIO2 should use SocketTimeoutException
This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/8.5.x by this push: new 12bfd3d NIO2 should use SocketTimeoutException 12bfd3d is described below commit 12bfd3de3eac97d230cc4170ac0ad782f35f1c7a Author: remm AuthorDate: Wed Mar 6 17:21:19 2019 +0100 NIO2 should use SocketTimeoutException Harmonize on SocketTimeoutException instead of mixing it with InterruptedByTimeout. Remove exception replacement in websockets code. # Conflicts: # java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java # webapps/docs/changelog.xml --- java/org/apache/tomcat/util/net/Nio2Endpoint.java | 5 - webapps/docs/changelog.xml| 4 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java b/java/org/apache/tomcat/util/net/Nio2Endpoint.java index b551659..3a63503 100644 --- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java +++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java @@ -30,6 +30,7 @@ import java.nio.channels.AsynchronousSocketChannel; import java.nio.channels.ClosedChannelException; import java.nio.channels.CompletionHandler; import java.nio.channels.FileChannel; +import java.nio.channels.InterruptedByTimeoutException; import java.nio.channels.NetworkChannel; import java.nio.file.StandardOpenOption; import java.util.concurrent.ExecutionException; @@ -1146,7 +1147,9 @@ public class Nio2Endpoint extends AbstractJsseEndpoint { @Override public void failed(Throwable exc, OperationState state) { IOException ioe; -if (exc instanceof IOException) { +if (exc instanceof InterruptedByTimeoutException) { +ioe = new SocketTimeoutException(); +} else if (exc instanceof IOException) { ioe = (IOException) exc; } else { ioe = new IOException(exc); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index bdc69cf..90297df 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -156,6 +156,10 @@ Sync with NIO2 async API from Tomcat 9 branch. (remm) + +NIO2 should try to use SocketTimeoutException everywhere rather than a +mix of it and InterruptedByTimeout. (remm) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] philwebb commented on issue #143: Apply deduplication to certain loaded and created Strings
philwebb commented on issue #143: Apply deduplication to certain loaded and created Strings URL: https://github.com/apache/tomcat/pull/143#issuecomment-470210052 The other option would be to use `String.intern` for these limited cases. Either way, I'm happy to rework the PR if you have a specific direction you'd like me to take it? 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch master updated: Improve logging when streams cannot be pruned.
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 The following commit(s) were added to refs/heads/master by this push: new 800bd8a Improve logging when streams cannot be pruned. 800bd8a is described below commit 800bd8a6a5d22127e37861f56f1217b2eee4514b Author: Mark Thomas AuthorDate: Wed Mar 6 18:13:12 2019 + Improve logging when streams cannot be pruned. This is to provide additional information to investigate reports like https://bz.apache.org/bugzilla/show_bug.cgi?id=63223 --- java/org/apache/coyote/http2/Http2UpgradeHandler.java | 6 +++--- java/org/apache/coyote/http2/LocalStrings.properties | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java b/java/org/apache/coyote/http2/Http2UpgradeHandler.java index 74b0023..4189a3f 100644 --- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java +++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java @@ -1000,7 +1000,7 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH sm.getString("upgradeHandler.stream.even", key), Http2Error.PROTOCOL_ERROR); } -pruneClosedStreams(); +pruneClosedStreams(streamId); Stream result = new Stream(key, this); streams.put(key, result); @@ -1034,7 +1034,7 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH } -private void pruneClosedStreams() { +private void pruneClosedStreams(int streamId) { // Only prune every 10 new streams if (newStreamsSinceLastPrune < 9) { // Not atomic. Increments may be lost. Not a problem. @@ -1146,7 +1146,7 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH if (toClose > 0) { log.warn(sm.getString("upgradeHandler.pruneIncomplete", connectionId, -Integer.toString(toClose))); +Integer.toString(streamId), Integer.toString(toClose))); } } diff --git a/java/org/apache/coyote/http2/LocalStrings.properties b/java/org/apache/coyote/http2/LocalStrings.properties index 3fc7000..c948c29 100644 --- a/java/org/apache/coyote/http2/LocalStrings.properties +++ b/java/org/apache/coyote/http2/LocalStrings.properties @@ -128,7 +128,7 @@ upgradeHandler.notifyAll=Connection [{0}], Stream [{1}], notifyAll() called to r upgradeHandler.pause.entry=Connection [{0}] Pausing upgradeHandler.pingFailed=Connection [{0}] Failed to send ping to client upgradeHandler.prefaceReceived=Connection [{0}], Connection preface received from client -upgradeHandler.pruneIncomplete=Connection [{0}] Failed to fully prune the connection because streams were active / used in the priority tree. There are [{1}] too many streams +upgradeHandler.pruneIncomplete=Connection [{0}], Stream [{1}], Failed to fully prune the connection because there are [{2}] too many active streams upgradeHandler.pruneStart=Connection [{0}] Starting pruning of old streams. Limit is [{1}] + 10% and there are currently [{2}] streams. upgradeHandler.pruned=Connection [{0}] Pruned completed stream [{1}] upgradeHandler.prunedPriority=Connection [{0}] Pruned unused stream [{1}] that may have been part of the priority tree - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch master updated (800bd8a -> e25130c)
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 800bd8a Improve logging when streams cannot be pruned. new bb67c85 Update translations for improved log message new 1e9eb61 Update Japanese translations new e25130c Update French translations The 20615 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/catalina/connector/LocalStrings_fr.properties| 2 ++ java/org/apache/catalina/connector/LocalStrings_ja.properties| 4 java/org/apache/catalina/core/LocalStrings_ja.properties | 1 + java/org/apache/catalina/ha/session/LocalStrings_ja.properties | 2 +- java/org/apache/catalina/manager/host/LocalStrings_ja.properties | 2 ++ java/org/apache/catalina/mbeans/LocalStrings_ja.properties | 1 + .../catalina/tribes/group/interceptors/LocalStrings_ja.properties| 1 + .../org/apache/catalina/tribes/membership/LocalStrings_ja.properties | 1 + java/org/apache/coyote/http2/LocalStrings_cs.properties | 2 +- java/org/apache/coyote/http2/LocalStrings_es.properties | 2 +- java/org/apache/coyote/http2/LocalStrings_fr.properties | 2 +- java/org/apache/coyote/http2/LocalStrings_ja.properties | 5 - java/org/apache/coyote/http2/LocalStrings_ko.properties | 2 +- java/org/apache/tomcat/websocket/pojo/LocalStrings_ja.properties | 3 +++ java/org/apache/tomcat/websocket/server/LocalStrings_ja.properties | 1 + 15 files changed, 25 insertions(+), 6 deletions(-) - 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: Improve logging when streams cannot be pruned.
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 The following commit(s) were added to refs/heads/8.5.x by this push: new eed1f6a Improve logging when streams cannot be pruned. eed1f6a is described below commit eed1f6a9f27f841bcb6eef8703e833d390b4d80b Author: Mark Thomas AuthorDate: Wed Mar 6 18:13:12 2019 + Improve logging when streams cannot be pruned. This is to provide additional information to investigate reports like https://bz.apache.org/bugzilla/show_bug.cgi?id=63223 --- java/org/apache/coyote/http2/Http2UpgradeHandler.java | 6 +++--- java/org/apache/coyote/http2/LocalStrings.properties | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java b/java/org/apache/coyote/http2/Http2UpgradeHandler.java index 590f3b2..6f3287e 100644 --- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java +++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java @@ -984,7 +984,7 @@ public class Http2UpgradeHandler extends AbstractStream implements InternalHttpU sm.getString("upgradeHandler.stream.even", key), Http2Error.PROTOCOL_ERROR); } -pruneClosedStreams(); +pruneClosedStreams(streamId); Stream result = new Stream(key, this); streams.put(key, result); @@ -1018,7 +1018,7 @@ public class Http2UpgradeHandler extends AbstractStream implements InternalHttpU } -private void pruneClosedStreams() { +private void pruneClosedStreams(int streamId) { // Only prune every 10 new streams if (newStreamsSinceLastPrune < 9) { // Not atomic. Increments may be lost. Not a problem. @@ -1130,7 +1130,7 @@ public class Http2UpgradeHandler extends AbstractStream implements InternalHttpU if (toClose > 0) { log.warn(sm.getString("upgradeHandler.pruneIncomplete", connectionId, -Integer.toString(toClose))); +Integer.toString(streamId), Integer.toString(toClose))); } } diff --git a/java/org/apache/coyote/http2/LocalStrings.properties b/java/org/apache/coyote/http2/LocalStrings.properties index f9ea1e3..c47e402 100644 --- a/java/org/apache/coyote/http2/LocalStrings.properties +++ b/java/org/apache/coyote/http2/LocalStrings.properties @@ -128,7 +128,7 @@ upgradeHandler.notifyAll=Connection [{0}], Stream [{1}], notifyAll() called to r upgradeHandler.pause.entry=Connection [{0}] Pausing upgradeHandler.prefaceReceived=Connection [{0}], Connection preface received from client upgradeHandler.pingFailed=Connection [{0}] Failed to send ping to client -upgradeHandler.pruneIncomplete=Connection [{0}] Failed to fully prune the connection because streams were active / used in the priority tree. There are [{1}] too many streams +upgradeHandler.pruneIncomplete=Connection [{0}], Stream [{1}], Failed to fully prune the connection because there are [{2}] too many active streams upgradeHandler.pruneStart=Connection [{0}] Starting pruning of old streams. Limit is [{1}] + 10% and there are currently [{2}] streams. upgradeHandler.pruned=Connection [{0}] Pruned completed stream [{1}] upgradeHandler.prunedPriority=Connection [{0}] Pruned unused stream [{1}] that may have been part of the priority tree - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot failure in on tomcat-85-trunk
The Buildbot has detected a new failure on builder tomcat-85-trunk while building tomcat. Full details are available at: https://ci.apache.org/builders/tomcat-85-trunk/builds/1687 Buildbot URL: https://ci.apache.org/ Buildslave for this Build: silvanus_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-85-commit' triggered this build Build Source Stamp: [branch 8.5.x] eed1f6a9f27f841bcb6eef8703e833d390b4d80b Blamelist: Mark Thomas 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 failure in on tomcat-trunk
The Buildbot has detected a new failure on builder tomcat-trunk while building tomcat. Full details are available at: https://ci.apache.org/builders/tomcat-trunk/builds/4117 Buildbot URL: https://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 master] e25130c14547e15369a8c331138e3df02d37a00b Blamelist: Mark Thomas BUILD FAILED: failed compile_1 Sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 63235] Defer potentially expensive Charset.availableCharsets() call
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 --- Comment #5 from Phillip Webb --- @Mark Thanks for pointing me at those previous issues, I should have thought to search first! It seems like I may have misunderstood the reason for the cache existing in the first place. My original assumption was that it was necessary for case-insensitive name lookups. It appears, on OpenJDK at least, calling `Charset.forName` works with any case combination works. The following will run without error: Set names = new LinkedHashSet<>(); Charset.availableCharsets().forEach((key, value) -> { names.add(value.name()); names.addAll(value.aliases()); }); names.forEach(name -> { System.out.println(Charset.forName(name.toLowerCase())); }); So the main reasons for the cache, as I understand it, are: 1) Improve lookup performance for initial requests by having a hot cache 2) Prevent DoS attacks by limiting the impact of a user requesting an invalid charset Looking at each of these in turn: 1) Improve lookup performance for initial requests by having a hot cache > populate the cache values at start-up for 'popular' charsets (ISO-8859-1, > UTF-8 plus any others we think are likely to be used) I like this suggestion and I think this would be a good match for most users. Popular charsets would be fast, and initial requests to others would take a slight hit. The `Charset` class itself includes a cache, so this could be as simple as calling `Charset.forName` a few times. 2) Prevent DoS attacks by limiting the impact of a user requesting an invalid charset Looking at the existing JDK `Charset` and `AbstractCharsetProvider`[1] class, it appears that asking for charsets that don't exist does not have an impact on memory. When I run the following code, I don't see a large change: for (int i = 0; i < 1000; i++) { try { Charset.forName("missing-" + i); } catch (Exception ex) { } if (i % 1 == 0) { System.out.println(Runtime.getRuntime().totalMemory()); System.out.println(Runtime.getRuntime().maxMemory()); System.out.println(Runtime.getRuntime().freeMemory()); System.out.println("--"); } } Of course, this might be JVM specific so it may well be worth still protecting against that. One simple option might be to count lookup misses and after a certain threshold switch back to a set limited by availableCharsets. Something like: public static Charset getCharset(String enc) throws UnsupportedEncodingException { Map cache = encodingToCharsetCache; if (cache != null) { Charset charset = cache.get(enc.toLowerCase()); if (charset == null) { throw new UnsupportedEncodingException( sm.getString("b2cConverter.unknownEncoding", enc)); } } try { return Charset.forName(enc); } catch (Exception ex) { int count = charsetMissCount.incrementAndGet(); if (count > THRESHOLD) { encodingToCharsetCache = populateEncodingCache(); } throw ex; } } I'm happy to rework the PR if that's a sensible suggestion? Even if it were opt-int, I think it would very nice to not have to pay the startup cost that the existing code incurs, especially if you use an embedded Tomcat and restart frequently during application development. [1] http://cr.openjdk.java.net/~sherman/6898310/webrev/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java.html -- 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 63237] Consider processing mbeans-descriptors.xml at compile time
https://bz.apache.org/bugzilla/show_bug.cgi?id=63237 --- Comment #2 from Phillip Webb --- @Remy > I have not tried to measure the time and resource costs of this parsing The only evidence I have currently are profiling results that appear to indicate the SAX parser taking a chunk of time during startup. I imagine for most standalone Tomcat users, this isn't really an issue. For users of embedded Tomcat, these little optimizations can really help. Anecdotally, I have implemented similar performance tweaks previously by replacing logback XML parsing with programmatic configuration [1]. [1] https://github.com/spring-projects/spring-boot/issues/1796 -- 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 63235] Defer potentially expensive Charset.availableCharsets() call
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 --- Comment #6 from Remy Maucherat --- I don't see the benefit as there's a clear downside and the complexity skyrockets. IMO you should focus on the String optimization since it doesn't have these issues. On my desktop computer, I measured the "all charset" loading code using System.nanoTime as taking 31105409ns, so that would be 31 ms. IMO, even as an optin and when using something where it is harmless like an IDE, I think users would be best served not wasting their time configuring such an option. On a server, I think these are CPU cycles reasonably well spent given the as-good-as-possible runtime performance and robustness. -- 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 63237] Consider processing mbeans-descriptors.xml at compile time
https://bz.apache.org/bugzilla/show_bug.cgi?id=63237 --- Comment #3 from Remy Maucherat --- Profilers often exaggerate the impact of some operations, so this has to be taken with an amount of caution. XML parsing is expensive for sure, but the descriptors are not too huge and MBeanUtils.createRegistry takes 83ms on my computer, which is not exactly the end of the world. The solution proposed [generating mbeans code :( ] is a bit annoying to say the least compared to the descriptors. On the plus side, I'm pretty sure regular mbeans perform better at runtime than model mbeans, this is not so innocent when cloud monitoring goes crazy and uses 100s of metrics. -- 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 63235] Defer potentially expensive Charset.availableCharsets() call
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 --- Comment #7 from Phillip Webb --- > I don't see the benefit as there's a clear downside and the > complexity skyrockets. IMO you should focus on the String > optimization since it doesn't have these issues. I'll continue with the String optimizations as well, but they only help with memory and don't give any startup performance improvements. > On my desktop computer, I measured the "all charset" loading code using > System.nanoTime as taking 31105409ns, so that would be 31 ms. For me, saving 31 ms on each restart is a very worthwhile gain and something I'd love to be able to opt in to. I even think that when running on the server this kind of optimization is something I would find useful in many situations. For example, if I have many internal services that I know will all be hit with only UTF-8, why wouldn't I want to enable the option? I'd love to be able to find a solution that helps this use-case without adding too much complexity. From the comments on #57808 and #58859 it doesn't appear that I'm alone. -- 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 63237] Consider processing mbeans-descriptors.xml at compile time
https://bz.apache.org/bugzilla/show_bug.cgi?id=63237 --- Comment #4 from Phillip Webb --- > MBeanUtils.createRegistry takes 83ms on my computer, which is not exactly the > end of the world That's a really interesting metric and quite a significant amount if we're talking about using embedded Tomcat in a serverless environment where runs are very short lived. > The solution proposed ... is a bit annoying to say the least compared to the > descriptors OK. I probably should have just stated the problem and not suggested a solution. I'm not too keen on generating code either. Let me rephrase. Would a (potentially hand crafted) code based alternative to `mbeans-descriptors.xml` be something you'd consider worthwhile? -- 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] ChristopherSchultz commented on issue #143: Apply deduplication to certain loaded and created Strings
ChristopherSchultz commented on issue #143: Apply deduplication to certain loaded and created Strings URL: https://github.com/apache/tomcat/pull/143#issuecomment-470265906 Good point: String.intern is already implemented, and it's already "weak". Less code, same result = better. 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 63235] Defer potentially expensive Charset.availableCharsets() call
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 --- Comment #8 from Mark Thomas --- Just to note that the performance issue with unknown charsets wasn't memory related. It was lock contention. Bug 51400 has the details. Can you provide some context around why 31ms is significant for the use case you are considering? It doesn't seem significant for the typical use cases we see. I do plan to look at the first option I described in comment #2. There are a few things on my TODO list so if you wanted to re-work your PR in that direction it would certainly help progress things. Another thing worth doing is testing with a more recent JVM to see if the original issue still exists. If it doesn't, we have a very simple solution available - remove the cache entirely. -- 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] philwebb commented on issue #142: Defer creation of encodingToCharsetCache
philwebb commented on issue #142: Defer creation of encodingToCharsetCache URL: https://github.com/apache/tomcat/pull/142#issuecomment-470280939 I've pushed an update following the discussion on https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 @rmaucher > If there is a lookup with Charset.forName, then would the cache be used at all Correct. The updated code relies on the [internal cache](https://github.com/openjdk-mirror/jdk7u-jdk/blob/f4d80957e89a19a29bb9f9807d2a28351ed7f7df/src/share/classes/java/nio/charset/Charset.java#L465-L498) that the `Charset` class uses. > I don't understand this sort of Windows style "startup time" optimization, where you hide stuff behind making running actual application code slower I don't know what you mean by "Windows style startup time optimization". Why would the actual actual application code now be slower? 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 63235] Defer potentially expensive Charset.availableCharsets() call
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 --- Comment #9 from Phillip Webb --- > Can you provide some context around why 31ms is significant for the use > case you are considering? It doesn't seem significant for the typical use > cases we see. Spring Boot uses Embedded Tomcat as it's default servlet container and startup time has been quite a focus in recent months. As much as possible we want developers to be able to restart their applications quickly during development time. We're also seeing a lot of interest in using Spring Boot in FaaS environments. These are quite different to traditional deployments as applications are only started on demand, and are closed very quickly. > I do plan to look at the first option I described in comment #2. There are a > few things > on my TODO list so if you wanted to re-work your PR in that direction it > would certainly > help progress things. I'll take another look. I made one change but I was missing the context of #51400. Looking at the Java 8 source code [1], I'd say that's still an issue. [1] https://github.com/openjdk-mirror/jdk/blame/adea42765ae4e7117c3f0e2d618d5e6aed44ced2/src/share/classes/sun/nio/cs/FastCharsetProvider.java#L131-L135 -- 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] philwebb commented on issue #142: Defer creation of encodingToCharsetCache
philwebb commented on issue #142: Defer creation of encodingToCharsetCache URL: https://github.com/apache/tomcat/pull/142#issuecomment-470317822 I've pushed another update now that I know about https://bz.apache.org/bugzilla/show_bug.cgi?id=51400 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 63235] Defer potentially expensive Charset.availableCharsets() call
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235 --- Comment #10 from Phillip Webb --- @Mark I've updated the PR based on your comments. There is now a cache for concurrent access as well as protection against DoS attacks. I've also tried to add some tests. The list of common charsets and the DoS threshold will no doubt need refining. If you want me to update it again with an option so that this is opt-in rather than always on please let me know (and point me to an example of how you do this kind of thing). -- 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 63210] Tomcat failing to shutdown if EvictionTimer thread is running
https://bz.apache.org/bugzilla/show_bug.cgi?id=63210 --- Comment #15 from k...@gameldar.com --- (In reply to Mark Thomas from comment #14) > Improved fix applied (fixed versions as before). I've built and tested with both the replication case and our use case with a custom DataSource factory and they are both working. Thanks! -- 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
[GUMP@vmgump-vm3]: Project tomcat-tc7.0.x (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 has an issue affecting its community integration. This issue affects 4 projects, and has been outstanding for 5 runs. 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 : Tomcat 7.x, a web server implementing Java Servlet 3.0, ... - tomcat-tc7.0.x-test-apr : Tomcat 7.x, a web server implementing Java Servlet 3.0, ... - tomcat-tc7.0.x-test-bio : Tomcat 7.x, a web server implementing Java Servlet 3.0, ... - tomcat-tc7.0.x-test-nio : Tomcat 7.x, a web server implementing Java Servlet 3.0, ... Full details are available at: http://vmgump-vm3.apache.org/tomcat-7.0.x/tomcat-tc7.0.x/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 junit exists, no need to add for property junit.jar. -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- Failed to extract fallback artifacts from Gump Repository The following work was performed: http://vmgump-vm3.apache.org/tomcat-7.0.x/tomcat-tc7.0.x/gump_work/build_tomcat-7.0.x_tomcat-tc7.0.x.html Work Name: build_tomcat-7.0.x_tomcat-tc7.0.x (Type: Build) Work ended in a state of : Failed Elapsed: 12 secs Command Line: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only -Dsun.zip.disableMemoryMapping=true 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 -Dtomcat-dbcp.home=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.7.3a-201803300640/ecj-4.7.3a.jar -Dbase.path=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-build-libs -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/target/commons-daemon-1.1.1-SNAPSHOT.jar -Dtomcat-dbcp-src.jar=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-src.jar -Dcommons-pool.home=/srv/gump/public/workspace/commons-pool-1.x -Dcommons-dbcp.home=/srv/gump/public/workspace/commons-dbcp-1.x -Dtomcat-dbcp.jar=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-20190307.jar [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/classes:/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/junit/target/junit-4.13-SNAPSHOT.jar:/srv/gump/packages/eclipse/plugins/R-4.7.3a-201803300640/ecj-4.7.3a.jar:/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-20190307.jar:/srv/gump/public/workspace/apache-commons/daemon/target/commons-daemon-1.1.1-SNAPSHOT.jar - proxyflags: setproxy: testexist: [echo] Testing for /srv/gump/public/workspace/commons-dbcp-1.x/build.xml downloadgz-2: testexist: [echo] Testing for /srv/gump/packages/eclipse/plugins/R-4.7.3a-201803300640/ecj-4.7.3a.jar downloadfile-2: build-deps: build-prepare: [delete] Deleting directory /srv/gump/public/workspace/tomcat-7.0.x/output/build/temp [mkdir] Created dir: /srv/gump/public/workspace/tomcat-7.0.x/output/build/temp build-manifests: build-tomcat-dbcp: compile-prepare: download-validate: validate: compile-java6: [javac] Compiling 1324 source files to /srv/gump/public/workspace/tomcat-7.0.x/output/classes [javac] /srv/gump/public/workspace/tomcat-7.0.x/java/javax/el/ResourceBundleELResolver.java:109: warning: [unchecked] getFeatureDescriptors(ELContext,Object) in ResourceBundleELResolver overrides getFeatureDescriptors(ELContext,Object) in ELResolver [javac] public Iterator getFeatureDescriptors( [javac] ^ [javac] return type requires unchecked conversion from Iterator to Iterator [javac] /srv/gump/public/workspace/tomcat-7.0.x/java/org/apache/catalina/connector/Request.java:2879: error: cannot find symbol [javac]
[GitHub] [tomcat] philwebb commented on issue #143: Apply deduplication to certain loaded and created Strings
philwebb commented on issue #143: Apply deduplication to certain loaded and created Strings URL: https://github.com/apache/tomcat/pull/143#issuecomment-470381178 I've pushed an update that uses `String.intern` for those two places. With this change 2192 duplicates are reduced to 300 and I'm not seeing any difference in startup time. 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] rmannibucau commented on issue #143: Apply deduplication to certain loaded and created Strings
rmannibucau commented on issue #143: Apply deduplication to certain loaded and created Strings URL: https://github.com/apache/tomcat/pull/143#issuecomment-470392703 Is generating a java class at build time instead of reading the xml possible? Then a preregistration in a registry would enable to bypass a lot of xml parsing and reflection which should give a real boost. 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 With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org