octave-maintainers
[Top][All Lists]
Advanced

[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: Wed, 07 Dec 2011 08:19:55 -0500

On Dec 7, 2011, at 6:56 AM, John W. Eaton wrote:

> On  6-Dec-2011, John W. Eaton wrote:
> 
> | On  5-Dec-2011, Rik wrote:
> | 
> | | > | The error and backtrace is
> | | > | 
> | | > | /m: fccache.c:507: FcCacheFini: Assertion `fcCacheChains[i] == ((void 
> *)0)'
> | | > | failed.
> | | > | 
> | | > | Program received signal SIGABRT, Aborted.
> | 
> | Are we using fontconfig incorrectly or is it buggy?  I noticed that
> | valgrind produces some warnings related to fontconfig functions, but I
> | did not try to fix them.
> | 
> | Also, I don't see the other crashes.  I'm using Debian x86_64.  What
> | kind of system do you have?
> | 
> | Although we can apparently avoid the crashes by not calling the
> | cleanup functions, it seems we are just hiding some other problems if
> | we do that.  Or there is some error in the way the cleanup functions
> | work that I'm not seeing.
> 
> After looking at this for a while, I think the assertion failure in
> fontconfig is a bug in fontconfig, but I don't have a simple example
> that will cause the failure.
> 
> I checked in a few more changes that seem to fix the crashes for me.
> For now, I'm skipping the cleanup function for gh_manager.  I intend
> to fix it properly but I haven't quite finished the change yet.
> 
> jwe

My tip is ...

$ hg tip
changeset:   14006:54f76558c41a
tag:         tip
user:        John W. Eaton <address@hidden>
date:        Wed Dec 07 06:55:12 2011 -0500
summary:     avoid gh_manager segfault

"make check" completes, but the seg-faults when octave tries to exit.

I ran the tests from gdb

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x000000010de180f2
0x000000010de180f2 in ?? ()
(gdb) bt
#0  0x000000010de180f2 in ?? ()
Cannot access memory at address 0x10de180f2
#1  0x000000010de18461 in ?? ()
#2  0x00000001004de7a0 in octave_value_typeinfo::~octave_value_typeinfo ()
#3  0x00000001004de8dd in octave_value_typeinfo::cleanup_instance ()
#4  0x00000001028c6d93 in singleton_cleanup_list::~singleton_cleanup_list ()
#5  0x0000000100391442 in clean_up_and_exit ()
#6  0x0000000100324c79 in octave_main ()
#7  0x0000000100000f44 in start ()

If I apply the ov-typeinfo.cc patch (below) ....

diff -r 1221086f1ba5 src/ov-typeinfo.cc
--- a/src/ov-typeinfo.cc        Mon Dec 05 16:08:13 2011 -0500
+++ b/src/ov-typeinfo.cc        Mon Dec 05 14:24:48 2011 -0800
@@ -46,8 +46,10 @@
     {
       instance = new octave_value_typeinfo ();
 
+#if 0
       if (instance)
         singleton_cleanup_list::add (cleanup_instance);
+#endif
     }
 
   if (! instance)

Then "make check" runs and exists cleanly.

Ben





reply via email to

[Prev in Thread] Current Thread [Next in Thread]