Author: rjung
Date: Sat Jun 30 19:40:02 2007
New Revision: 552233
URL: http://svn.apache.org/viewvc?view=rev&rev=552233
Log:
Fix a deadlock in the load balancer.
jk_shm_lock for multi-threaded MPMs on *nix uses two locks,
a pthread mutex for thread locking in the local process and
a fcntl for cross process locking. On Solaris the fcntl will
sporadically return with EDEADLK (although there is none!).
We still need to call jk_shm_unlock in this case,
so that we unlock the posix mutex.
Modified:
tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c?view=diff&rev=552233&r1=552232&r2=552233
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Sat Jun 30 19:40:02
2007
@@ -766,8 +766,6 @@
jk_log(l, JK_LOG_ERROR,
"locking failed (errno=%d)",
errno);
- JK_TRACE_EXIT(l);
- return NULL;
}
if (sessionid) {
char *session = sessionid;
Modified: tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml?view=diff&rev=552233&r1=552232&r2=552233
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml Sat Jun 30
19:40:02 2007
@@ -27,6 +27,10 @@
<br />
<subsection name="Native">
<changelog>
+ <fix>
+ Load Balancer: Fix a deadlock in lb worker, which was exposed on Solaris
+ for threaded Apache MPMs. (rjung)
+ </fix>
<update>
Logging: handle LWP IDs as 32 Bit unsigned. Try to make
it work, although pthread IDs are opaque. (rjung)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]