SegFault when running cookbook example: animation_dancing.py offscreen

Hi all,

I recently started tinkering with the animation examples in the cookbook and
permanently run into segmentation fault 11 errors when passing offscreen to
any of the example scripts. It appears to be somehow similar to an issue
raised about two years ago
(http://main-discussion-list-for-the-graph-tool-project.982480.n3.nabble.com/Segmentation-fault-when-running-the-animation-scripts-in-the-Cookbook-section-td4026271.html#a4026280).
However, I cannot find a solution and would be extremely greatful for any
hints to a solution for this error. Might it be related to me using python
3.6 instead of 2.7?

For the sake of example I used the animation_dancing.py script (and just
changed python to python3).

I use:
graph_tool: 2.23dev
boost: 1.63
gcc: 4.2.1
openmp: True

When calling ./animation_dancing.py offscreen the script causes a segfault.
Apparently when calling show_all at line:

108 win.show_all()

Thanks in advance for any help!

Best,
marcus

P.S. The back trace of the error and the show_config information of
graph_tool:

lldb back trace:

* thread #1: tid = 0x26ef9, 0x00007fff91beb0e9 libobjc.A.dylib`objc_msgSend
+ 41, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS
(code=EXC_I386_GPFLT)
  * frame #0: 0x00007fff91beb0e9 libobjc.A.dylib`objc_msgSend + 41
    frame #1: 0x000000011b45ab16 libgtk-3.0.dylib`register_types + 30
    frame #2: 0x00000001168943f6 libgobject-2.0.0.dylib`g_closure_invoke +
262
    frame #3: 0x00000001168a93cf
libgobject-2.0.0.dylib`signal_emit_unlocked_R + 1783
    frame #4: 0x00000001168aa022 libgobject-2.0.0.dylib`g_signal_emit_valist
+ 1876
    frame #5: 0x00000001168aa6f2 libgobject-2.0.0.dylib`g_signal_emit + 134
    frame #6: 0x000000011b4368a1 libgtk-3.0.dylib`gtk_widget_realize + 292
    frame #7: 0x000000011b4366f7 libgtk-3.0.dylib`gtk_widget_map + 95
    frame #8: 0x000000011b33c952 libgtk-3.0.dylib`gtk_offscreen_window_show
+ 59
    frame #9: 0x00000001168943f6 libgobject-2.0.0.dylib`g_closure_invoke +
262
    frame #10: 0x00000001168a91bd
libgobject-2.0.0.dylib`signal_emit_unlocked_R + 1253
    frame #11: 0x00000001168aa022
libgobject-2.0.0.dylib`g_signal_emit_valist + 1876
    frame #12: 0x00000001168aa6f2 libgobject-2.0.0.dylib`g_signal_emit + 134
    frame #13: 0x000000011b4361f2 libgtk-3.0.dylib`gtk_widget_show + 152
    frame #14: 0x00000001169d692c libffi.6.dylib`ffi_call_unix64 + 76
    frame #15: 0x00000001169d6289 libffi.6.dylib`ffi_call + 877
    frame #16: 0x000000011682b40a
_gi.cpython-36m-darwin.so`pygi_invoke_c_callable + 1842
    frame #17: 0x000000011682c170
_gi.cpython-36m-darwin.so`pygi_function_cache_invoke + 53
    frame #18: 0x000000011682393d
_gi.cpython-36m-darwin.so`_callable_info_call + 142
    frame #19: 0x000000010000ece6 Python`_PyObject_FastCallDict + 163
    frame #20: 0x00000001000b45ee Python`call_function + 194
    frame #21: 0x00000001000b1be6 Python`_PyEval_EvalFrameDefault + 26611
    frame #22: 0x00000001000b4ea4 Python`_PyEval_EvalCodeWithName + 1798
    frame #23: 0x00000001000ab34a Python`PyEval_EvalCode + 100
    frame #24: 0x00000001000d435d Python`run_mod + 58
    frame #25: 0x00000001000d4634 Python`PyRun_FileExFlags + 178
    frame #26: 0x00000001000d3c92 Python`PyRun_SimpleFileExFlags + 469
    frame #27: 0x00000001000e7eb6 Python`Py_Main + 3482
    frame #28: 0x0000000100001e01 Python`___lldb_unnamed_function1$$Python +
234
    frame #29: 0x00007fff9185a5c9 libdyld.dylib`start + 1
    frame #30: 0x00007fff9185a5c9 libdyld.dylib`start + 1

graph_tool.show_config()

version: 2.23dev (commit eb99e19a, Sun Mar 12 14:31:47 2017 +0000)
gcc version: 4.2.1
compilation flags: -DNDEBUG -I/usr/local/opt/llvm/include -fopenmp -O3
-fvisibility=default -fvisibility-inlines-hidden -Wno-deprecated -Wall
-Wextra -ftemplate-backtrace-limit=0 -L/usr/local/opt/llvm/lib
-Wl,-rpath,/usr/local/opt/llvm/lib
install prefix: /usr/local
python dir:
/usr/local/Cellar/python3/3.6.0_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
graph filtering: True
openmp: True
uname: Darwin XXXXXX.local 14.5.0 Darwin Kernel Version 14.5.0: Tue Apr 11
16:12:42 PDT 2017; root:xnu-2782.50.9.2.3~1/RELEASE_X86_64 x86_64

Hi all,

I recently started tinkering with the animation examples in the cookbook and
permanently run into segmentation fault 11 errors when passing offscreen to
any of the example scripts. It appears to be somehow similar to an issue
raised about two years ago
(http://main-discussion-list-for-the-graph-tool-project.982480.n3.nabble.com/Segmentation-fault-when-running-the-animation-scripts-in-the-Cookbook-section-td4026271.html#a4026280).
However, I cannot find a solution and would be extremely greatful for any
hints to a solution for this error. Might it be related to me using python
3.6 instead of 2.7?

For the sake of example I used the animation_dancing.py script (and just
changed python to python3).

I use:
graph_tool: 2.23dev
boost: 1.63
gcc: 4.2.1
openmp: True

You probably were not using GCC 4.2.1. This is a terribly outdated version
that has no C++14 support, and hence can't compile graph-tool. Most
certainly you used clang, which reports a "gcc version" 4.2.1.

Which clang version did you use? Did you compile graph-tool "manually" or
did you use a package manager like homebrew or macports?

When calling ./animation_dancing.py offscreen the script causes a segfault.
Apparently when calling show_all at line:

108 win.show_all()

Thanks in advance for any help!

Best,
marcus

P.S. The back trace of the error and the show_config information of
graph_tool:

lldb back trace:

* thread #1: tid = 0x26ef9, 0x00007fff91beb0e9 libobjc.A.dylib`objc_msgSend
+ 41, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS
(code=EXC_I386_GPFLT)
  * frame #0: 0x00007fff91beb0e9 libobjc.A.dylib`objc_msgSend + 41
    frame #1: 0x000000011b45ab16 libgtk-3.0.dylib`register_types + 30
    frame #2: 0x00000001168943f6 libgobject-2.0.0.dylib`g_closure_invoke +
262
    frame #3: 0x00000001168a93cf
libgobject-2.0.0.dylib`signal_emit_unlocked_R + 1783
    frame #4: 0x00000001168aa022 libgobject-2.0.0.dylib`g_signal_emit_valist
+ 1876
    frame #5: 0x00000001168aa6f2 libgobject-2.0.0.dylib`g_signal_emit + 134
    frame #6: 0x000000011b4368a1 libgtk-3.0.dylib`gtk_widget_realize + 292
    frame #7: 0x000000011b4366f7 libgtk-3.0.dylib`gtk_widget_map + 95
    frame #8: 0x000000011b33c952 libgtk-3.0.dylib`gtk_offscreen_window_show
+ 59
    frame #9: 0x00000001168943f6 libgobject-2.0.0.dylib`g_closure_invoke +
262
    frame #10: 0x00000001168a91bd
libgobject-2.0.0.dylib`signal_emit_unlocked_R + 1253
    frame #11: 0x00000001168aa022
libgobject-2.0.0.dylib`g_signal_emit_valist + 1876
    frame #12: 0x00000001168aa6f2 libgobject-2.0.0.dylib`g_signal_emit + 134
    frame #13: 0x000000011b4361f2 libgtk-3.0.dylib`gtk_widget_show + 152
    frame #14: 0x00000001169d692c libffi.6.dylib`ffi_call_unix64 + 76
    frame #15: 0x00000001169d6289 libffi.6.dylib`ffi_call + 877
    frame #16: 0x000000011682b40a
_gi.cpython-36m-darwin.so`pygi_invoke_c_callable + 1842
    frame #17: 0x000000011682c170
_gi.cpython-36m-darwin.so`pygi_function_cache_invoke + 53
    frame #18: 0x000000011682393d
_gi.cpython-36m-darwin.so`_callable_info_call + 142
    frame #19: 0x000000010000ece6 Python`_PyObject_FastCallDict + 163
    frame #20: 0x00000001000b45ee Python`call_function + 194
    frame #21: 0x00000001000b1be6 Python`_PyEval_EvalFrameDefault + 26611
    frame #22: 0x00000001000b4ea4 Python`_PyEval_EvalCodeWithName + 1798
    frame #23: 0x00000001000ab34a Python`PyEval_EvalCode + 100
    frame #24: 0x00000001000d435d Python`run_mod + 58
    frame #25: 0x00000001000d4634 Python`PyRun_FileExFlags + 178
    frame #26: 0x00000001000d3c92 Python`PyRun_SimpleFileExFlags + 469
    frame #27: 0x00000001000e7eb6 Python`Py_Main + 3482
    frame #28: 0x0000000100001e01 Python`___lldb_unnamed_function1$$Python +
234
    frame #29: 0x00007fff9185a5c9 libdyld.dylib`start + 1
    frame #30: 0x00007fff9185a5c9 libdyld.dylib`start + 1

This looks like a GTK+ bug to me...