[gamin] 100% CPU in gam_server



Greets list,

Unfortunately, it is possible for gam_server to go 100% CPU crazy in
gam_poll.c:remove_directory_subscription().

It seems the GList *children can sometimes contain a next-> loop and
therefore the program will loop forever in:

 545     for (l = children; l; l = l->next) {
 
Bummer eh.

(gdb) list remove_directory_subscription
Line 535 of "gam_poll.c" starts at address 0x804c6ad <remove_directory_subscription> and ends at 0x804c6b3 <remove_directory_subscription+6>.
(gdb) 

I have seen this 100% CPU issue several times now... but I have not yet
determined the steps to reproduce it. I just thought I'd give the list a
heads up.

As for debugging, in the past I've macro-ed a GList check function that is
run for *every* list action. It checks that the list has no loops... but
traversing the list until next == NULL or 'n' and if 'n' is reached (where
n is large like 100000) then we have a loop.

Other ideas?

-- 
Benjamin Lee
Melbourne, AU         +61.4.16.BEN.LEE         http://www.realthought.net/
__________________________________________________________________________
We are sorry.  We cannot complete your call as dialed.  Please check
the number and dial again or ask your operator for assistance.

This is a recording.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]