Skip to content

Random failure in combinatorial_polyhedron/base.pyx #28311

@vbraun

Description

@vbraun
sage: N = combinations(range(25),24) ## line 1174 ##
sage: C = CombinatorialPolyhedron(N) ## line 1175 ##
sage: try:
    alarm(0.5)
    C.f_vector()
except:
    print("alarm!") ## line 1176 ##
------------------------------------------------------------------------
/var/lib/buildbot/slave/sage3_git/build/local/lib/python3.7/site-packages/cysignals/signals.cpython-37m-x86_64-linux-gnu.so(+0x87f8)[0x7f9ee7ee97f8]
/var/lib/buildbot/slave/sage3_git/build/local/lib/python3.7/site-packages/cysignals/signals.cpython-37m-x86_64-linux-gnu.so(+0x88a8)[0x7f9ee7ee98a8]
/var/lib/buildbot/slave/sage3_git/build/local/lib/python3.7/site-packages/cysignals/signals.cpython-37m-x86_64-linux-gnu.so(+0xba9c)[0x7f9ee7eeca9c]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f9eef7f9390]
/lib/x86_64-linux-gnu/libc.so.6(+0x11509c)[0x7f9eef53309c]
/lib/x86_64-linux-gnu/libc.so.6(+0x802bd)[0x7f9eef49e2bd]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f9eef4a253c]
/var/lib/buildbot/slave/sage3_git/build/local/lib/python3.7/site-packages/sage/ext/memory_allocator.cpython-37m-x86_64-linux-gnu.so(+0x37ed)[0x7f9e818e07ed]
/var/lib/buildbot/slave/sage3_git/build/local/lib/python3.7/site-packages/sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.cpython-37m-x86_64-linux-gnu.so(+0x7ce7)[0x7f9e6b7a9ce7]
/var/lib/buildbot/slave/sage3_git/build/local/lib/python3.7/site-packages/sage/geometry/polyhedron/combinatorial_polyhedron/base.cpython-37m-x86_64-linux-gnu.so(+0x2dab4)[0x7f9e6be55ab4]
/var/lib/buildbot/slave/sage3_git/build/local/lib/python3.7/site-packages/sage/geometry/polyhedron/combinatorial_polyhedron/base.cpython-37m-x86_64-linux-gnu.so(+0x2e398)[0x7f9e6be56398]
/var/lib/buildbot/slave/sage3_git/build/local/lib/libpython3.7m.so.1.0(_PyMethodDef_RawFastCallKeywords+0x300)[0x7f9eefa9f190]
/var/lib/buildbot/slave/sage3_git/build/local/lib/libpython3.7m.so.1.0(_PyMethodDescr_FastCallKeywords+0x49)[0x7f9eefaa7e69]
/var/lib/buildbot/slave/sage3_git/build/local/lib/libpython3.7m.so.1.0(_PyEval_EvalFrameDefault+0x7a8c)[0x7f9eefa76b2c]
/var/lib/buildbot/slave/sage3_git/build/local/lib/libpython3.7m.so.1.0(_PyEval_EvalCodeWithName+0xa34)[0x7f9eefb80ab4]
/var/lib/buildbot/slave/sage3_git/build/local/lib/libpython3.7m.so.1.0(PyEval_EvalCodeEx+0x3e)[0x7f9eefb80bce]
[...]
/var/lib/buildbot/slave/sage3_git/build/local/lib/libpython3.7m.so.1.0(+0x1d3010)[0x7f9eefbd8010]
/var/lib/buildbot/slave/sage3_git/build/local/lib/libpython3.7m.so.1.0(_Py_UnixMain+0x39)[0x7f9eefbd82c9]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f9eef43e830]
/var/lib/buildbot/slave/sage3_git/build/local/bin/python3(_start+0x29)[0x400729]
------------------------------------------------------------------------
**********************************************************************
----------------------------------------------------------------------
sage -t --long src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx  # Timed out (and interrupt failed)
----------------------------------------------------------------------

The backtrace usually points into sage/ext/memory_allocator. My guess is that the computation is mostly about shufffling about memory, and raising signals / longjmp out of malloc has a chance of messing up things.

We fix this by allocating the memory in get_next_level on the stack.

CC: @kliem @videlec @jdemeyer

Component: geometry

Keywords: random_fail, combinatorial polyhedron

Author: Jonathan Kliem

Branch/Commit: 83e5564

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/28311

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions