DO NOT REPLY [Bug 46221] Leak WebappClassLoader with commons-logging and log4j

2008-12-04 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=46221





--- Comment #8 from Arnaud de Bossoreille <[EMAIL PROTECTED]>  2008-12-04 
05:24:28 PST ---
Mark, yo're probably right when you say it is more an enhancement than a leak.
I could not reproduce it any more. It seems that sometimes the VM is more eager
to unload its classes. Some other times it requires dozens of start/stop to
finally unload the classes, even with forced GC calls.

However Peter pointed out a real leak which I was not able to reproduce too.
Can some objects be initialized in a different order that would explain that
kind of behavior?


-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 46337] New: real worker name is wrong

2008-12-04 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=46337

   Summary: real worker name is wrong
   Product: Tomcat Connectors
   Version: 1.2.27
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: Common
AssignedTo: dev@tomcat.apache.org
ReportedBy: [EMAIL PROTECTED]


Created an attachment (id=22988)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=22988)
patch for jk_lb_worker.c

I am using one lb worker with two sub workers. The name of sub workers are
'ajp13w' and 'ajp13w2'.
The format of the request log is as follows:
JkRequestLogFormat "%w(%R) %V %T"

When the failover occurred in mod_jk 1.2.22, the real worker name output to the
request log was 'ajp13w2'.
However, when the failover occurred in mod_jk 1.2.27, the real worker name was
'ajp13w'.

Because "s->route" is not NULL when the failover occurs, it is not overwrited
in a new worker name. 

jk_lb_worker.c
L1128
if (!s->route)
s->route = rec->route;

Log of mod_jk 1.2.22:
-
[Thu Dec 04 13:33:29 2008] [25987:13664] [info]  init_jk::mod_jk.c (2743):
mod_jk/1.2.22 initialized
[Thu Dec 04 13:33:29 2008] [25988:13664] [info]  init_jk::mod_jk.c (2743):
mod_jk/1.2.22 initialized
[Thu Dec 04 13:34:04 2008] [25989:18752] [info] jk_open_socket::jk_connect.c
(451): connect to 172.20.140.5:8009 failed (errno=115)
[Thu Dec 04 13:34:04 2008] [25989:18752] [info]
ajp_connect_to_endpoint::jk_ajp_common.c (876): Failed opening socket to
(172.20.140.5:8009) (errno=115)
[Thu Dec 04 13:34:04 2008] [25989:18752] [info]
ajp_send_request::jk_ajp_common.c (1273): (ajp13w) error connecting to the
backend server (errno=115)
[Thu Dec 04 13:34:04 2008] [25989:18752] [info] ajp_service::jk_ajp_common.c
(1941): (ajp13w) sending request to tomcat failed,  recoverable operation
attempt=1
[Thu Dec 04 13:34:09 2008] [25989:18752] [info] jk_open_socket::jk_connect.c
(451): connect to 172.20.140.5:8009 failed (errno=115)
[Thu Dec 04 13:34:09 2008] [25989:18752] [info]
ajp_connect_to_endpoint::jk_ajp_common.c (876): Failed opening socket to
(172.20.140.5:8009) (errno=115)
[Thu Dec 04 13:34:09 2008] [25989:18752] [info]
ajp_send_request::jk_ajp_common.c (1273): (ajp13w) error connecting to the
backend server (errno=115)
[Thu Dec 04 13:34:09 2008] [25989:18752] [info] ajp_service::jk_ajp_common.c
(1941): (ajp13w) sending request to tomcat failed,  recoverable operation
attempt=2
[Thu Dec 04 13:34:09 2008] [25989:18752] [error] ajp_service::jk_ajp_common.c
(1953): (ajp13w) Connecting to tomcat failed. Tomcat is probably not started or
is listening on the wrong port
[Thu Dec 04 13:34:09 2008] [25989:18752] [info] service::jk_lb_worker.c (1098):
service failed, worker ajp13w is in error state
[Thu Dec 04 13:34:09 2008] wlb(ajp13w2) localhost 10.007632
---

Log of mod_jk 1.2.27:
-
[Thu Dec 04 15:27:22.494 2008] [28187:161211744] [info] init_jk::mod_jk.c
(3020): mod_jk/1.2.27 initialized
[Thu Dec 04 15:27:22.509 2008] [28188:161211744] [info] init_jk::mod_jk.c
(3020): mod_jk/1.2.27 initialized
[Thu Dec 04 15:27:33.773 2008] [28190:1123916096] [info]
jk_open_socket::jk_connect.c (593): connect to 172.20.140.5:8009 failed
(errno=115)
[Thu Dec 04 15:27:33.773 2008] [28190:1123916096] [info]
ajp_connect_to_endpoint::jk_ajp_common.c (922): Failed opening socket to
(172.20.140.5:8009) (errno=115)
[Thu Dec 04 15:27:33.773 2008] [28190:1123916096] [error]
ajp_send_request::jk_ajp_common.c (1467): (ajp13w) connecting to backend
failed. Tomcat is probably not started or is listening on the wrong port
(errno=115)
[Thu Dec 04 15:27:33.773 2008] [28190:1123916096] [info]
ajp_service::jk_ajp_common.c (2407): (ajp13w) sending request to tomcat failed
(recoverable), because of error during request sending (attempt=1)
[Thu Dec 04 15:27:38.874 2008] [28190:1123916096] [info]
jk_open_socket::jk_connect.c (593): connect to 172.20.140.5:8009 failed
(errno=115)
[Thu Dec 04 15:27:38.875 2008] [28190:1123916096] [info]
ajp_connect_to_endpoint::jk_ajp_common.c (922): Failed opening socket to
(172.20.140.5:8009) (errno=115)
[Thu Dec 04 15:27:38.875 2008] [28190:1123916096] [error]
ajp_send_request::jk_ajp_common.c (1467): (ajp13w) connecting to backend
failed. Tomcat is probably not started or is listening on the wrong port
(errno=115)
[Thu Dec 04 15:27:38.875 2008] [28190:1123916096] [info]
ajp_service::jk_ajp_common.c (2407): (ajp13w) sending request to tomcat failed
(recoverable), because of error during request sending (attempt=2)
[Thu Dec 04 15:27:38.875 2008] [28190:1123916096] [error]
ajp_service::jk_ajp_common.c (2426): (ajp13w) connecting to tomcat failed.
[Thu Dec 04 15:27:38.875 2008] [28190:1123916096] [info]
service::jk_lb_worker.c (1347): service failed, worker ajp13w is in error state
[Thu Dec 04 15:27:38.878 2008] wlb(ajp13w) localhost 10.106069
---

regards.


-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs

DO NOT REPLY [Bug 46337] real worker name is wrong

2008-12-04 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=46337





--- Comment #1 from Rainer Jung <[EMAIL PROTECTED]>  2008-12-04 06:39:26 PST ---
The route in the service struct is used for two purposes:

1) we send it via ajp12 and ajp13 to the backend
2) we set it in the load balancer and make it available for logging in Apache
httpd

Ad 1) Unfortunately route is never initialized before sending via AJP and
consistently it is never used in the Tomcat AJP connector. I think it would be
nice to actually set it to the route of the worker before sending to a backend,
and to allow the route contained in the session id to be injected by the
request and not only to be statically determined by jvmRoute in server.xml.

Ad 2) Here we need to decide consistently, whether we want to make the route
which was requested available, or the one we have actually chosen.


-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Injecting jvmRoute via Request

2008-12-04 Thread Rainer Jung
Hi,

motivated by a bug report I had a look at the handling of the optional
route attribute in the AJP protocol.

I noticed, that mod_jk never seems to actuall set the attribute, and
that the AJP connectors on the Tomcat side extract it but never use it.

I don't know about the history, but does the following sound reasonable:

- Setting the route attribute in the AJP request to the route value
configured for the AJP worker chosen in mod_jk (simple)

- When a new session in Tomcat gets created, and the Engine does not
have a jvmRoute set, and the request came in via AJP, setting the
jvmRoute of the session to the jvmRoute returned by the AJP request.

That way one can inject the stickyness tag from the frontend and there's
no need for duplicate jvmRoute configuration (mod_jk and Tomcat) any more.

Because of compatibility the default jvmRoute would still be the one
configured in server.xml, even when there's another one coming in via
the rquest.

Optional enhancement: add the same logic the the valve which rewrites
the session id when the backend changes, i.e. use the Tomcat configured
jvmRoute when available, but if not also check whether it's an AJP
request and use the jvmRoute in this request instead.

Does that make sense? Or was it tried before and produced problems?

