[Bug 56390] Tomcat keeps jar files in /WEB-INF/lib opened and app cannot be fully undeployed
https://issues.apache.org/bugzilla/show_bug.cgi?id=56390 --- Comment #10 from Dennis Lundberg --- We are seeing this issue as well in Tomcat 6.0.35 on Windows 7. Is there any chance of a back-port to Tomcat 6 or 7 for this fix? -- 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
mod_jk: connection_pool_timeout vs. connection_ping_interval
Hi, this is a maybe esoteric question, but I would like to understand the behavior of "mod_jk" when using both "connection_pool_timeout" and "connection_ping_interval". My setup is Apache-2.4.10, mod_jk-1.2.41-dev(r1621292) and Tomcat 7.042 (could be newer, I know). Tomcat "server.xml" has: workers.properties has: worker.cb2tpl.prepost_timeout=15000 worker.cb2tpl.connect_timeout=15000 worker.cb2tpl.ping_timeout=15000 worker.cb2tpl.ping_mode=A worker.cb2tpl.connection_ping_interval=180 worker.cb2tpl.connection_pool_timeout=600 So, I was [naively] assuming that established idle backend connections would be closed after 10+ minutes. To my surprise, nothing happened. I opened 6 backend connections and they stayed for that for hours. So I started looking at the code. First thing I found was the code in "jk_ajp_common.c:3334-3341" will basically disable the connection retiring if the number of active backend connections is less than "connection_pool_minsize" (13 in my case). Is this correct? Makes actually some sense, but came unexpected. So, as a n experiment I took out the break in line 3340 and redid the experiment. Still nothing happened after considerable time. Then I looked at the code handling the worker keep alive (3346-3378). So, if I understand it right, this will trigger after a few maintenance cycles when last_accessed gets larger than the connection ping interval. Now my question is, will performing the connection ping test reset the connection timeout on the tomcat side? If yes, this would explain the observed behavior: the connector connectionTimeout will never trigger if it is larger than (connection_ping_interval + maintain_time). Actually, I think it will only *reliably* trigger if smaller than connection_ping_interval. Experiments seem to confirm this. So, basically three questions: a) are my observations correct? b) if yes, is this the desired behavior? c1) if if yes, what is the recommendation on sane values connection_pool_timeout and connection_ping_interval? c2) if not, what is the desired behavior? Cheers Martin -- -- Martin Knoblauch email: k n o b i AT knobisoft DOT de www: http://www.knobisoft.de
svn commit: r1621315 - in /tomcat/tc8.0.x/tags/TOMCAT_8_0_12: ./ build.properties.default
Author: markt Date: Fri Aug 29 14:38:08 2014 New Revision: 1621315 URL: http://svn.apache.org/r1621315 Log: Tag 8.0.12 Added: tomcat/tc8.0.x/tags/TOMCAT_8_0_12/ - copied from r1621313, tomcat/trunk/ Modified: tomcat/tc8.0.x/tags/TOMCAT_8_0_12/build.properties.default Modified: tomcat/tc8.0.x/tags/TOMCAT_8_0_12/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/tags/TOMCAT_8_0_12/build.properties.default?rev=1621315&r1=1621313&r2=1621315&view=diff == --- tomcat/tc8.0.x/tags/TOMCAT_8_0_12/build.properties.default (original) +++ tomcat/tc8.0.x/tags/TOMCAT_8_0_12/build.properties.default Fri Aug 29 14:38:08 2014 @@ -27,7 +27,7 @@ version.major=8 version.minor=0 version.build=12 version.patch=0 -version.suffix=-dev +version.suffix= # - Build control flags - # Note enabling validation uses Checkstyle which is LGPL licensed - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r6311 - /release/tomcat/tomcat-8/v8.0.9/
Author: markt Date: Fri Aug 29 14:39:09 2014 New Revision: 6311 Log: Drop 8.0.9 from the mirrors now 8.0.11 is released Removed: release/tomcat/tomcat-8/v8.0.9/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: mod_jk: connection_pool_timeout vs. connection_ping_interval
Good findings! See below. Am 29.08.2014 um 15:12 schrieb Martin Knoblauch: Hi, this is a maybe esoteric question, but I would like to understand the behavior of "mod_jk" when using both "connection_pool_timeout" and "connection_ping_interval". My setup is Apache-2.4.10, mod_jk-1.2.41-dev(r1621292) and Tomcat 7.042 (could be newer, I know). Tomcat "server.xml" has: workers.properties has: worker.cb2tpl.prepost_timeout=15000 worker.cb2tpl.connect_timeout=15000 worker.cb2tpl.ping_timeout=15000 worker.cb2tpl.ping_mode=A worker.cb2tpl.connection_ping_interval=180 worker.cb2tpl.connection_pool_timeout=600 So, I was [naively] assuming that established idle backend connections would be closed after 10+ minutes. To my surprise, nothing happened. I opened 6 backend connections and they stayed for that for hours. So I started looking at the code. First thing I found was the code in "jk_ajp_common.c:3334-3341" will basically disable the connection retiring if the number of active backend connections is less than "connection_pool_minsize" (13 in my case). Is this correct? Makes actually some sense, but came unexpected. The best description probably can be found on http://tomcat.apache.org/connectors-doc/generic_howto/timeouts.html#Connection%20Pools%20and%20Idle%20Timeouts which I wrote a couple of years ago. - yes, "connection_pool_minsize" is the minimum number of connections to which mod_jk will shrink the pool. If you want to close as many connections as possible set to "0". - pool shrinking is done in the internal maintenance method. Until 1.2.26 that method only ran when a request was being processed. Since connection pools are per web server process, it could well happen, that some forked processes didn't work on a request for a long time and their connections were then kept open even much longer than connection_pool_timeout. - starting with 1.2.27 there's a separate optional watchdog thread, that you can and should activate with JkWatchdogInterval, see http://tomcat.apache.org/connectors-doc/reference/apache.html. - all this works even without doing cping on idle connections. - again starting with 1.2.27 there's a new feature that will check idle connections from time to time, whether they still work. It can be seen as an addition to checking at the moment a request comes in, because if you check in advance and find hanging or buggy connections, you save some latency and error handling for real requests. This feature is activated by setting ping_mode to "A" or at least "I" and can be controlled by ping_timeout (how long to wait for a cpong response) and connection_ping_interval. If the feature is activated, connections which are to fresh for connection_pool_timeout but already longer idle than the connection_ping_interval, are checked by a cping/cpong whether they still work (and close if not). This check will update the last access timer though, so connections checked with cping interval check will typicaly never be closed due to connection_pool_timeout (which I just realized right now). So, as a n experiment I took out the break in line 3340 and redid the experiment. Still nothing happened after considerable time. Maybe the connections you observed belonged to processes that didn't have to handle requests and the watchdg thrad was off as it is by default. Then I looked at the code handling the worker keep alive (3346-3378). So, if I understand it right, this will trigger after a few maintenance cycles when last_accessed gets larger than the connection ping interval. Now my question is, will performing the connection ping test reset the connection timeout on the tomcat side? I had a quick look at least at Tomcat 7 code for the BIO AJP connector, the default for TC 7, and yes: CPING is a normal first message and it will reset the connectionTimeout timer. If yes, this would explain the observed behavior: the connector connectionTimeout will never trigger if it is larger than (connection_ping_interval + maintain_time). Actually, I think it will only *reliably* trigger if smaller than connection_ping_interval. Experiments seem to confirm this. Agreed, currently you need to choose between one of the two features "interval cping" or "pool timeout". So, basically three questions: a) are my observations correct? Yes with some additions above. b) if yes, is this the desired behavior? I'd say "no". Interval cping was added much later and we didn't probably think about its implications on the keep-alive status and timeout of the connection. On the mod_jk side fixing this would be trivial, by not updating last_access after the cping in the ajp_maintain method. On the Tomcat side we would need to adjust the socket timeout while waiting for the first packet of the next request a bit more dynamically. Likely possible with a few lines of code. c1) if if yes, what is the recommendation on sane values connection_pool_timeout and conne
svn commit: r6312 [1/2] - in /dev/tomcat/tomcat-8/v8.0.12: ./ bin/ bin/embed/ bin/extras/ src/
Author: markt Date: Fri Aug 29 15:13:16 2014 New Revision: 6312 Log: Upload 8.0.12 for a release vote Added: dev/tomcat/tomcat-8/v8.0.12/ dev/tomcat/tomcat-8/v8.0.12/KEYS (with props) dev/tomcat/tomcat-8/v8.0.12/README.html (with props) dev/tomcat/tomcat-8/v8.0.12/RELEASE-NOTES dev/tomcat/tomcat-8/v8.0.12/bin/ dev/tomcat/tomcat-8/v8.0.12/bin/README.html (with props) dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-deployer.tar.gz (with props) dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-deployer.tar.gz.asc dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-deployer.tar.gz.md5 dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-deployer.zip (with props) dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-deployer.zip.asc dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-deployer.zip.md5 dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-fulldocs.tar.gz (with props) dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-fulldocs.tar.gz.asc dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-fulldocs.tar.gz.md5 dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-windows-i64.zip (with props) dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-windows-i64.zip.asc dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-windows-i64.zip.md5 dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-windows-x64.zip (with props) dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-windows-x64.zip.asc dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-windows-x64.zip.md5 dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-windows-x86.zip (with props) dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-windows-x86.zip.asc dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12-windows-x86.zip.md5 dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12.exe (with props) dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12.exe.asc dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12.exe.md5 dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12.tar.gz (with props) dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12.tar.gz.asc dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12.tar.gz.md5 dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12.zip (with props) dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12.zip.asc dev/tomcat/tomcat-8/v8.0.12/bin/apache-tomcat-8.0.12.zip.md5 dev/tomcat/tomcat-8/v8.0.12/bin/embed/ dev/tomcat/tomcat-8/v8.0.12/bin/embed/apache-tomcat-8.0.12-embed.tar.gz (with props) dev/tomcat/tomcat-8/v8.0.12/bin/embed/apache-tomcat-8.0.12-embed.tar.gz.asc dev/tomcat/tomcat-8/v8.0.12/bin/embed/apache-tomcat-8.0.12-embed.tar.gz.md5 dev/tomcat/tomcat-8/v8.0.12/bin/embed/apache-tomcat-8.0.12-embed.zip (with props) dev/tomcat/tomcat-8/v8.0.12/bin/embed/apache-tomcat-8.0.12-embed.zip.asc dev/tomcat/tomcat-8/v8.0.12/bin/embed/apache-tomcat-8.0.12-embed.zip.md5 dev/tomcat/tomcat-8/v8.0.12/bin/extras/ dev/tomcat/tomcat-8/v8.0.12/bin/extras/catalina-jmx-remote.jar (with props) dev/tomcat/tomcat-8/v8.0.12/bin/extras/catalina-jmx-remote.jar.asc dev/tomcat/tomcat-8/v8.0.12/bin/extras/catalina-jmx-remote.jar.md5 dev/tomcat/tomcat-8/v8.0.12/bin/extras/catalina-ws.jar (with props) dev/tomcat/tomcat-8/v8.0.12/bin/extras/catalina-ws.jar.asc dev/tomcat/tomcat-8/v8.0.12/bin/extras/catalina-ws.jar.md5 dev/tomcat/tomcat-8/v8.0.12/bin/extras/tomcat-juli-adapters.jar (with props) dev/tomcat/tomcat-8/v8.0.12/bin/extras/tomcat-juli-adapters.jar.asc dev/tomcat/tomcat-8/v8.0.12/bin/extras/tomcat-juli-adapters.jar.md5 dev/tomcat/tomcat-8/v8.0.12/bin/extras/tomcat-juli.jar (with props) dev/tomcat/tomcat-8/v8.0.12/bin/extras/tomcat-juli.jar.asc dev/tomcat/tomcat-8/v8.0.12/bin/extras/tomcat-juli.jar.md5 dev/tomcat/tomcat-8/v8.0.12/src/ dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.tar.gz (with props) dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.tar.gz.asc dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.tar.gz.md5 dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip (with props) dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip.asc dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip.md5 Added: dev/tomcat/tomcat-8/v8.0.12/KEYS == --- dev/tomcat/tomcat-8/v8.0.12/KEYS (added) +++ dev/tomcat/tomcat-8/v8.0.12/KEYS Fri Aug 29 15:13:16 2014 @@ -0,0 +1,616 @@ +This file contains the PGP&GPG keys of various Apache developers. +Please don't use them for email unless you have to. Their main +purpose is code signing. + +Apache users: pgp < KEYS +Apache developers: +(pgpk -ll && pgpk -xa ) >> this file. + or +(gpg --fingerprint --list-sigs + && gpg --armor --export ) >> this file. +
svn commit: r6312 [2/2] - in /dev/tomcat/tomcat-8/v8.0.12: ./ bin/ bin/embed/ bin/extras/ src/
Added: dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.tar.gz.md5 == --- dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.tar.gz.md5 (added) +++ dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.tar.gz.md5 Fri Aug 29 15:13:16 2014 @@ -0,0 +1 @@ +c03ed165605937f7758f1b60f4da0510 *apache-tomcat-8.0.12-src.tar.gz \ No newline at end of file Added: dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip == Binary file - no diff available. Propchange: dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip -- svn:mime-type = application/octet-stream Added: dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip.asc == --- dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip.asc (added) +++ dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip.asc Fri Aug 29 15:13:16 2014 @@ -0,0 +1,17 @@ +-BEGIN PGP SIGNATURE- +Version: GnuPG v1.4.9 (MingW32) + +iQIcBAABAgAGBQJUAJOKAAoJEBDAHFovYFnnEw8QAOna1ofo20BQ2P4C/BI9r8US +FmRLwvTC0g14T9IQxlagIn9ZdP7M1LrVtYpShqp9fCV0MsuaY525YzcArlpjMkVu +M17LPt+kNC5f1x/W6bD2UMm1gP/Ns/+vv1F7IVwgtkmRHGSxf1fLx5atULt4n89U +Kl1sTmmEqjDa7vC4jrQkXMvaxFAJ9LQow/pLADMKYRm2/3ht/xwPinKDpzcL+cic +eNKnBxwHZW6Qp9gcRduHQTjb5idCG4Y5/LZw3iCBCcJTzfZXWoAQkc+BvHEDpBRK +v9H54KFhuS5bM3jnIggdUm4jUmpzyV9zU8Vjmi49+x+QMgnqiBCh2z3L0gcMPubt +UQHWQz+VKQy7lMtkFWOkpK3Dy95I5umi4B3C0gZtYernsY3M7e77bg8NXGC101gZ +YoAEx9nHtpIvdvi0ylW0KUiXgyJSMnec0R0ysLBeXkJ5IEexklucu+cTOiKs5Vxr +ivAO7zYLP7JusOTeY7BByII9m85JBM5Exn5O3BDkX/+pDccooPW/2y1J0Aw+m4q5 +mTSKTyHCgaLZLzkOeWMeSqlLK77CfGXR4BNVHWDpVQPK938HcK2nQsFfcdzetRUL +eFsbEhni8JHPMGgLmIrqbvM1HXDEAeJSC0ARLm7mRds2Aa+qjP9oMoC4glgr4vOt +nvqCFxlf6l+08TvAvU8p +=ROmK +-END PGP SIGNATURE- Added: dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip.md5 == --- dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip.md5 (added) +++ dev/tomcat/tomcat-8/v8.0.12/src/apache-tomcat-8.0.12-src.zip.md5 Fri Aug 29 15:13:16 2014 @@ -0,0 +1 @@ +4aed53cdc4d800d8d4b865356c92f347 *apache-tomcat-8.0.12-src.zip \ No newline at end of file - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1621365 - /tomcat/trunk/webapps/docs/changelog.xml
Author: kkolinko Date: Fri Aug 29 19:13:12 2014 New Revision: 1621365 URL: http://svn.apache.org/r1621365 Log: Mention the attribute name that configures the swallow limit added in 8.0.9. Modified: tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1621365&r1=1621364&r2=1621365&view=diff == --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Fri Aug 29 19:13:12 2014 @@ -686,7 +686,8 @@ Add a new limit, defaulting to 2MB, for the amount of data Tomcat will -swallow for an aborted upload. (markt) +swallow for an aborted upload. The limit is configurable by +maxSwallowSize attribute of an HTTP connector. (markt) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1621366 - /tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
Author: kkolinko Date: Fri Aug 29 19:16:52 2014 New Revision: 1621366 URL: http://svn.apache.org/r1621366 Log: Mention the attribute name that configures the swallow limit added in 7.0.55. Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1621366&r1=1621365&r2=1621366&view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Fri Aug 29 19:16:52 2014 @@ -327,7 +327,8 @@ Add a new limit, defaulting to 2MB, for the amount of data Tomcat will -swallow for an aborted upload. (markt) +swallow for an aborted upload. The limit is configurable by +maxSwallowSize attribute of an HTTP connector. (markt) Allow to configure maxSwallowSize attribute of an HTTP - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[jira] [Commented] (MTOMCAT-267) Support 'skip' parameter for Catalina-based goals (deploy)
[ https://issues.apache.org/jira/browse/MTOMCAT-267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14115761#comment-14115761 ] Matej Spiller-Muys commented on MTOMCAT-267: Please merge this fix for 2.3 release. This is crucial for overlay multi module deploy using command line. No need for deploy profiles. > Support 'skip' parameter for Catalina-based goals (deploy) > -- > > Key: MTOMCAT-267 > URL: https://issues.apache.org/jira/browse/MTOMCAT-267 > Project: Apache Tomcat Maven Plugin > Issue Type: Improvement > Components: tomcat7 >Affects Versions: 2.2 >Reporter: Andrey Utkin >Assignee: Olivier Lamy (*$^¨%`£) > Attachments: MTOMCAT-267.patch > > > Add support for 'skip' configuration option for goals like 'deploy', > 'redeploy' and so on. > Please see patch attached. -- This message was sent by Atlassian JIRA (v6.2#6252) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org