Bug#981128: libgmsh4: SIGABRT in dolfinx demo from gmsh polynomialBasis via Eigen::compute_inverse

Drew Parsons dparsons at debian.org
Tue Jan 26 19:58:25 GMT 2021


Package: libgmsh4
Version: 4.7.1+ds1-2
Severity: normal
Control: affects -1 dolfinx-doc

dolfinx-doc provides some python demos for dolfinx which are tested by
debci. One of the demos tests gmsh. You can see it (demo_gmsh.py) has
been failing in debci, e.g.
https://ci.debian.net/data/autopkgtest/testing/amd64/d/dolfinx/9989408/log.gz
with the error message:

  double free or corruption (out)
  
  Loguru caught a signal: SIGABRT


The SIGABRT is reproducible manually
  # apt-get install python3-dolfinx dolfinx-doc
  $ python3 /usr/share/dolfinx/demo-python/gmsh/demo_gmsh.py


gdb gives a detailed backtrace which suggests the problem might come
not from dolfinx but from libgmsh.so.4 in polynomialBasis, or possibly
from eigen in Eigen::internal::compute_inverse

$ gdb python3
(gdb) run /usr/share/dolfinx/demo-python/gmsh/demo_gmsh.py
...
double free or corruption (out)

Thread 1 "python3" received signal SIGABRT, Aborted.
__GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7c2a537 in __GI_abort () at abort.c:79
#2  0x00007ffff7c83768 in __libc_message (action=action at entry=do_abort, fmt=fmt at entry=0x7ffff7d91e31 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3  0x00007ffff7c8aa5a in malloc_printerr (str=str at entry=0x7ffff7d94210 "double free or corruption (out)") at malloc.c:5347
#4  0x00007ffff7c8c088 in _int_free (av=0x7ffff7dc3b80 <main_arena>, p=0x3df9b90, have_lock=<optimized out>) at malloc.c:4314
#5  0x00007fff982dfad8 in Eigen::internal::compute_inverse<Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> >, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> >, -1>::run(Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> > const&, Eigen::Map<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0> >&) ()
   from /lib/x86_64-linux-gnu/libgmsh.so.4.7
#6  0x00007fff982e574f in polynomialBasis::polynomialBasis(int) () from /lib/x86_64-linux-gnu/libgmsh.so.4.7
#7  0x00007fff9824dbca in gmsh::model::mesh::getElementProperties(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int&, int&, int&, std::vector<double, std::allocator<double> >&, int&) () from /lib/x86_64-linux-gnu/libgmsh.so.4.7
#8  0x00007fff98e07640 in gmshModelMeshGetElementProperties () from /lib/x86_64-linux-gnu/libgmsh.so.4.7
#9  0x00007ffff7fa1d1d in ?? () from /lib/x86_64-linux-gnu/libffi.so.7
#10 0x00007ffff7fa1289 in ?? () from /lib/x86_64-linux-gnu/libffi.so.7
#11 0x00007fffb91ce360 in _call_function_pointer (argtypecount=<optimized out>, argcount=9, resmem=0x7fffffffd7a0, restype=<optimized out>, atypes=<optimized out>, avalues=<optimized out>, 
    pProc=0x7fff98e075c0 <gmshModelMeshGetElementProperties>, flags=4353) at ./Modules/_ctypes/callproc.c:920
#12 _ctypes_callproc (pProc=0x7fff98e075c0 <gmshModelMeshGetElementProperties>, argtuple=<optimized out>, flags=4353, argtypes=<optimized out>, restype=<_ctypes.PyCSimpleType at remote 0xbfdaa0>, checker=0x0)
    at ./Modules/_ctypes/callproc.c:1263
#13 0x00007fffb91c48d8 in PyCFuncPtr_call (self=<optimized out>, inargs=<optimized out>, kwds=<optimized out>) at ./Modules/_ctypes/_ctypes.c:4201
#14 0x000000000051db9b in _PyObject_MakeTpCall (tstate=0x9632b0, callable=<_FuncPtr(__name__='gmshModelMeshGetElementProperties') at remote 0x7fffb83f41c0>, args=<optimized out>, nargs=<optimized out>, 
    keywords=<optimized out>) at ../Objects/call.c:191
