[rdnzl-devel] Re: Problem/crash with RDNZL under ECL
Edi Weitz
edi at agharta.de
Tue Sep 26 13:47:37 UTC 2006
[Cc to mailing list.]
Hi Michael!
On Tue, 26 Sep 2006 15:24:05 +0200, "Goffioul Michael" <goffioul at imec.be> wrote:
> I discovered a crash problem at exit-time due to RDNZL under ECL. I
> didn't notice it until recently because the application exited
> without notice about the crash. The problem is related to
> DelegateAdapter class and the release callback. It seems that the
> CLR registers an exit-hook function, I guess to run one last time
> the GC to release any allocated resources. DelegateAdapter objects
> are only released during that phase: I tried various combination of
> GC forcing in LISP and CLR, but those objects got never collected,
> except during the exit-hook. The problem is that this exit-hook is
> run after the LISP engine unloading, such that the release callback
> registered in the DelegateAdapter class just points to garbage
> memory.
Ouch...
> I don't know what's going on. I tried various workaround, without
> touching RDNZL code, but couldn't avoid the crash. Currently, the
> only solution I'm left with is to set the invoke and release
> callbacks of DelegateAdapter class to null before exiting and add
> nullity-check code to DelegateAdapter class before calling those
> callbacks.
Seems like a reasonable solution.
> Did you ever have that problem?
No, but I never ran anything under the VS debugger.
> In my case, I can easily reproduce it by running my LISP into the
> Visual Studio debugger and run the apropos example. On exit, I'm
> warned by the debugger about the access violation. Note that if I
> run the LISP outside the debugger, I'm not notified at all.
I just tried with VS 2003. I started LispWorks 5.0, then attached the
VS debugger to LW, then loaded RDNZL, then loaded and ran the apropos
example. Finally, I quit LispWorks. I didn't get any messages,
though. Maybe this only happens with .NET 2.0? Or is it specific to
ECL? Or do I have to do something else? I'm not familiar with the VS
debugger.
Nevertheless, it's pretty disturbing that DelegateAdapter objects are
/never/ released... :(
Cheers,
Edi.
More information about the rdnzl-devel
mailing list