Ondrej Certik | 20 Jul 03:16

show mesh in mayavi2, segfault

Hi,

I'd like to visualize a finite element mesh in mayavi2. I have it in
.vtk file. Is there a way to tell mayavi2 to show it? I didn't figure
it out.

So I adapted this script:

http://paste.debian.net/11654/

and it works fine, it shows 4 triangles. Now I'd like to import our
FEM package that can read the .vtk file and get the mesh data, but
mayavi2 segfaults, if I uncomment the line 15 in the above script...
How is that possible?

Here is the gdb trace:

$ gdb python
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) run show_grid.py
Starting program: /usr/bin/python show_grid.py
[Thread debugging using libthread_db enabled]
[New Thread 0xb7d768c0 (LWP 30519)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7d768c0 (LWP 30519)]
0x0811614c in PyFrame_New (tstate=0x0, code=0xb7d45770, globals=0xb7cf5b54,
    locals=0x0) at ../Objects/frameobject.c:559
559	../Objects/frameobject.c: No such file or directory.
	in ../Objects/frameobject.c
(gdb) bt
#0  0x0811614c in PyFrame_New (tstate=0x0, code=0xb7d45770,
    globals=0xb7cf5b54, locals=0x0) at ../Objects/frameobject.c:559
#1  0x080cfc99 in PyEval_EvalCodeEx (co=0xb7d45770, globals=0xb7cf5b54,
    locals=0x0, args=0xc51add0, argcount=3, kws=0x0, kwcount=0,
    defs=0xb7d032b8, defcount=2, closure=0x0) at ../Python/ceval.c:2633
#2  0x08116dde in function_call (func=0xb7cfd1ec, arg=0xc51adc4, kw=0x0)
    at ../Objects/funcobject.c:517
#3  0x0805f49d in call_function_tail (callable=0xb7cfd1ec, args=0xc51adc4)
    at ../Objects/abstract.c:1861
#4  0x0805f5f6 in PyObject_CallFunction (callable=0xb7cfd1ec,
    format=0x8137dab "sOn") at ../Objects/abstract.c:1916
#5  0x080dc562 in PyErr_WarnEx (category=0xa3d877c,
    message=0xc5654d0 "gtk_widget_set_colormap: assertion
`!GTK_WIDGET_REALIZED (widget)' failed", stack_level=1) at
../Python/errors.c:659
#6  0xb6340e7f in ?? ()
   from /var/lib/python-support/python2.5/gtk-2.0/gobject/_gobject.so
#7  0x0a3d877c in ?? ()
#8  0x0c5654d0 in ?? ()
#9  0x00000001 in ?? ()
#10 0xb6793e6a in g_private_set_posix_impl (private_key=0xb5f48557, value=0x8)
    at /tmp/buildd/glib2.0-2.16.4/gthread/gthread-posix.c:281
#11 0xb6281e4a in IA__g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_CRITICAL,
    format=0xb62b91cb "%s: assertion `%s' failed", args1=0xbfa4fddc "\002Z")
---Type <return> to continue, or q <return> to quit---
    at /tmp/buildd/glib2.0-2.16.4/glib/gmessages.c:474
#12 0xb62821b6 in IA__g_log (log_domain=0xb5f48557 "Gtk",
    log_level=G_LOG_LEVEL_CRITICAL,
    format=0xb62b91cb "%s: assertion `%s' failed")
    at /tmp/buildd/glib2.0-2.16.4/glib/gmessages.c:517
#13 0xb62823eb in IA__g_return_if_fail_warning (log_domain=0xb5f48557 "Gtk",
    pretty_function=0xb6005a02 "gtk_widget_set_colormap",
    expression=0xb60039c5 "!GTK_WIDGET_REALIZED (widget)")
    at /tmp/buildd/glib2.0-2.16.4/glib/gmessages.c:532
#14 0xb5f0950c in IA__gtk_widget_set_colormap (widget=0xbb6d5b0,
    colormap=0xc566048) at /tmp/buildd/gtk+2.0-2.12.11/gtk/gtkwidget.c:7415
#15 0xb2028197 in wxGLCanvas::Create () from /usr/lib/libwx_gtk2u_gl-2.6.so.0
#16 0xb2028500 in wxGLCanvas::wxGLCanvas ()
   from /usr/lib/libwx_gtk2u_gl-2.6.so.0
#17 0xb2abb291 in ?? ()
   from /usr/lib/python2.5/site-packages/wx-2.6-gtk2-unicode/wx/_glcanvas.so
#18 0x0805d447 in PyObject_Call (func=0x0, arg=0xc4dc23c, kw=0xc51ee84)
    at ../Objects/abstract.c:1861
#19 0x080cd47a in PyEval_EvalFrameEx (f=0xc55ff3c, throwflag=0)
    at ../Python/ceval.c:3855
#20 0x080d02b5 in PyEval_EvalCodeEx (co=0xb41d728, globals=0xb393824,
    locals=0x0, args=0xc4d1e78, argcount=6, kws=0x0, kwcount=0, defs=0x0,
    defcount=0, closure=0x0) at ../Python/ceval.c:2838
---Type <return> to continue, or q <return> to quit---
#21 0x08116dde in function_call (func=0xb42133c, arg=0xc4d1e6c, kw=0x0)
    at ../Objects/funcobject.c:517
#22 0x0805d447 in PyObject_Call (func=0x0, arg=0xc4d1e6c, kw=0x0)
    at ../Objects/abstract.c:1861
#23 0x0806362f in instancemethod_call (func=0xb42133c, arg=0xc4d1e6c, kw=0x0)
    at ../Objects/classobject.c:2519
#24 0x0805d447 in PyObject_Call (func=0x0, arg=0xc4d1e6c, kw=0x0)
    at ../Objects/abstract.c:1861
#25 0x080cc81f in PyEval_EvalFrameEx (f=0xc55fd84, throwflag=0)
    at ../Python/ceval.c:3786
#26 0x080d02b5 in PyEval_EvalCodeEx (co=0xb413800, globals=0xb37b934,
    locals=0x0, args=0xc51ac68, argcount=3, kws=0xc55ba00, kwcount=1,
    defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:2838
#27 0x08116d66 in function_call (func=0xb421534, arg=0xc51ac5c, kw=0xc51ed74)
    at ../Objects/funcobject.c:517
#28 0x0805d447 in PyObject_Call (func=0x0, arg=0xc51ac5c, kw=0xc51ed74)
    at ../Objects/abstract.c:1861
#29 0x0806362f in instancemethod_call (func=0xb421534, arg=0xc51ac5c,
    kw=0xc51ed74) at ../Objects/classobject.c:2519
#30 0x0805d447 in PyObject_Call (func=0x0, arg=0xc38feac, kw=0xc51ed74)
    at ../Objects/abstract.c:1861
#31 0x080a5d08 in slot_tp_init (self=0xc4c356c, args=0xc38feac, kwds=0xc51ed74)
    at ../Objects/typeobject.c:4943
---Type <return> to continue, or q <return> to quit---
#32 0x080ad4c1 in type_call (type=0xb2e6474, args=0xc38feac, kwds=0xc51ed74)
    at ../Objects/typeobject.c:436
#33 0x0805d447 in PyObject_Call (func=0x0, arg=0xc38feac, kw=0xc51ed74)
    at ../Objects/abstract.c:1861
#34 0x080cc81f in PyEval_EvalFrameEx (f=0xc55ca0c, throwflag=0)
    at ../Python/ceval.c:3786
#35 0x080cfb6d in PyEval_EvalFrameEx (f=0xc55a1b4, throwflag=0)
    at ../Python/ceval.c:3661
#36 0x080cfb6d in PyEval_EvalFrameEx (f=0xc55a04c, throwflag=0)
    at ../Python/ceval.c:3661
#37 0x080d02b5 in PyEval_EvalCodeEx (co=0xb547a40, globals=0xb5634f4,
    locals=0x0, args=0xc4b6198, argcount=2, kws=0xc503a00, kwcount=3,
    defs=0xb3766d8, defcount=1, closure=0x0) at ../Python/ceval.c:2838
#38 0x08116d66 in function_call (func=0xb3dfb54, arg=0xc4b618c, kw=0xc4eb714)
    at ../Objects/funcobject.c:517
#39 0x0805d447 in PyObject_Call (func=0x0, arg=0xc4b618c, kw=0xc4eb714)
    at ../Objects/abstract.c:1861
#40 0x080cd47a in PyEval_EvalFrameEx (f=0xc559ee4, throwflag=0)
    at ../Python/ceval.c:3855
#41 0x080d02b5 in PyEval_EvalCodeEx (co=0xb078380, globals=0xb07446c,
    locals=0x0, args=0xc2b41b8, argcount=2, kws=0xc4fb810, kwcount=3,
    defs=0xb415db8, defcount=1, closure=0x0) at ../Python/ceval.c:2838
#42 0x08116d66 in function_call (func=0xb421c34, arg=0xc2b41ac, kw=0xc4cf824)
---Type <return> to continue, or q <return> to quit---
    at ../Objects/funcobject.c:517
#43 0x0805d447 in PyObject_Call (func=0x0, arg=0xc2b41ac, kw=0xc4cf824)
    at ../Objects/abstract.c:1861
#44 0x080cd47a in PyEval_EvalFrameEx (f=0xc559d7c, throwflag=0)
    at ../Python/ceval.c:3855
#45 0x080d02b5 in PyEval_EvalCodeEx (co=0xb078020, globals=0xb41a2d4,
    locals=0x0, args=0xc431718, argcount=2, kws=0xc500de0, kwcount=3,
    defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:2838
#46 0x08116d66 in function_call (func=0xb42afb4, arg=0xc43170c, kw=0xc4cf1c4)
    at ../Objects/funcobject.c:517
#47 0x0805d447 in PyObject_Call (func=0x0, arg=0xc43170c, kw=0xc4cf1c4)
    at ../Objects/abstract.c:1861
#48 0x0806362f in instancemethod_call (func=0xb42afb4, arg=0xc43170c,
    kw=0xc4cf1c4) at ../Objects/classobject.c:2519
#49 0x0805d447 in PyObject_Call (func=0x0, arg=0xc495dec, kw=0xc4cf1c4)
    at ../Objects/abstract.c:1861
#50 0x080a5d08 in slot_tp_init (self=0xc4e45cc, args=0xc495dec, kwds=0xc4cf1c4)
    at ../Objects/typeobject.c:4943
#51 0x080ad4c1 in type_call (type=0xb2f16dc, args=0xc495dec, kwds=0xc4cf1c4)
    at ../Objects/typeobject.c:436
#52 0x0805d447 in PyObject_Call (func=0x0, arg=0xc495dec, kw=0xc4cf1c4)
    at ../Objects/abstract.c:1861
#53 0x080cc81f in PyEval_EvalFrameEx (f=0xc559a6c, throwflag=0)
---Type <return> to continue, or q <return> to quit---
    at ../Python/ceval.c:3786
#54 0x080cfb6d in PyEval_EvalFrameEx (f=0xbcbf054, throwflag=0)
    at ../Python/ceval.c:3661
#55 0x080cfb6d in PyEval_EvalFrameEx (f=0xc5598e4, throwflag=0)
    at ../Python/ceval.c:3661
#56 0x080cfb6d in PyEval_EvalFrameEx (f=0xc55976c, throwflag=0)
    at ../Python/ceval.c:3661
#57 0x080cfb6d in PyEval_EvalFrameEx (f=0xc5595fc, throwflag=0)
    at ../Python/ceval.c:3661
#58 0x080cfb6d in PyEval_EvalFrameEx (f=0xc559494, throwflag=0)
    at ../Python/ceval.c:3661
#59 0x080d02b5 in PyEval_EvalCodeEx (co=0xabcbbf0, globals=0xabcd2d4,
    locals=0x0, args=0xc559314, argcount=2, kws=0xc55931c, kwcount=0,
    defs=0xabcedd8, defcount=1, closure=0x0) at ../Python/ceval.c:2838
#60 0x080ce6a0 in PyEval_EvalFrameEx (f=0xc5591d4, throwflag=0)
    at ../Python/ceval.c:3671
#61 0x080cfb6d in PyEval_EvalFrameEx (f=0xc5084d4, throwflag=0)
    at ../Python/ceval.c:3661
#62 0x080cfb6d in PyEval_EvalFrameEx (f=0xc508364, throwflag=0)
    at ../Python/ceval.c:3661
#63 0x080d02b5 in PyEval_EvalCodeEx (co=0xbd6b338, globals=0xbde3714,
    locals=0x0, args=0xc50501c, argcount=0, kws=0xc50501c, kwcount=1,
    defs=0xbd9b138, defcount=1, closure=0x0) at ../Python/ceval.c:2838
---Type <return> to continue, or q <return> to quit---
#64 0x080ce6a0 in PyEval_EvalFrameEx (f=0xc504ed4, throwflag=0)
    at ../Python/ceval.c:3671
#65 0x080cfb6d in PyEval_EvalFrameEx (f=0xbb6d80c, throwflag=0)
    at ../Python/ceval.c:3661
#66 0x080d02b5 in PyEval_EvalCodeEx (co=0xbc75ba8, globals=0xb7d4facc,
    locals=0xb7d4facc, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0,
    defcount=0, closure=0x0) at ../Python/ceval.c:2838
#67 0x080d04c7 in PyEval_EvalCode (co=0xbc75ba8, globals=0xb7d4facc,
    locals=0xb7d4facc) at ../Python/ceval.c:494
#68 0x080ed8ff in PyRun_FileExFlags (fp=0xbb6d800,
    filename=0xa3f6494 "show_grid.py", start=257, globals=0xb7d4facc,
    locals=0xb7d4facc, closeit=1, flags=0x0) at ../Python/pythonrun.c:1273
#69 0x080c767e in builtin_execfile (self=0x0, args=0xbc82734)
    at ../Python/bltinmodule.c:703
#70 0x080ce9b1 in PyEval_EvalFrameEx (f=0xbcdb4a4, throwflag=0)
    at ../Python/ceval.c:3575
#71 0x080cfb6d in PyEval_EvalFrameEx (f=0xbcdb644, throwflag=0)
    at ../Python/ceval.c:3661
#72 0x080cfb6d in PyEval_EvalFrameEx (f=0xbcd580c, throwflag=0)
    at ../Python/ceval.c:3661
#73 0x080d02b5 in PyEval_EvalCodeEx (co=0xa40e728, globals=0xa41813c,
    locals=0x0, args=0xbc7f8d8, argcount=1, kws=0xbcd6fb0, kwcount=0,
    defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:2838
---Type <return> to continue, or q <return> to quit---
#74 0x08116d66 in function_call (func=0xafa00d4, arg=0xbc7f8cc, kw=0xba5bb54)
    at ../Objects/funcobject.c:517
#75 0x0805d447 in PyObject_Call (func=0x0, arg=0xbc7f8cc, kw=0xba5bb54)
    at ../Objects/abstract.c:1861
#76 0x080cd47a in PyEval_EvalFrameEx (f=0xbb54c6c, throwflag=0)
    at ../Python/ceval.c:3855
#77 0x080d02b5 in PyEval_EvalCodeEx (co=0xa6dd728, globals=0xa59113c,
    locals=0x0, args=0xbc7b6d8, argcount=1, kws=0x0, kwcount=0, defs=0x0,
    defcount=0, closure=0x0) at ../Python/ceval.c:2838
#78 0x08116dde in function_call (func=0xb9ee994, arg=0xbc7b6cc, kw=0x0)
    at ../Objects/funcobject.c:517
#79 0x0805d447 in PyObject_Call (func=0x0, arg=0xbc7b6cc, kw=0x0)
    at ../Objects/abstract.c:1861
#80 0x080c852c in PyEval_CallObjectWithKeywords (func=0xb9ee994,
    arg=0xbc7b6cc, kw=0x0) at ../Python/ceval.c:3444
#81 0xb5442b38 in wxPyCallback::EventThunker ()
   from /usr/lib/python2.5/site-packages/wx-2.6-gtk2-unicode/wx/_core_.so
#82 0xb4e39a21 in wxAppConsole::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#83 0xb4ec79db in wxEvtHandler::ProcessEventIfMatches ()
   from /usr/lib/libwx_baseu-2.6.so.0
#84 0xb4ec7bc2 in wxEvtHandler::SearchDynamicEventTable ()
   from /usr/lib/libwx_baseu-2.6.so.0
---Type <return> to continue, or q <return> to quit---
#85 0xb4ec7c96 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#86 0xb4ec8170 in wxEvtHandler::ProcessPendingEvents ()
   from /usr/lib/libwx_baseu-2.6.so.0
#87 0xb4e39edf in wxAppConsole::ProcessPendingEvents ()
   from /usr/lib/libwx_baseu-2.6.so.0
#88 0xb5049edc in ?? () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#89 0xb6276391 in g_idle_dispatch (source=0xab90168, callback=0, user_data=0x0)
    at /tmp/buildd/glib2.0-2.16.4/glib/gmain.c:4090
#90 0xb62782f1 in IA__g_main_context_dispatch (context=0xa45e7b8)
    at /tmp/buildd/glib2.0-2.16.4/glib/gmain.c:2012
#91 0xb627b983 in g_main_context_iterate (context=0xa45e7b8, block=1,
    dispatch=1, self=0xa44b728) at /tmp/buildd/glib2.0-2.16.4/glib/gmain.c:2645
#92 0xb627bea2 in IA__g_main_loop_run (loop=0xbcd09b8)
    at /tmp/buildd/glib2.0-2.16.4/glib/gmain.c:2853
#93 0xb5dd8b99 in IA__gtk_main ()
    at /tmp/buildd/gtk+2.0-2.12.11/gtk/gtkmain.c:1163
#94 0xb5064ceb in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#95 0xb50fc6ce in wxAppBase::MainLoop ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#96 0xb54409f2 in wxPyApp::MainLoop ()
   from /usr/lib/python2.5/site-packages/wx-2.6-gtk2-unicode/wx/_core_.so
#97 0xb546b4dc in ?? ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/python2.5/site-packages/wx-2.6-gtk2-unicode/wx/_core_.so
#98 0x0805d447 in PyObject_Call (func=0x0, arg=0xbc7b7ac, kw=0xbc81bdc)
    at ../Objects/abstract.c:1861
#99 0x080cd47a in PyEval_EvalFrameEx (f=0xbcd0854, throwflag=0)
    at ../Python/ceval.c:3855
#100 0x080d02b5 in PyEval_EvalCodeEx (co=0xa6584e8, globals=0xa59113c,
    locals=0x0, args=0xb817118, argcount=1, kws=0x0, kwcount=0, defs=0x0,
    defcount=0, closure=0x0) at ../Python/ceval.c:2838
#101 0x08116dde in function_call (func=0xa712a74, arg=0xb81710c, kw=0x0)
    at ../Objects/funcobject.c:517
#102 0x0805d447 in PyObject_Call (func=0x0, arg=0xb81710c, kw=0x0)
    at ../Objects/abstract.c:1861
#103 0x0806362f in instancemethod_call (func=0xa712a74, arg=0xb81710c, kw=0x0)
    at ../Objects/classobject.c:2519
#104 0x0805d447 in PyObject_Call (func=0x0, arg=0xb81710c, kw=0x0)
    at ../Objects/abstract.c:1861
#105 0x080cc81f in PyEval_EvalFrameEx (f=0xbcd06fc, throwflag=0)
    at ../Python/ceval.c:3786
#106 0x080cfb6d in PyEval_EvalFrameEx (f=0xb094784, throwflag=0)
    at ../Python/ceval.c:3661
#107 0x080cfb6d in PyEval_EvalFrameEx (f=0xa4b961c, throwflag=0)
    at ../Python/ceval.c:3661
#108 0x080d02b5 in PyEval_EvalCodeEx (co=0xa411ba8, globals=0xa4184f4,
---Type <return> to continue, or q <return> to quit---
    locals=0x0, args=0xa77882c, argcount=2, kws=0xa778834, kwcount=0,
    defs=0xa4cbdd8, defcount=2, closure=0x0) at ../Python/ceval.c:2838
#109 0x080ce6a0 in PyEval_EvalFrameEx (f=0xa7786f4, throwflag=0)
    at ../Python/ceval.c:3671
#110 0x080cfb6d in PyEval_EvalFrameEx (f=0xa5e3ee4, throwflag=0)
    at ../Python/ceval.c:3661
#111 0x080cfb6d in PyEval_EvalFrameEx (f=0x991110c, throwflag=0)
    at ../Python/ceval.c:3661
#112 0x080d02b5 in PyEval_EvalCodeEx (co=0xb7d006e0, globals=0xb7d4facc,
    locals=0xb7d4facc, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0,
    defcount=0, closure=0x0) at ../Python/ceval.c:2838
#113 0x080d04c7 in PyEval_EvalCode (co=0xb7d006e0, globals=0xb7d4facc,
    locals=0xb7d4facc) at ../Python/ceval.c:494
#114 0x080ed8ff in PyRun_FileExFlags (fp=0x98b8008,
    filename=0xbfa56760 "show_grid.py", start=257, globals=0xb7d4facc,
    locals=0xb7d4facc, closeit=1, flags=0xbfa54f88)
    at ../Python/pythonrun.c:1273
#115 0x080edbca in PyRun_SimpleFileExFlags (fp=0x98b8008,
    filename=0xbfa56760 "show_grid.py", closeit=1, flags=0xbfa54f88)
    at ../Python/pythonrun.c:879
#116 0x08059327 in Py_Main (argc=1, argv=0xbfa55054) at ../Modules/main.c:532
#117 0x080586f2 in main (argc=Cannot access memory at address 0x0
) at ../Modules/python.c:23
(gdb)
(gdb) quit
The program is running.  Exit anyway? (y or n)

The sfepy package can be found at: http://code.google.com/p/sfepy/

Do you have any pointers? If it segfaults, its not very usable, so I'd
like to fix it. Looking at Objects/frameobject.c:559 it contains:

    PyFrameObject *back = tstate->frame;

So it seems like some creeping null pointer or reference counting problem?

Ondrej

Gmane