[Tomcat Wiki] Update of "SummerOfCode2010" by JeanFrede ricClere
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification. The "SummerOfCode2010" page has been changed by JeanFredericClere. http://wiki.apache.org/tomcat/SummerOfCode2010?action=diff&rev1=3&rev2=4 -- = Google Summer of Code 2010 = - == Important Notes == - The application process has not yet started. This page is to record possible projects assuming the ASF and the Tomcat project does participate in this year's summer of code. The actual list of projects will be determined as + The application process has not yet started. This page is to record possible projects assuming the ASF and the Tomcat project does participate in this year's summer of code. The actual list of projects will be determined as the application process progresses. - the application process progresses. Anyone is free to add ideas to this list. If you are not a Tomcat committer please do not add a committer as a potential mentor for a project unless they have agreed to do so. == Ideas == + ||Title ||Mentor ||JIRA||Description || + ||JMX ||markt ||[[https://issues.apache.org/jira/browse/COMDEV-23|COMDEV-23]]||Update the JMX descriptors to more accurately reflect the properties and methods of the underlying objects, taking particular care about which attributes should be read-only and which read-write. Then add additional functionality as necessary to enable a complete Tomcat instance to be configured entirely via JMX (ie start with a Server with no config and create everything via JMX). || + ||Security docs ||markt ||[[https://issues.apache.org/jira/browse/COMDEV-23|COMDEV-24]]||Update the security pages etc to include svn revisions for each fix, update the release notes to include the CVE reference with the fix, update the svn logs to include the CVE reference. This will require a lot of cross-checking to ensure that the correct CVEs and svn references are added, particularly for the older vulnerabilities. This would include the 5.5.x, 6.0.x and 7.0.x code-bases. || + ||JSR196 ||markt ||[[https://issues.apache.org/jira/browse/COMDEV-23|COMDEV-25]]||Provide a [[http://jcp.org/en/jsr/detail?id=196|JSR196]] implementation || + ||SPDY ||jfclere ||[[https://issues.apache.org/jira/browse/COMDEV-23|COMDEV-26]]||Create Connector that supports the SPDY protocol (See http://dev.chromium.org/spdy/spdy-whitepaper) || - ||Title||Mentor||Description|| - ||JMX||markt||Update the JMX descriptors to more accurately reflect the properties and methods of the underlying objects, taking particular care about which attributes should be read-only and which read-write. Then add additional functionality as necessary to enable a complete Tomcat instance to be configured entirely via JMX (ie start with a Server with no config and create everything via JMX).|| - ||Security docs||markt||Update the security pages etc to include svn revisions for each fix, update the release notes to include the CVE reference with the fix, update the svn logs to include the CVE reference. This will require a lot of cross-checking to ensure that the correct CVEs and svn references are added, particularly for the older vulnerabilities. This would include the 5.5.x, 6.0.x and 7.0.x code-bases.|| - ||JSR196||markt||Provide a [[http://jcp.org/en/jsr/detail?id=196|JSR196]] implementation|| - ||SPDY||jfclere||Create Connector that supports the SPDY protocol (See [[http://dev.chromium.org/spdy/spdy-whitepaper]]) || - - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [Tomcat Wiki] Update of "SummerOfCode2010" by JeanFredericClere
The JIRA are needed just for http://tinyurl.com/asfgsoc Cheers Jean-Frederic - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: GSOC 2010
Hi All, I am interested in working on the JMX related project idea. I am in the process of going through the documentation and sources relating to JMX in Tomcat. Excerpt of the idea mentions that "Tomcat instance to be configured entirely via JMX" is the goal of project. Since the JMX infrastructure is already present, are there any specific areas that you have already identified as lacking support in order to achieve above goal? I noticed in another thread that Apache Pivot folks are also interested in providing an administrative front end to Tomcat perhaps using JMX. Regards, Chamith
svn commit: r922223 - /tomcat/trunk/bin/catalina.bat
Author: mturk Date: Fri Mar 12 11:38:43 2010 New Revision: 93 URL: http://svn.apache.org/viewvc?rev=93&view=rev Log: Suppress anoying Terminate batch job prompt when hitting CTRL+C. Note however that it leaves the file named yes in the bin directory Modified: tomcat/trunk/bin/catalina.bat Modified: tomcat/trunk/bin/catalina.bat URL: http://svn.apache.org/viewvc/tomcat/trunk/bin/catalina.bat?rev=93&r1=92&r2=93&view=diff == --- tomcat/trunk/bin/catalina.bat (original) +++ tomcat/trunk/bin/catalina.bat Fri Mar 12 11:38:43 2010 @@ -78,6 +78,17 @@ rem rem $Id$ rem --- +rem Suppress Terminate batch job on CTRL+C +if not ""%1"" == ""run"" goto mainEntry +if exist "%~dp0run" goto mainEntry +echo Y >"%~dp0run" +echo Y >"%~dp0yes" +call "%~dpnx0" %* <"%~dp0yes" +rem Not actually needed +exit /B 1 +:mainEntry +del /Q "%~dp0run" >NUL 2>&1 + rem Guess CATALINA_HOME if not defined set "CURRENT_DIR=%cd%" if not "%CATALINA_HOME%" == "" goto gotHome - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r922228 - /tomcat/trunk/bin/catalina.bat
Author: mturk Date: Fri Mar 12 12:13:45 2010 New Revision: 98 URL: http://svn.apache.org/viewvc?rev=98&view=rev Log: Use real exit value if shutdown via stop Modified: tomcat/trunk/bin/catalina.bat Modified: tomcat/trunk/bin/catalina.bat URL: http://svn.apache.org/viewvc/tomcat/trunk/bin/catalina.bat?rev=98&r1=97&r2=98&view=diff == --- tomcat/trunk/bin/catalina.bat (original) +++ tomcat/trunk/bin/catalina.bat Fri Mar 12 12:13:45 2010 @@ -83,9 +83,11 @@ if not ""%1"" == ""run"" goto mainEntry if exist "%~dp0run" goto mainEntry echo Y >"%~dp0run" echo Y >"%~dp0yes" -call "%~dpnx0" %* <"%~dp0yes" -rem Not actually needed -exit /B 1 +call "%~f0" %* <"%~dp0yes" +rem Use provided errorlevel +set RETVAL=%ERRORLEVEL% +del /Q "%~dp0yes" >NUL 2>&1 +exit /B %RETVAL% :mainEntry del /Q "%~dp0run" >NUL 2>&1 - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: GSOC 2010
On 12/03/2010 11:32, buddhika chamith wrote: > Hi All, > > I am interested in working on the JMX related project idea. Great. > I am in the > process of going through the documentation and sources relating to JMX in > Tomcat. Excerpt of the idea mentions that "Tomcat instance to be configured > entirely via JMX" is the goal of project. Since the JMX infrastructure is > already present, are there any specific areas that you have already > identified as lacking support in order to achieve above goal? The createStandardService method declared for the MBeanFactory doesn't exist. That pretty much kills any attempt to do this stone dead before you start. Looks like I did that in error almost a year ago. I'll add that method and the other methods removed at the time back. With those in place it is a matter of testing to see what works and what doesn't. The problems are likely to be a combination of the following: - JMX getters/setters not aligned with changes to underlying objects - attributes exposed as read/write that should be read-only or need more work to make write operations safe - new objects not exposed via JMX Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: GSOC 2010
On 12/03/2010 12:13, Mark Thomas wrote: > On 12/03/2010 11:32, buddhika chamith wrote: >> Hi All, >> >> I am interested in working on the JMX related project idea. > Great. > >> I am in the >> process of going through the documentation and sources relating to JMX in >> Tomcat. Excerpt of the idea mentions that "Tomcat instance to be configured >> entirely via JMX" is the goal of project. Since the JMX infrastructure is >> already present, are there any specific areas that you have already >> identified as lacking support in order to achieve above goal? > > The createStandardService method declared for the MBeanFactory doesn't > exist. That pretty much kills any attempt to do this stone dead before > you start. > > Looks like I did that in error almost a year ago. I'll add that method > and the other methods removed at the time back. Looks like I spoke too soon. Thsoe changes were in http://svn.apache.org/viewvc?rev=778200&view=rev which as to get rid of ServerFactory. Step one of this project will almost certainly be to re-implement those methods without using the now deleted ServerFactory. Mark > With those in place it is a matter of testing to see what works and what > doesn't. The problems are likely to be a combination of the following: > - JMX getters/setters not aligned with changes to underlying objects > - attributes exposed as read/write that should be read-only or need more > work to make write operations safe > - new objects not exposed via JMX > > 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: GSOC 2010
Hi Mark, Thanks for the clarifications. I will look along in those lines that you mentioned. I will drop a mail to the list if I come up with any issue during the code run through. Chamith
DO NOT REPLY [Bug 48795] Tomcat tries to use cache when compilation failed
https://issues.apache.org/bugzilla/show_bug.cgi?id=48795 --- Comment #3 from apa...@scribeofthenile.com 2010-03-12 14:22:46 UTC --- Thanks for following up on this issue. Does the proposed patch also address the case when a JSP has compiled and cached successfully and is subsequently edited with some syntax error? In this situation Tomcat seems to not invalidate the cache. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r922273 - /tomcat/trunk/build.xml
Author: kkolinko Date: Fri Mar 12 14:28:46 2010 New Revision: 922273 URL: http://svn.apache.org/viewvc?rev=922273&view=rev Log: correct a comment Modified: tomcat/trunk/build.xml Modified: tomcat/trunk/build.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/build.xml?rev=922273&r1=922272&r2=922273&view=diff == --- tomcat/trunk/build.xml (original) +++ tomcat/trunk/build.xml Fri Mar 12 14:28:46 2010 @@ -1660,7 +1660,7 @@ Apache Tomcat ${version} native binaries - + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 48899] New: Guess URI charset should solve lot of problems
https://issues.apache.org/bugzilla/show_bug.cgi?id=48899 Summary: Guess URI charset should solve lot of problems Product: Tomcat 6 Version: unspecified Platform: All OS/Version: All Status: NEW Severity: enhancement Priority: P2 Component: Connectors AssignedTo: dev@tomcat.apache.org ReportedBy: mich...@wyraz.de Hi tomcat connector developers, tomcat's connectors have some options to either set the uri encoding to a certain charset or to use the body's encoding (set by request.setCharacterEncoding) to decode the uri (if none is set, iso-8859-1 is used). I found an article (+code) the demonstrates that the charset of data can easily guessed at http://glaforge.free.fr/wiki/index.php?wiki=GuessEncoding . Since the most common charsets for uri encoding are iso-8859-1 (since it's default for uri encoding) and utf-8 (because it's used for most multi language websites), the possible choices are very clear. So I'd suggest to add an option to the connectors to guess the used charset for decoding of uri parts. There are so many issues with uri decoding that would be solved that way (e.g. when the uri is decoded as utf-8 and a user types an umlaut into the address bar, the browser might encode it as iso-8859-1 and the app has no way to fix this). Regards, Michael. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- 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 commit: r922223 - /tomcat/trunk/bin/catalina.bat
In 12/03/2010, mt...@apache.org wrote: > Author: mturk > Date: Fri Mar 12 11:38:43 2010 > New Revision: 93 > > URL: http://svn.apache.org/viewvc?rev=93&view=rev > Log: > Suppress anoying Terminate batch job prompt when hitting CTRL+C. Note > however that it leaves the file named yes in the bin directory The process running Tomcat may not have write access to the bin dir. So either create a permanent file in the bin directory, or use a pipe: echo Y | call "%~f0" %* > Modified: > tomcat/trunk/bin/catalina.bat > > Modified: tomcat/trunk/bin/catalina.bat > URL: > http://svn.apache.org/viewvc/tomcat/trunk/bin/catalina.bat?rev=93&r1=92&r2=93&view=diff > > == > --- tomcat/trunk/bin/catalina.bat (original) > +++ tomcat/trunk/bin/catalina.bat Fri Mar 12 11:38:43 2010 > @@ -78,6 +78,17 @@ rem > rem $Id$ > rem > --- > > +rem Suppress Terminate batch job on CTRL+C > +if not ""%1"" == ""run"" goto mainEntry > +if exist "%~dp0run" goto mainEntry > +echo Y >"%~dp0run" > +echo Y >"%~dp0yes" > +call "%~dpnx0" %* <"%~dp0yes" > +rem Not actually needed > +exit /B 1 > +:mainEntry > +del /Q "%~dp0run" >NUL 2>&1 > + > rem Guess CATALINA_HOME if not defined > set "CURRENT_DIR=%cd%" > if not "%CATALINA_HOME%" == "" goto gotHome > > > > - > 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 commit: r922223 - /tomcat/trunk/bin/catalina.bat
On 03/12/2010 04:14 PM, sebb wrote: In 12/03/2010, mt...@apache.org wrote: Author: mturk Date: Fri Mar 12 11:38:43 2010 New Revision: 93 URL: http://svn.apache.org/viewvc?rev=93&view=rev Log: Suppress anoying Terminate batch job prompt when hitting CTRL+C. Note however that it leaves the file named yes in the bin directory The process running Tomcat may not have write access to the bin dir. Anyone secures the file access in Windows ;) So either create a permanent file in the bin directory, or use a pipe: echo Y | call "%~f0" %* That doesn't work cause it creates a separate process. I'll make the change to crate the auto response file in the %TEMP% directory Regards -- ^TM - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Tomcat and Apache question
This is best for both the Users lists for tomcat and httpd, but... On Mar 11, 2010, at 11:17 PM, westside wrote: > > Hi, > > I am completely new to Tomcat, and I'm trying to setup this module named > "mod_proxy_html module" I have just installed a product called JIRA and I > have it working with Tomcat 5.x but I don't think I can install that module > without Apache running on my machine. > > 1. Is Apache required or is just having Tomcat enough? You need Apache httpd. > 2. I hear Tomcat is java web server but Apache is a web server also, why > would I need to run both? Tomcat to run Java apps. > 3.Can you install mod_proxy_html module on a Windows machine without Apache Nope. > 4. Can Tomcat do everything Apache can do? Obviously not. > > I'm basically trying to run two applications (JIRA and Confluence) on port > 80 and use host headers. I come from the IIS world and I'm looking how to > mirror that functionality using JIRA and Tomcat. > > Any help appreciated. > > -ws > -- > View this message in context: > http://old.nabble.com/Tomcat-and-Apache-question-tp27873246p27873246.html > Sent from the Tomcat - Dev mailing list archive at Nabble.com. > > > - > 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
svn commit: r922300 - in /tomcat: tc5.5.x/trunk/STATUS.txt tc6.0.x/trunk/STATUS.txt
Author: kkolinko Date: Fri Mar 12 15:41:55 2010 New Revision: 922300 URL: http://svn.apache.org/viewvc?rev=922300&view=rev Log: proposal Modified: tomcat/tc5.5.x/trunk/STATUS.txt tomcat/tc6.0.x/trunk/STATUS.txt Modified: tomcat/tc5.5.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=922300&r1=922299&r2=922300&view=diff == --- tomcat/tc5.5.x/trunk/STATUS.txt (original) +++ tomcat/tc5.5.x/trunk/STATUS.txt Fri Mar 12 15:41:55 2010 @@ -56,6 +56,13 @@ PATCHES PROPOSED TO BACKPORT: +1: markt -1: + The same as above, but + - moves resolveClass() call outside the sync block + - does not access entry.loadedClass unless we are in a sync block + http://people.apache.org/~kkolinko/patches/2010-03-12_tc55_bug44041.patch + +1: kkolinko + -1: + * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=47878 Return 404's rather than a permanent 500 if a JSP is deleted Make sure first response port deletion is correct Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=922300&r1=922299&r2=922300&view=diff == --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Fri Mar 12 15:41:55 2010 @@ -195,3 +195,15 @@ PATCHES PROPOSED TO BACKPORT: http://svn.apache.org/viewvc?rev=922010&view=rev +1: markt -1: + +* Followup to BZ 44041/48694 patches + - moves resolveClass() call outside the sync block + - does not access entry.loadedClass unless we are in a sync block + This is proposed as a part of alternative BZ 44041 patch for TC 5.5 + FIXME: have not yet applied it to trunk + http://people.apache.org/~kkolinko/patches/2010-03-12_tc6_bug44041.patch + (svn diff -x -w variant of it, ignoring whitespace changes: + http://people.apache.org/~kkolinko/patches/2010-03-12_tc6_bug44041_x_w.patch + ) + +1: kkolinko + -1: - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r922301 - /tomcat/trunk/bin/catalina.bat
Author: mturk Date: Fri Mar 12 15:52:09 2010 New Revision: 922301 URL: http://svn.apache.org/viewvc?rev=922301&view=rev Log: Use TEMP environment for storing the autoresponse file, and make sure the file was created Modified: tomcat/trunk/bin/catalina.bat Modified: tomcat/trunk/bin/catalina.bat URL: http://svn.apache.org/viewvc/tomcat/trunk/bin/catalina.bat?rev=922301&r1=922300&r2=922301&view=diff == --- tomcat/trunk/bin/catalina.bat (original) +++ tomcat/trunk/bin/catalina.bat Fri Mar 12 15:52:09 2010 @@ -80,16 +80,18 @@ rem rem Suppress Terminate batch job on CTRL+C if not ""%1"" == ""run"" goto mainEntry -if exist "%~dp0run" goto mainEntry -echo Y >"%~dp0run" -echo Y >"%~dp0yes" -call "%~f0" %* <"%~dp0yes" +if ""%TEMP%"" == goto mainEntry +if exist "%TEMP%\%~nx0.run" goto mainEntry +echo Y>"%TEMP%\%~nx0.run" +if not exist "%TEMP%\%~nx0.run" goto mainEntry +echo Y>"%TEMP%\%~nx0.Y" +call "%~f0" %* <"%TEMP%\%~nx0.Y" rem Use provided errorlevel set RETVAL=%ERRORLEVEL% -del /Q "%~dp0yes" >NUL 2>&1 +del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1 exit /B %RETVAL% :mainEntry -del /Q "%~dp0run" >NUL 2>&1 +del /Q "%TEMP%\%~nx0.run" >NUL 2>&1 rem Guess CATALINA_HOME if not defined set "CURRENT_DIR=%cd%" - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r922300 - in /tomcat: tc5.5.x/trunk/STATUS.txt tc6.0.x/trunk/STATUS.txt
2010/3/12 : > Author: kkolinko > Date: Fri Mar 12 15:41:55 2010 > New Revision: 922300 > > URL: http://svn.apache.org/viewvc?rev=922300&view=rev > Log: > proposal > > Modified: > tomcat/tc5.5.x/trunk/STATUS.txt > tomcat/tc6.0.x/trunk/STATUS.txt > > Modified: tomcat/tc5.5.x/trunk/STATUS.txt > + The same as above, but > + - moves resolveClass() call outside the sync block > + - does not access entry.loadedClass unless we are in a sync block > + http://people.apache.org/~kkolinko/patches/2010-03-12_tc55_bug44041.patch > + +1: kkolinko > + -1: > + > > Modified: tomcat/tc6.0.x/trunk/STATUS.txt > + > +* Followup to BZ 44041/48694 patches > + - moves resolveClass() call outside the sync block > + - does not access entry.loadedClass unless we are in a sync block > + This is proposed as a part of alternative BZ 44041 patch for TC 5.5 > + FIXME: have not yet applied it to trunk > + http://people.apache.org/~kkolinko/patches/2010-03-12_tc6_bug44041.patch > + (svn diff -x -w variant of it, ignoring whitespace changes: > + > http://people.apache.org/~kkolinko/patches/2010-03-12_tc6_bug44041_x_w.patch > + ) > + +1: kkolinko > + -1: > My concern, leading to the above proposal, is that ClassLoader.resolveClass() should perform "Linking" of the class and JLS says that that can incur loading of the dependent classes [1], thus I think it could lead to a deadlock. That said, 1. I suspect that recent JVMs do linking lazily, so resolveClass() does not actually load the dependencies. But I want to prevent the possibility of a deadlock. 2. I think that in the loadClass(name,boolean) call the resolve argument is usually "false". That is because ClassLoader.loadClass(name) calls it with "false" value, and ClassLoader.loadClass(name, resolve) is itself a protected method. Unless there are calls with resolve=true, there is no difference in whether we do care about resolveClass() here. 3. I have some worry about whether ClassLoader.resolveClass() method is thread safe, as I see no explicit statement about it. JLS says that the class initialization is thread safe [2], but nothing explicit is said about linking, and nothing is added in the JavaDoc for resolveClass() method. My understanding is that at most times resolveClass() is called implicitly by JVM before initialization of the class takes place, so JVM takes care of synchronization somewhere, and it will be a JRE issue if it is not. Again, we will not hit it unless resolve=true in the loadClass() call. About the proposed change with "entry.loadedClass" in findClassInternal(): - The loadedClass field would need to be volatile to avoid broken double-checked locking pattern here, but the change that I am proposing also fixes it. Any comments? [1] http://java.sun.com/docs/books/jls/third_edition/html/execution.html#44487 ch.12.3 [2] http://java.sun.com/docs/books/jls/third_edition/html/execution.html#44557 ch.12.4 Best regards, Konstantin Kolinko - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Reusing instances
2010/3/11 Mladen Turk : > Second is to have application pools where one could > say: Serve WebAppX inside Default Application Pool > consisting of 1 ... N processes or use Custom Application > pool with some process limitation factors (memory, cpu usage, etc) > Note, that ServletContext.getContext(String) allows interaction between different web applications on the same server. That is when crossContext=true for the application. I wonder, how much will be the overhead from having several JVMs, each with its heap. I think that /work folder sharing is out of question. Most of concern here is with Jasper, but there can be also other files, and files written by applications. The /webapps folder sharing depends on whether autodeploy feature is enabled. Expanding deployed wars and deleting folders when undeploying must be done in a single thread. Otherwise there can be security issues. Best regards, Konstantin Kolinko - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Reusing instances
On 03/12/2010 05:54 PM, Konstantin Kolinko wrote: I think that /work folder sharing is out of question. Most of concern here is with Jasper, but there can be also other files, and files written by applications. That shouldn't be a problem if guarded with some global mutex. Other option is to have separate work dirs with child id suffix. The /webapps folder sharing depends on whether autodeploy feature is enabled. Expanding deployed wars and deleting folders when undeploying must be done in a single thread. Otherwise there can be security issues. Again with global mutex it should work on first served basis. Regards -- ^TM - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 48903] New: ClassLoader deadlock when compiling JSP pages in 6.0.26
https://issues.apache.org/bugzilla/show_bug.cgi?id=48903 Summary: ClassLoader deadlock when compiling JSP pages in 6.0.26 Product: Tomcat 6 Version: 6.0.26 Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: Catalina AssignedTo: dev@tomcat.apache.org ReportedBy: knst.koli...@gmail.com Created an attachment (id=25123) --> (https://issues.apache.org/bugzilla/attachment.cgi?id=25123) threads_20100313_0109.txt - thread dump Steps to reproduce: 1. Install TC 6.0.26 I am using Sun JRE 6u18 2. Download tomahawk-examples-1.1.8-bin.zip from http://myfaces.apache.org/tomahawk/download.html and copy myfaces-example-simple-1.1.8.war from the archive to the webapps folder of Tomcat 3. Start Tomcat and browse http://localhost:8080/myfaces-example-simple-1.1.8/ 4. Try to open several links (Sample 1, .. Filtered Stylesheet) at the same time. I am using Snap Links plugin for Firefox, http://snaplinks.mozdev.org/ 5. Several Tabs are opened in the browser to load the pages, but pages never load. 6. Using jvisualvm tool I can see that there is a deadlock in Tomcat. The thread dump is attached. Citing from the dump: Found one Java-level deadlock: = "http-8080-6": waiting to lock monitor 0x1731bafc (object 0x08189dd0, a org.apache.catalina.loader.WebappClassLoader), which is held by "http-8080-1" "http-8080-1": waiting to lock monitor 0x1731b88c (object 0x13bdb118, a java.lang.String), which is held by "http-8080-5" "http-8080-5": waiting to lock monitor 0x1731bafc (object 0x08189dd0, a org.apache.catalina.loader.WebappClassLoader), which is held by "http-8080-1" -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- 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
DO NOT REPLY [Bug 48903] ClassLoader deadlock when compiling JSP pages in 6.0.26
https://issues.apache.org/bugzilla/show_bug.cgi?id=48903 --- Comment #1 from Konstantin Kolinko 2010-03-12 22:33:19 UTC --- What is strange is that I cannot confirm that org.apache.catalina.loader.WebappClassLoader is held by "http-8080-1" -- that is not shown in the stacktrace of thread "http-8080-1". -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- 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 commit: r922300 - in /tomcat: tc5.5.x/trunk/STATUS.txt tc6.0.x/trunk/STATUS.txt
2010/3/12 Konstantin Kolinko : > 2010/3/12 : >> Author: kkolinko >> Date: Fri Mar 12 15:41:55 2010 >> New Revision: 922300 >> >> URL: http://svn.apache.org/viewvc?rev=922300&view=rev >> Log: >> proposal >> > > My concern, leading to the above proposal, is that > ClassLoader.resolveClass() should perform "Linking" of the class and > JLS says that that can incur loading of the dependent classes [1], > thus I think it could lead to a deadlock. > >From thread dump that I attached to https://issues.apache.org/bugzilla/show_bug.cgi?id=48903 1. It looks that it is ClassLoader.defineClass() call that performs linking and loading of related classes in Sun JRE 6u18 2. Certain methods e.g. ClassLoader.checkCerts(), require a lock on the whole ClassLoader instance. 3. I do not understand what holds a lock on the ClassLoader instance in "http-8080-1" thread. Can it be inside the native method (ClassLoader.defineClass1()) ?? 4. The above 2.+3. may mean that we need sync() on the classloader as a whole. That is, the sync(name.intern()) trick fails. More comments to the issue 48903 are welcome. Best regards, Konstantin Kolinko - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694 pmones...@gmail.com changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED | --- Comment #5 from pmones...@gmail.com 2010-03-13 01:29:56 UTC --- In fact the deadlock still exists in 6.0.26. Under certain conditions (well using jrebel) I get: Name: Thread-8 State: BLOCKED on java.lang.str...@1d6ebede owned by: Thread-10 Total blocked: 44 Total waited: 2 Stack trace: org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1395) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) Name: Thread-10 State: BLOCKED on org.apache.catalina.loader.webappclassloa...@646f72d4 owned by: Thread-8 Total blocked: 33 Total waited: 2 Stack trace: org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) At line 1395 replacing synchronized (name.intern()) { with synchronized (this) fixes the problem. The issue with doing synchronized (name.intern()) { in public Class loadClass(String name, boolean resolve) is that it turn this method calls (at least from what I could see) at line 1485 findClass(String name) AND public Class findClass(String name) at line 977 calls protected Class findClassInternal(String name) which syncs on name.intern() -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- 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
DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694 --- Comment #6 from Konstantin Kolinko 2010-03-13 01:33:47 UTC --- Do you have full stack traces for those threads (from a thread dump)? You can add them as an attachment. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- 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
DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694 --- Comment #7 from Konstantin Kolinko 2010-03-13 01:37:47 UTC --- And what is your configuration (JVM vendor and version), and do you use custom class loader, as *this* bug does, or you do not, and it is another bug (e.g. bug 48903)? -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- 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
DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694 --- Comment #8 from pmones...@gmail.com 2010-03-13 01:56:00 UTC --- Created an attachment (id=25124) --> (https://issues.apache.org/bugzilla/attachment.cgi?id=25124) Thread Dump -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- 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
DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694 --- Comment #9 from pmones...@gmail.com 2010-03-13 01:57:28 UTC --- java version "1.6.0_13" Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211) Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02-83, mixed mode) This is on a mac. No no custom classloader but this happens when I run Tomcat with JRebel (2 or 3). The relevant traces (from another run is as follow) Find also attached the ThreadDump Name: Thread-10 State: BLOCKED on java.lang.str...@9edcacb owned by: Thread-9 Total blocked: 28 Total waited: 1 Stack trace: org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1395) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:95) org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:122) org.hibernate.hql.ast.QueryTranslatorImpl$JavaConstantConverter.handleDotStructure(QueryTranslatorImpl.java:569) org.hibernate.hql.ast.QueryTranslatorImpl$JavaConstantConverter.visit(QueryTranslatorImpl.java:564) org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:40) org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41) org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41) org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41) org.hibernate.hql.ast.util.NodeTraverser.traverseDepthFirst(NodeTraverser.java:33) org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:254) org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157) org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111) org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77) org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56) org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72) org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133) org.hibernate.impl.SessionImpl.list(SessionImpl.java:1113) org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) AND Name: Thread-9 State: BLOCKED on org.apache.catalina.loader.webappclassloa...@1f302997 owned by: Thread-11 Total blocked: 34 Total waited: 2 Stack trace: org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:95) org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:122) org.hibernate.hql.ast.QueryTranslatorImpl$JavaConstantConverter.handleDotStructure(QueryTranslatorImpl.java:569) org.hibernate.hql.ast.QueryTranslatorImpl$JavaConstantConverter.visit(QueryTranslatorImpl.java:564) org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:40) org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41) org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41) org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41) org.hibernate.hql.ast.util.NodeTraverser.traverseDepthFirst(NodeTraverser.java:33) org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:254) org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157) org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111) org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77) org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56) org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72) org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133) org.hibernate.impl.SessionImpl.list(SessionImpl.java:1113) org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) (In reply to comment #8) > Created an attachment (id=25124) --> (https://issues.apache.org/bugzilla/attachment.cgi?id=25124) [details] > Thread Dump (In reply to comment #8) > Created an attachment (id=25124) --> (https://issues.apache.org/bugzilla/attachment.cgi?id=25124) [details] > Thread Dump -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- 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
DO NOT REPLY [Bug 48903] ClassLoader deadlock when compiling JSP pages in 6.0.26
https://issues.apache.org/bugzilla/show_bug.cgi?id=48903 Konstantin Kolinko changed: What|Removed |Added Severity|normal |critical --- Comment #2 from Konstantin Kolinko 2010-03-13 03:07:26 UTC --- Digging further I should say that 1. There is, indeed, lock on the ClassLoader in the native code. 2. There is "experimental" option to turn off that locking. E.g., described here: http://underlap.blogspot.com/2006/11/experimental-fix-for-sunbug-4670071.html and thus Tomcat is not the first one to run into such an issue. 3. Evaluation part of http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4670071 mentions API change to allow parallel classloading, and API change actually means that it will be no sooner than JDK7. See http://java.sun.com/javase/7/docs/api/java/lang/ClassLoader.html methods registerAsParallelCapable() and getClassLoadingLock(String) While I was evaluating this, several comments were added to bug 48694, especially attachment 25124, which is another sample of a deadlock (in that case JRE is 1.6.0_13). -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- 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
DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694 --- Comment #10 from pmones...@gmail.com 2010-03-13 05:45:36 UTC --- So looking at all this I think the problem is as follow: Thread1 If you call Class.forName in turn You call ClassLoader.loadClassInternal and this is synchronized on this. Following that you enter WebappClassLoader and get a lock on string.intern() Thread2 On another thread you call WebAppClassLoader.loadClass which gets a lock on string.intern() but also calls defineClass which is synchronized on this . It seems possible to get a deadlock from the sequence of event. I'm not sure why I seem to hit this bug more when using JRebel. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- 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