#15 0x00000000005178a1 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x4562720, callable=<_FuncPtr(__name__='gmshModelMeshGetElementProperties') at remote 0x7fffb83f41c0>, 
    tstate=0x9632b0) at ../Include/cpython/abstract.h:116
#16 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x4562720, callable=<_FuncPtr(__name__='gmshModelMeshGetElementProperties') at remote 0x7fffb83f41c0>, tstate=0x9632b0)
    at ../Include/cpython/abstract.h:103
#17 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x4562720, callable=<_FuncPtr(__name__='gmshModelMeshGetElementProperties') at remote 0x7fffb83f41c0>) at ../Include/cpython/abstract.h:127
#18 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9632b0) at ../Python/ceval.c:5072
#19 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3487
#20 0x0000000000528ee3 in _PyEval_EvalFrame (throwflag=0, 
    f=Frame 0x4562560, for file /usr/lib/python3/dist-packages/gmsh.py, line 2256, in getElementProperties (elementType=<numpy.int32 at remote 0x7fffac55bbb0>, api_elementName_=<c_char_p at remote 0x7fffb83fd640>, api_dim_=<c_int at remote 0x7fffb83fd5c0>, api_order_=<c_int at remote 0x7fffb83fd540>, api_numNodes_=<c_int at remote 0x7fffb83fd440>, api_localNodeCoord_=<LP_c_double at remote 0x7fffb83fd3c0>, api_localNodeCoord_n_=<c_ulong at remote 0x7fffeb472e40>, api_numPrimaryNodes_=<c_int at remote 0x7fffb40744c0>, ierr=<c_int at remote 0x7fffb4074540>), tstate=0x9632b0) at ../Include/internal/pycore_ceval.h:40
#21 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>, tstate=0x9632b0) at ../Objects/call.c:330
#22 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:367
#23 0x000000000051721b in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x9be108, callable=<function at remote 0x7fffb4087ca0>, tstate=0x9632b0) at ../Include/cpython/abstract.h:118
#24 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x9be108, callable=<function at remote 0x7fffb4087ca0>) at ../Include/cpython/abstract.h:127
#25 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9632b0) at ../Python/ceval.c:5072
#26 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3487
#27 0x0000000000510a2d in _PyEval_EvalFrame (throwflag=0, f=Frame 0x9bdf90, for file /usr/share/dolfinx/demo-python/gmsh/demo_gmsh.py, line 40, in <module> (), tstate=0x9632b0)
    at ../Include/internal/pycore_ceval.h:40






-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-2-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_AU:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libgmsh4 depends on:
ii  libc6                            2.31-9
ii  libfltk-gl1.3                    1.3.5-2
ii  libfltk-images1.3                1.3.5-2
ii  libfltk1.3                       1.3.5-2
ii  libgcc-s1                        10.2.1-6
ii  libgl1                           1.3.2-1
ii  libgl2ps1.4                      1.4.2+dfsg1-1
ii  libglu1-mesa [libglu1]           9.0.1-1
ii  libgmp10                         2:6.2.1+dfsg-1
ii  libgomp1                         10.2.1-6
ii  libjpeg62-turbo                  1:2.0.5-2
ii  libmetis5                        5.1.0.dfsg-7
ii  libocct-data-exchange-7.5        7.5.0+dfsg1-4
ii  libocct-foundation-7.5           7.5.0+dfsg1-4
ii  libocct-modeling-algorithms-7.5  7.5.0+dfsg1-4
ii  libocct-modeling-data-7.5        7.5.0+dfsg1-4
ii  libocct-ocaf-7.5                 7.5.0+dfsg1-4
ii  libpng16-16                      1.6.37-3
ii  libstdc++6                       10.2.1-6
ii  libvoro++1                       0.4.6+dfsg1-3
ii  libx11-6                         2:1.7.0-2

Versions of packages libgmsh4 recommends:
ii  gmsh  4.7.1+ds1-2

libgmsh4 suggests no packages.

-- no debconf information



More information about the debian-science-maintainers mailing list