Opened 9 years ago

Last modified 8 years ago

#13636 closed defect

%timeit unpickle_all() causes a SEGABRT — at Version 1

Reported by: andrew.mathas Owned by: was
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: pickling Keywords:
Cc: Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by andrew.mathas)

The subject says it all: Sage gives a SEGABRT with the following:

sage: %timeit sage.structure.sage_object.unpickle_all()

------------------------------------------------------------------------
Unhandled SIGABRT: An abort() occurred in Sage.
This probably occurred because a *compiled* component of Sage has a bug
in it and is not properly wrapped with sig_on(), sig_off(). You might
want to run Sage under gdb with 'sage -gdb' to debug this.
Sage will now terminate.
------------------------------------------------------------------------
/usr/local/src/sage/sage-5.4.rc1/spkg/bin/sage: line 310: 60549 Abort trap: 6           sage-ipython "$@" -i

Note, however, that the following is OK:

sage: sage.structure.sage_object.unpickle_all()
/usr/local/src/sage/sage-5.4.rc1/local/lib/python2.7/site-packages/IPython/iplib.py:2260: DeprecationWarning: This class is replaced by Matrix_modn_dense_float/Matrix_modn_dense_double.
See http://trac.sagemath.org/4260 for details.
  exec code_obj in self.user_global_ns, self.user_ns
Successfully unpickled 594 objects.
Failed to unpickle 0 objects.

as is calling unpickle() with an argument:

sage: sage: dir = tmp_dir()
sage: sage: sage.structure.sage_object.picklejar('hello', dir)
sage: sage: sage.structure.sage_object.unpickle_all(dir)
Successfully unpickled 1 objects.
Failed to unpickle 0 objects.
sage: %timeit sage.structure.sage_object.unpickle_all(dir)
625 loops, best of 3: 91.5 µs per loop

I get this error for versions 5.3 and 5.4.rc1 running on a macbook pro with lion.

I initially thought that perhaps timeit did not like calling itself, however, this seems to be OK because the following does work:

sage: def fred():^J    timeit('2^10000', preparse=False, number=100)
....:     
sage: fred()
100 loops, best of 3: 31 ns per loop
sage: %timeit fred
625 loops, best of 3: 38.5 ns per loop

I tried running through sage -gdb but I don't know how to interpret the outout. Here is the tail of what it produces:

Reading symbols for shared libraries warning: .o file "/usr/local/src/sage/sage-5.3/devel/sage-main/build/temp.macosx-10.7-x86_64-2.7/sage/matrix/matrix_symbolic_dense.o" more recent than executable timestamp in "/usr/local/src/sage/sage-5.3/devel/sage-combinat/build/sage/matrix/matrix_symbolic_dense.so"
warning: Could not open OSO file /usr/local/src/sage/sage-5.3/devel/sage-main/build/temp.macosx-10.7-x86_64-2.7/sage/matrix/matrix_symbolic_dense.o to scan for pubtypes for objfile /usr/local/src/sage/sage-5.3/devel/sage-combinat/build/sage/matrix/matrix_symbolic_dense.so
. done
Reading symbols for shared libraries warning: .o file "/usr/local/src/sage/sage-5.3/devel/sage-main/build/temp.macosx-10.7-x86_64-2.7/sage/rings/polynomial/symmetric_reduction.o" more recent than executable timestamp in "/usr/local/src/sage/sage-5.3/devel/sage-combinat/build/sage/rings/polynomial/symmetric_reduction.so"
warning: Could not open OSO file /usr/local/src/sage/sage-5.3/devel/sage-main/build/temp.macosx-10.7-x86_64-2.7/sage/rings/polynomial/symmetric_reduction.o to scan for pubtypes for objfile /usr/local/src/sage/sage-5.3/devel/sage-combinat/build/sage/rings/polynomial/symmetric_reduction.so
. done

Program received signal SIGABRT, Aborted.
0x00007fff8d58f82a in __kill ()

Change History (1)

comment:1 Changed 9 years ago by andrew.mathas

  • Description modified (diff)
Note: See TracTickets for help on using tickets.