This is the mail archive of the
mailing list for the Cygwin project.
Re: [1.7.0-60] crash on exit on c++ program (octave)
- From: Dave Korn <dave dot korn dot cygwin at googlemail dot com>
- To: cygwin at cygwin dot com
- Date: Thu, 20 Aug 2009 20:09:12 +0100
- Subject: Re: [1.7.0-60] crash on exit on c++ program (octave)
- References: <email@example.com>
Marco Atzeri wrote:
> I was building the latest octave-3.2.2 on cygwin-1.7.0-60
> and I found that the program crash on exit.
> A single command "exit" is enough to core dump the program; for the rest it is working as expected and pass all the build test.
> Also the previous octave-3.2.0 that I build/released
> on 29th June (probably 1.7.0-50 time) is crashing with
> cygwin 1.7.0-60.
> Testing previous cygwin versions I found that octave-3.2.0
> works fine with 1.7.0-52 and crashes with 1.7.0-56.
> Could Dave's change mentioned here
> be the cause ?
The problem is related to termination sequence. octave calls dlclose() for
all the modules it loads, from octave_dld_function::~octave_dld_function() at
shutdown time. The modules in question have already had their dtors run, and
dlclose() causes them to be run a second time.
We should probably make running the dtors idempotent, or unlink each dll
from the dll_list as we go. I need to think about this for a little while,
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple