On Wed, Feb 23, 2005 at 01:24:49AM +0100, Matthieu Moy wrote:
> I found a bug in ion3 (from svn last week end) trying to improve
> detach.lua:
> 
> ion3: region.c:461: region_detach_manager: Assertion
> `(((WRegion*)(reg))->manager)==((void *)0)' failed.
> /usr/src/ion-snapshot/install/bin/ion3: Caught signal 6. Dying.

The script doesn't work for me (detach.find_ws is missing, and as posted it
is broken anyway - please use attachments). I can't trigger the assert just
be calling some_layer_2_floatws:rqclose_relocate(), and neither can I locate
any obvious bugs. The only ways for the assert to occur are for the
region_managed_remove implementation to not call region_unset_manager, or
something to corrupt the manager field between it being retrieved to call the
manager's remove routine, and the manager calling region_unset_manager. I've
checked and all region_managed_remove implementations should always call
region_unset_manager. Therefore something seems to be going strangely.
One could add a few obvious debug fprintf(stderr)s in region_unset_manager
and region_detach_manager to see what's going on, but for this to be any
help one must be able to reproduce the assert...

-- 
Tuomo

Reply via email to