[Gc] Win32 infinite loop

Boehm, Hans hans_boehm@hp.com
Mon, 18 Aug 2003 17:21:54 -0700


This doesn't sound familiar to me.  Which compiler are you using?  This is an infinite loop, not a bad memory access?

It would help if you could:

1) Try it with 6.3alpha1.  (You may need to add a WINABI qualifier to GC_CreateThread.  That's a known bug in this version on win32.)

2) Build the collector with debug information, and post a few stack traces with line numbers.

Thanks.

Hans

> -----Original Message-----
> From: Julian Hall [mailto:jules@acris.co.uk]
> Sent: Friday, August 15, 2003 5:30 AM
> To: gc@napali.hpl.hp.com
> Subject: [Gc] Win32 infinite loop
> 
> 
> I'm using GC 6.1 under Win32, built as a static library 
> rather than a DLL.
> 
> I have arranged for my programs to call threadAttach() and 
> threadDetach() whenever threads are started / stopped.
> 
> I have used this arrangement in a large number of programs, 
> and it has 
> been working quite well for me until now.
> 
> My problem is that in one of my programs the collector gets stuck 
> (apparently) inside GC_stopped_mark().  A typical stack trace 
> if I break 
> into the program when it freezes looks like this:
> 
> GC_stopped_mark + 174 bytes
> GC_try_to_collect_inner + 231 bytes
> GC_try_to_collect + 76 bytes
> GC_gcollect + 15 bytes
> 
> (there may be other functions above this in the list, but 
> GC_stopped_mark is always there).
> 
> I'm not certain as to what aspect of the program that causes 
> the failure 
> is the important one.  The failure happens repeatably, early 
> during the 
> execution.  The call to the garbage collector is a direct collection 
> because just beforehand a large object has been allocated which is 
> finished with at that point (a copy of an image file kept in 
> memory for 
> decompression).
> 
> Any idea what might be going on?
> 
> 
> _______________________________________________
> Gc mailing list
> Gc@linux.hpl.hp.com
> http://linux.hpl.hp.com/cgi-bin/mailman/listinfo/gc
>