https://issues.apache.org/bugzilla/show_bug.cgi?id=39079



--- Comment #25 from HuoMingyu <[email protected]> 2009-08-09 10:57:45 PDT ---
Same problem detected in version 2.2.11.   Happens everyday on an 8-cpu centos
.  Sometimes eatup 4 cups by 100%, while sometimes 8.   
I was wondering whether it's because there is a loop in the linked list
p->cleanups and the length of the loop is bigger than 4, so that it's not
detected by the corrupt list detection mechanism? Or is that not possible?


Source below is part of apr_pool_cleanup_kill(all my  threads with 100% CPU are
detected running this function ):

while (c) {
#if APR_POOL_DEBUG
        /* Some cheap loop detection to catch a corrupt list: */
        if (c == c->next
            || (c->next && c == c->next->next)
            || (c->next && c->next->next && c == c->next->next->next)) {
            abort();
        }
#endif

        if (c->data == data && c->plain_cleanup_fn == cleanup_fn) {
            *lastp = c->next;
            /* move to freelist */
            c->next = p->free_cleanups;
            p->free_cleanups = c;
            break;
        }

        lastp = &c->next;
        c = c->next;
    }

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

Reply via email to