[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: segfault on 'make check'
From: |
Ben Abbott |
Subject: |
Re: segfault on 'make check' |
Date: |
Tue, 06 Dec 2011 08:05:14 -0500 |
On Dec 5, 2011, at 9:45 PM, Ben Abbott wrote:
> On Dec 5, 2011, at 6:00 PM, Ben Abbott wrote:
>
>> On Dec 5, 2011, at 4:10 PM, John W. Eaton wrote:
>>
>>> On 5-Dec-2011, Rik wrote:
>>>
>>> | On 12/04/2011 09:06 PM, John W. Eaton wrote:
>>> | > I can't tell what could cause the crash. Did you compile with -g? If
>>> | > not, could you use -g and do this again so we can get more info about
>>> | > precisely where the crash is happening? Or could you step through the
>>> | > singleton_cleanup_list destructor and see whether
>>> | > octave_value_typeinfo::cleanup_instance is the first cleanup_instance
>>> | > function that is called, or whether others are called successfully.
>>> | > The octave_value_typeinfo destructor doesn't even do anything
>>> | > explicitly. I don't know what it means that the function called from
>>> | > there is "vtable".
>>> | I pulled the latest changes from gnulib today (12/5/11). I updated to the
>>> | latest tip (13998:6e9bf84dec3c). I ran 'make maintainer-clean' and then a
>>> | full build starting with autogen.sh and configuring all compiler flags for
>>> | '-g -O0'. There is still a segfault when exiting, but now it is
>>> definitely
>>> | related to the FLTK toolkit.
>>> |
>>> | For the following code:
>>> | run-octave -g
>>> | > graphics_toolkit fltk
>>> | > plot (1:10);
>>> | > exit
>>> |
>>> | The error and backtrace is
>>> |
>>> | /m: fccache.c:507: FcCacheFini: Assertion `fcCacheChains[i] == ((void
>>> *)0)'
>>> | failed.
>>> |
>>> | Program received signal SIGABRT, Aborted.
>>> | 0x00007ffff50a6a75 in *__GI_raise (sig=<value optimized out>) at
>>> | ../nptl/sysdeps/unix/sysv/linux/raise.c:64
>>> | 64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or
>>> directory.
>>> | in ../nptl/sysdeps/unix/sysv/linux/raise.c
>>> |
>>> | #0 0x00007ffff50a6a75 in *__GI_raise (sig=<value optimized out>) at
>>> | ../nptl/sysdeps/unix/sysv/linux/raise.c:64
>>> | #1 0x00007ffff50aa5c0 in *__GI_abort () at abort.c:92
>>> | #2 0x00007ffff509f941 in *__GI___assert_fail (assertion=0x7ffff3f427c8
>>> | "fcCacheChains[i] == ((void *)0)",
>>> | file=<value optimized out>, line=507, function=0x7ffff3f42830
>>> | "FcCacheFini") at assert.c:81
>>> | #3 0x00007ffff3f2a4e5 in ?? () from /usr/lib/libfontconfig.so.1
>>> | #4 0x00007ffff3f35d6f in FcFini () from /usr/lib/libfontconfig.so.1
>>> | #5 0x00007ffff73c94b5 in ~ft_manager (this=0xd835a0, __in_chrg=<value
>>> | optimized out>) at txt-eng-ft.cc:140
>>> | #6 0x00007ffff73c93b7 in ft_manager::cleanup_instance () at
>>> txt-eng-ft.cc:94
>>> | #7 0x00007ffff60d72c8 in ~singleton_cleanup_list (this=0x60e350,
>>> | __in_chrg=<value optimized out>) at singleton-cleanup.cc:39
>>> | #8 0x00007ffff73c54a9 in singleton_cleanup_list::cleanup () at
>>> | ../liboctave/singleton-cleanup.h:26
>>> | #9 0x00007ffff73c2488 in clean_up_and_exit (retval=0) at toplev.cc:697
>>> | #10 0x00007ffff73c1ef6 in main_loop () at toplev.cc:640
>>> | #11 0x00007ffff7374934 in octave_main (argc=6, argv=0x7fffffffd2c8,
>>> | embedded=0) at octave.cc:938
>>> | #12 0x0000000000400769 in main (argc=6, argv=0x7fffffffd2c8) at main.c:35
>>> |
>>> | I set a breakpoint in ~singleton_cleanup and most of the
>>> ::cleanup_instance
>>> | () routines seem to work fine. I had to step through about 15 before
>>> | triggering the segfault in ft_manager::cleanup_instance. There is no
>>> | segfault if gnuplot is used as the toolkit.
>>>
>>> Thanks, I'm able to duplicate that problem.
>>>
>>> For now, I checked in the following change:
>>>
>>> http://hg.savannah.gnu.org/hgweb/octave/rev/1221086f1ba5
>>>
>>> I don't claim that this is a proper fix, but it avoids the problem for
>>> me. Does it also prevent the segfault for you?
>>>
>>> jwe
>>
>> I hadn't seen a seg-fault before, but now "make check" ends with ...
>>
>> -------------------------- begin cut-n-paste --------------------------
>> Summary:
>>
>> PASS 10156
>> FAIL 1
>>
>> There were 2 expected failures (see fntests.log for details).
>>
>> Expected failures are known bugs. Please help improve Octave
>> by contributing fixes for them.
>>
>> 246 (of 805) .m files have no tests.
>>
>> 37 (of 153) .cc files have no tests.
>>
>> Please help improve Octave by contributing tests for
>> these files (see the list in the file fntests.log).
>>
>>
>> panic: Segmentation fault: 11 -- stopping myself...
>> attempting to save variables to `octave-core'...
>> -------------------------- end cut-n-paste --------------------------
>>
>> After several minutes the core is still dumping (maybe a hang?)
>>
>> Ben
>
> The one failure I had was with svds. I verified that I can reliably produce a
> seg-fault by "test svds; quit"
>
> So I tried running "test svds; quit" from gdb. I The bt is below.
>
> PASSES 5 out of 5 tests
>>> quit
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_INVALID_ADDRESS at address: 0x000000010fcbd912
> 0x000000010fcbd912 in ?? ()
> (gdb) bt
> #0 0x000000010fcbd912 in ?? ()
> Cannot access memory at address 0x10fcbd912
> #1 0x000000010fcbdc81 in ?? ()
> #2 0x00000001004e3600 in octave_value_typeinfo::~octave_value_typeinfo ()
> #3 0x00000001004e373d in octave_value_typeinfo::cleanup_instance ()
> #4 0x00000001052bad93 in singleton_cleanup_list::~singleton_cleanup_list ()
> #5 0x0000000100396082 in clean_up_and_exit ()
> #6 0x00000001003969c0 in main_loop ()
> #7 0x0000000100329c9f in octave_main ()
> #8 0x0000000100000f44 in start ()
>
> I'm rebuilding with "-g". I'll add more info tomorrow.
>
> Ben
After applying the two patches, segfault.patch & segfault2.patch (from Rik's
earlier reply), I'm able to build and run "make check".
Ben
- Re: segfault on 'make check', (continued)
- Re: segfault on 'make check', John W. Eaton, 2011/12/05
- Re: segfault on 'make check', Rik, 2011/12/05
- Re: segfault on 'make check', marco atzeri, 2011/12/06
- Re: segfault on 'make check', John W. Eaton, 2011/12/06
- Re: segfault on 'make check', John W. Eaton, 2011/12/07
- Re: segfault on 'make check', Ben Abbott, 2011/12/07
- Re: segfault on 'make check', John W. Eaton, 2011/12/07
- Re: segfault on 'make check', Tatsuro MATSUOKA, 2011/12/08
- Re: segfault on 'make check', Ben Abbott, 2011/12/05
- Re: segfault on 'make check', Ben Abbott, 2011/12/05
- Re: segfault on 'make check',
Ben Abbott <=
- Re: segfault on 'make check', Tatsuro MATSUOKA, 2011/12/06
- Re: segfault on 'make check', Michael D Godfrey, 2011/12/05
- Re: segfault on 'make check', Tatsuro MATSUOKA, 2011/12/05
- Re: segfault on 'make check', Michael D Godfrey, 2011/12/05
Re: segfault on 'make check', Tatsuro MATSUOKA, 2011/12/04
Re: segfault on 'make check', marco atzeri, 2011/12/05
Re: segfault on 'make check', Tatsuro MATSUOKA, 2011/12/04