You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2006/03/17 11:39:11 UTC

svn commit: r386604 - in /tomcat/connectors/trunk/jk: native/common/jk_shm.c xdocs/changelog.xml

Author: mturk
Date: Fri Mar 17 02:39:10 2006
New Revision: 386604

URL: http://svn.apache.org/viewcvs?rev=386604&view=rev
Log:
Fix #37469. Shared memory was closed for forked childs,
thus causing close an munmap twice for the same file id.

Modified:
    tomcat/connectors/trunk/jk/native/common/jk_shm.c
    tomcat/connectors/trunk/jk/xdocs/changelog.xml

Modified: tomcat/connectors/trunk/jk/native/common/jk_shm.c
URL: http://svn.apache.org/viewcvs/tomcat/connectors/trunk/jk/native/common/jk_shm.c?rev=386604&r1=386603&r2=386604&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_shm.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_shm.c Fri Mar 17 02:39:10 2006
@@ -253,7 +253,10 @@
         return 0;
     }
     jk_shmem.filename = fname;
-    jk_shmem.attached = attached;
+    if (attached)
+        jk_shmem.attached = (int)getpid();
+    else
+        jk_shmem.attached = 0;
 
     jk_shmem.size = JK_SHM_ALIGN(sizeof(jk_shm_header_t) + sz);
 
@@ -361,6 +364,16 @@
 {
     int rc;
     if (jk_shmem.hdr) {
+        if (jk_shmem.hdr.attached) {
+            int p = (int)getpid();
+            if (p != jk_shmem.hdr.attached) {
+                /* In case this is a forked child
+                 * do not close the shared memory.
+                 * It will be closed by the parent.
+                 */
+                 return;
+            }
+        }
         if (jk_shmem.fd_lock >= 0) {
             close(jk_shmem.fd_lock);
         }

Modified: tomcat/connectors/trunk/jk/xdocs/changelog.xml
URL: http://svn.apache.org/viewcvs/tomcat/connectors/trunk/jk/xdocs/changelog.xml?rev=386604&r1=386603&r2=386604&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/changelog.xml Fri Mar 17 02:39:10 2006
@@ -26,6 +26,10 @@
   <subsection name="Native">
     <changelog>
       <fix>
+      <bug>37469</bug>: Fix shared memory close for forked childs.
+      The shared memory will be closed by the parent process. (mturk)
+      </fix>
+      <fix>
       <bug>37332</bug>: Fix potential misuse of buffer length with
       snprintf functions. (mturk)
       </fix>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org