You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2009/08/09 19:57:53 UTC

DO NOT REPLY [Bug 39079] thread eats 100% CPU, presumably spinning in futex

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



--- Comment #25 from HuoMingyu <qu...@yahoo.cn> 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: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org