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
