Using a copy of a MeshEditor mesh causes Segfaults

Issue #404 resolved
Stephan Schmidt created an issue

My python version of Dolfin 1.4.0+ segfaults if I use the copy of a MeshEditor mesh.

I use the mesh editor (one processor, no mpi) to generate a very simple two element mesh.

mesh = Mesh()
editor = MeshEditor()
editor.open(mesh, 2, 2)
...
Create the mesh...
...
editor.close()

If I solve e.g. Laplace's equation on "mesh" now, everything works. But if I solve Laplace's equation on "Mesh(mesh)", then I get a nondescript segfault.

I apologize in advance if this is due to a misuse of the MeshEditor on my side. A minimal example is attached...

Comments (9)

  1. Stephan Schmidt reporter

    This is the full segfault:
    schmidt@wma7117:~/neu/Fermentation> python MeshEditorSegfault.py
    [wma7117:07185] Process received signal
    [wma7117:07185] Signal: Segmentation fault (11)
    [wma7117:07185] Signal code: Address not mapped (1)
    [wma7117:07185] Failing at address: (nil)
    [wma7117:07185] [ 0] /lib64/libpthread.so.0(+0xf9f0) [0x7f52747ab9f0]
    [wma7117:07185] [ 1] /home/schmidt/FEniCS /lib/libdolfin.so.1.4(_ZN6dolfin13DofMapBuilder20build_ufc_node_graphERSt6vectorIS1_IiSaIiEESaIS3_EERS1_ImSaImEES9_St10shared_ptrIKN3ufc6dofmapEERKNS_4MeshESA_IKNS_9SubDomainEEm+0x912) [0x7f526cc3ce12]
    [wma7117:07185] [ 2] /home/schmidt/FEniCS/lib/libdolfin.so.1.4(_ZN6dolfin13DofMapBuilder5buildERNS_6DofMapERKNS_4MeshESt10shared_ptrIKNS_9SubDomainEE+0xbd9) [0x7f526cc44ac9]
    [wma7117:07185] [ 3] /home/schmidt/FEniCS/lib/libdolfin.so.1.4(_ZN6dolfin6DofMapC1ESt10shared_ptrIKN3ufc6dofmapEERKNS_4MeshE+0x1f4) [0x7f526cc329d4]
    [wma7117:07185] [ 4] /home/schmidt/FEniCS/lib64/python2.7/site-packages/dolfin/cpp/_fem.so(+0x94494) [0x7f5244d47494]
    [wma7117:07185] [ 5] /usr/lib64/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x265b) [0x7f5274a82fbb]
    [wma7117:07185] [ 6] /usr/lib64/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x221) [0x7f5274a87811]
    [wma7117:07185] [ 7] /usr/lib64/libpython2.7.so.1.0(+0xb1a7f) [0x7f5274a6ba7f]
    [wma7117:07185] [ 8] /usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x46) [0x7f5274a66f16]
    [wma7117:07185] [ 9] /usr/lib64/libpython2.7.so.1.0(+0xaddfa) [0x7f5274a67dfa]
    [wma7117:07185] [10] /usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x46) [0x7f5274a66f16]
    [wma7117:07185] [11] /usr/lib64/libpython2.7.so.1.0(+0xbe039) [0x7f5274a78039]
    [wma7117:07185] [12] /usr/lib64/libpython2.7.so.1.0(+0xbd66a) [0x7f5274a7766a]
    [wma7117:07185] [13] /usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x46) [0x7f5274a66f16]
    [wma7117:07185] [14] /usr/lib64/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x144e) [0x7f5274a81dae]
    [wma7117:07185] [15] /usr/lib64/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x221) [0x7f5274a87811]
    [wma7117:07185] [16] /usr/lib64/libpython2.7.so.1.0(+0xb1a7f) [0x7f5274a6ba7f]
    [wma7117:07185] [17] /usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x46) [0x7f5274a66f16]
    [wma7117:07185] [18] /usr/lib64/libpython2.7.so.1.0(+0xaddfa) [0x7f5274a67dfa]
    [wma7117:07185] [19] /usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x46) [0x7f5274a66f16]
    [wma7117:07185] [20] /usr/lib64/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x144e) [0x7f5274a81dae]
    [wma7117:07185] [21] /usr/lib64/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x4f6) [0x7f5274a87ae6]
    [wma7117:07185] [22] /usr/lib64/libpython2.7.so.1.0(+0xb1a7f) [0x7f5274a6ba7f]
    [wma7117:07185] [23] /usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x46) [0x7f5274a66f16]
    [wma7117:07185] [24] /usr/lib64/libpython2.7.so.1.0(+0xaddfa) [0x7f5274a67dfa]
    [wma7117:07185] [25] /usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x46) [0x7f5274a66f16]
    [wma7117:07185] [26] /usr/lib64/libpython2.7.so.1.0(+0xbe039) [0x7f5274a78039]
    [wma7117:07185] [27] /usr/lib64/libpython2.7.so.1.0(+0xbd66a) [0x7f5274a7766a]
    [wma7117:07185] [28] /usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x46) [0x7f5274a66f16]
    [wma7117:07185] [29] /usr/lib64/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x144e) [0x7f5274a81dae]
    [wma7117:07185] End of error message
    Segmentation fault

  2. Prof Garth Wells

    @Epoxid Actually, your usage is fine. Bug is in the sloppy implementation of mesh cell orientation in DOLFIN. There were a number of inconsistencies which I'll push a fix for shortly.

  3. Log in to comment