https://bz.apache.org/bugzilla/show_bug.cgi?id=58504

            Bug ID: 58504
           Summary: Maintenance process skipped occasionally
           Product: Tomcat Connectors
           Version: 1.2.41
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mod_jk
          Assignee: dev@tomcat.apache.org
          Reporter: shimizuhiroto...@gmail.com

Created attachment 33186
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=33186&action=edit
patch against trunk

When the following environment set, maintenance process skipped occasionally.
This behavior is 1.2.41 only.
 * worker.maintain=30
 * JkWatchdogInterval  30

I analyze of follows.
In case of JK_TRUE, maintenance is performed in maintain_workers().

if "jk_shmem.hdr-> h.data.maintain_time = trigger", JK_FALSE is returned.
But it should be returned JK_TRUE.

---jk_shm.c
    872 int jk_shm_check_maintain(time_t trigger)
    :
    881     if (jk_shmem.hdr->h.data.maintain_time < trigger) {
    882         jk_shmem.hdr->h.data.maintain_time = time(NULL);
    883         rv = JK_TRUE;
    884     }
    :
    886     return rv;
---

I made patch against trunk.

======================================
--- jk_shm.c    (revision 1702073)
+++ jk_shm.c    (working copy)
@@ -878,7 +878,7 @@
         JK_ATOMIC_DECREMENT(&(jk_shmem.hdr->h.data.maintain_checking));
         return rv;
     }
-    if (jk_shmem.hdr->h.data.maintain_time < trigger) {
+    if (jk_shmem.hdr->h.data.maintain_time <= trigger) {
         jk_shmem.hdr->h.data.maintain_time = time(NULL);
         rv = JK_TRUE;
     }

-- 
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

Reply via email to