Regards,

Rainer


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 46339] New: Recursive tag files with JspFragment attributes fails

2008-12-04 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=46339

   Summary: Recursive tag files with JspFragment attributes fails
   Product: Tomcat 6
   Version: 6.0.18
  Platform: All
OS/Version: All
Status: NEW
  Severity: critical
  Priority: P2
 Component: Servlet & JSP API
AssignedTo: dev@tomcat.apache.org
ReportedBy: [EMAIL PROTECTED]


Created an attachment (id=22991)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=22991)
Application that demonstrates the problem

It's not possible to write a recursive tag file that makes use of a fragment
attribute. The fragment will be correctly invoked at the first level. But when
the fragment is passed on as an attribute to the recursive invocation, the
fragments seems to be invoked and the result of the invocation is used instead.

See the attached application for a demonstration.

This may be related to bug #42693.


-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Experimental support for SRS and BATV

2008-12-04 Thread Mark Thomas
Folks,

If SRS and BATV mean nothing to you, feel free to ignore this.

Those of you who have struggled in the past with SRS or BATV may be
interested to know that experimental support for these has been added to
the Tomcat user and dev lists.

You should now be able to subscribe and post from addresses that use SRS or
BATV. If you have any difficulties please contact [EMAIL PROTECTED] or
[EMAIL PROTECTED] and one of us will see what we can do to help.

Mark


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: r723404 - in /tomcat/trunk: java/org/apache/tomcat/util/net/NioEndpoint.java java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java webapps/docs/config/http.xml

2008-12-04 Thread markt
Author: markt
Date: Thu Dec  4 11:31:34 2008
New Revision: 723404

URL: http://svn.apache.org/viewvc?rev=723404&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44285
Provide support for configuring the JSSE SSL session cache size and timeout

Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
tomcat/trunk/webapps/docs/config/http.xml

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=723404&r1=723403&r2=723404&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Thu Dec  4 
11:31:34 2008
@@ -50,6 +50,7 @@
 import javax.net.ssl.KeyManagerFactory;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLEngine;
+import javax.net.ssl.SSLSessionContext;
 import javax.net.ssl.TrustManagerFactory;
 import javax.net.ssl.X509KeyManager;
 
@@ -604,7 +605,6 @@
 public void setKeystoreType(String s ) { this.keystoreType = s;}
 
 protected String sslProtocol = "TLS"; 
-
 public String getSslProtocol() { return sslProtocol;}
 public void setSslProtocol(String s) { sslProtocol = s;}
 
@@ -617,7 +617,6 @@
 for (int i=0; i0) reclaimParachute(true);

Modified: 
tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java?rev=723404&r1=723403&r2=723404&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java 
Thu Dec  4 11:31:34 2008
@@ -49,6 +49,7 @@
 import javax.net.ssl.SSLException;
 import javax.net.ssl.SSLServerSocket;
 import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSessionContext;
 import javax.net.ssl.SSLSocket;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.TrustManagerFactory;
@@ -88,6 +89,9 @@
 private static final String defaultKeystoreFile
 = System.getProperty("user.home") + "/.keystore";
 private static final String defaultKeyPass = "changeit";
+private static final int defaultSessionCacheSize = 0;
+private static final int defaultSessionTimeout = 86400;
+
 static org.apache.juli.logging.Log log =
 org.apache.juli.logging.LogFactory.getLog(JSSESocketFactory.class);
 
@@ -419,6 +423,28 @@
  trustAlgorithm),
  new SecureRandom());
 
+// Configure SSL session cache
+int sessionCacheSize;
+if (attributes.get("sessionCacheSize") != null) {
+sessionCacheSize = Integer.parseInt(
+(String)attributes.get("sessionCacheSize"));
+} else {
+sessionCacheSize = defaultSessionCacheSize;
+}
+int sessionCacheTimeout;
+if (attributes.get("sessionCacheTimeout") != null) {
+sessionCacheTimeout = Integer.parseInt(
+(String)attributes.get("sessionCacheTimeout"));
+} else {
+sessionCacheTimeout = defaultSessionTimeout;
+}
+SSLSessionContext sessionContext =
+context.getServerSessionContext();
+if (sessionContext != null) {
+sessionContext.setSessionCacheSize(sessionCacheSize);
+sessionContext.setSessionTimeout(sessionCacheTimeout);
+}
+
 // create proxy
 sslProxy = context.getServerSocketFactory();
 

Modified: tomcat/trunk/webapps/docs/config/http.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/http.xml?rev=723404&r1=723403&r2=723404&view=diff
==
--- tomcat/trunk/webapps/docs/config/http.xml (original)
+++ tomcat/trunk/webapps/docs/config/http.xml Thu Dec  4 11:31:34 2008
@@ -103,20 +103,14 @@
   the container during FORM or CLIENT-CERT authentication. For both types
   of authentication, the POST will be saved/buffered before the user is
   authenticated. For CLIENT-CERT authentication, the POST is buffered for
-  the duration of
- the SSL handshake and the buffer emptied when the request
-  is processed. For FORM authentication the POST is
- saved whilst the user
+  the duration of the SSL handshake and the buffer emptied when the request
+  is processed. For FORM authentication the POST is saved whilst the user
   is re-directed to the login form and is retained until the user
   

DO NOT REPLY [Bug 44285] ssl.SessionId Cache Control

2008-12-04 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=44285





--- Comment #4 from Mark Thomas <[EMAIL PROTECTED]>  2008-12-04 11:33:29 PST ---
This has been fixed in trunk and proposed for 6.0.x


-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: r723406 - /tomcat/tc6.0.x/trunk/STATUS.txt

2008-12-04 Thread markt
Author: markt
Date: Thu Dec  4 11:35:42 2008
New Revision: 723406

URL: http://svn.apache.org/viewvc?rev=723406&view=rev
Log:
Propose fix for 44285

Modified:
tomcat/tc6.0.x/trunk/STATUS.txt

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=723406&r1=723405&r2=723406&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Dec  4 11:35:42 2008
@@ -237,3 +237,9 @@
   http://svn.apache.org/viewvc?rev=721886&view=rev
   +1: markt
   -1: 
+
+* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44285
+  Make SSL session cache size and timeout configurable
+  http://svn.apache.org/viewvc?rev=723404&view=rev
+  +1: markt
+  -1: 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 46343] New: .tag files: page scope attribute from outer tag is lost in inner tag

2008-12-04 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=46343

   Summary: .tag files: page scope attribute from outer tag is lost
in inner tag
   Product: Tomcat 6
   Version: 6.0.18
  Platform: PC
OS/Version: Windows Server 2003
Status: NEW
  Severity: normal
  Priority: P2
 Component: Servlet & JSP API
AssignedTo: dev@tomcat.apache.org
ReportedBy: [EMAIL PROTECTED]


Created an attachment (id=22994)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=22994)
Sample for the failing Tags

I asked this on the mailing list (Dec. 2nd, same subject), but got no reply. I
think it is a bug, but maybe it is just an error of mine.

I have a JSP tag file, which sets an attribute to the PageContext. I 
expect this attribute to be present in child tags.

Here is the outer tag (in a file "outer.tag"):

<%@ tag language="java" pageEncoding="ISO-8859-1"%>
<%@ variable name-given="test" scope="NESTED" %>
<%
jspContext.setAttribute ("test", "This is a test !", PageContext.PAGE_SCOPE);
%>
Value before doBody: ${test} 

Value after doBody: ${test} 

The tag just sets a string "This is a test !" to a page scope attribute 
"test" and calls the tag body.

This is the inner tag (file "inner.tag"), it tries to display the page scope
attribute from the outer tag:
<%@ tag language="java" pageEncoding="ISO-8859-1"%>
Value in inner tag: ${test} 

My JSP is this:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="tagfiles" tagdir="/WEB-INF/tags" %>





   Value in test.jsp: ${test} 
   



The browser shows this:
Value before doBody: This is a test !
Value in test.jsp: This is a test !
Value in inner tag:
Value after doBody: This is a test !

The problem is the empty output in the inner tag. I expect the third 
line to be "Value in inner tag: This is a test !".

If I code this with tag classes, everything works fine: the attribute is 
set through "this.pageContext.setAttribute("test", "This is a test !");" 
and the inner tag finds the value with 
"this.getJspContext().getAttribute("test", PageContext.PAGE_SCOPE);".

Attached is a sample for this (WAR file created by Eclipse 3.4/WTP 3.0,
including sources).
It contains the .tag files and java code version of the tag. Both are called on
"index.jsp", and the coded tag shows the expected behavior.


-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]