2.9.4.1 crash with backtrace

Encountered another new fatal error on startup with 2.9.4.1 running on Python 2.7.3 64-bit RHEL6. Any ideas?

Gdk:ERROR:gdkregion-generic.c:1108:miUnionNonO: assertion failed: (y1 < y2)

==== BACKTRACE =====
(gdb) bt
#0 0x000000333ea328a5 in raise () from /lib64/libc.so.6
#1 0x000000333ea34085 in abort () from /lib64/libc.so.6
#2 0x000000334025ea0f in g_assertion_message () from /lib64/libglib-2.0.so.0
#3 0x000000334025efb0 in g_assertion_message_expr () from /lib64/libglib-2.0.so.0
#4 0x0000003869633143 in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#5 0x00000038696325a7 in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#6 0x0000003869633c77 in gdk_region_union () from /usr/lib64/libgdk-x11-2.0.so.0
#7 0x0000003869641ccf in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#8 0x000000386a477695 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#9 0x000000386a478b93 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#10 0x000000386a47f346 in gtk_widget_queue_resize () from /usr/lib64/libgtk-x11-2.0.so.0
#11 0x000000386a393a97 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#12 0x0000003340e0bb3e in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#13 0x0000003340e2063c in ?? () from /lib64/libgobject-2.0.so.0
#14 0x0000003340e220af in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#15 0x0000003340e225f3 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#16 0x00007fd594c63723 in wxToolBar::DoToggleTool(wxToolBarToolBase*, bool) () from /disk01/lib/libwx_gtk2u_core-2.9.so.4
#17 0x00007fd5935b7c90 in _wrap_ToolBarBase_ToggleTool (args=, kwargs=) at src/gtk/_controls_wrap.cpp:25046
#18 0x00007fd59d2d2c0e in ext_do_call (f=, throwflag=) at Python/ceval.c:4331
#19 PyEval_EvalFrameEx (f=, throwflag=) at Python/ceval.c:2705
#20 0x00007fd59d2d470e in PyEval_EvalCodeEx (co=0x21776b0, globals=, locals=, args=, argcount=3, kws=0x398d670, kwcount=0,
defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#21 0x00007fd59d2d2b40 in fast_function (f=, throwflag=) at Python/ceval.c:4117
#22 call_function (f=, throwflag=) at Python/ceval.c:4042
#23 PyEval_EvalFrameEx (f=, throwflag=) at Python/ceval.c:2666
#24 0x00007fd59d2d470e in PyEval_EvalCodeEx (co=0x2e159b0, globals=, locals=, args=, argcount=2, kws=0x7fd59d198068, kwcount=
0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#25 0x00007fd59d253288 in function_call (func=0x2ecb410, arg=0x7fd4f41cd6c8, kw=0x34052c0) at Objects/funcobject.c:526
#26 0x00007fd59d224103 in PyObject_Call (func=0x2ecb410, arg=, kw=) at Objects/abstract.c:2529
#27 0x00007fd59d2d15c8 in ext_do_call (f=, throwflag=) at Python/ceval.c:4334
#28 PyEval_EvalFrameEx (f=, throwflag=) at Python/ceval.c:2705
#29 0x00007fd59d2d470e in PyEval_EvalCodeEx (co=0x1b870b0, globals=, locals=, args=, argcount=1, kws=0x0, kwcount=0, defs=0x0,
—Type to continue, or q to quit—
defcount=0, closure=0x0) at Python/ceval.c:3253
#30 0x00007fd59d253181 in function_call (func=0x3055d70, arg=0x7fd59d0ffc90, kw=0x0) at Objects/funcobject.c:526
#31 0x00007fd59d224103 in PyObject_Call (func=0x3055d70, arg=, kw=) at Objects/abstract.c:2529
#32 0x00007fd59d2cc4b3 in PyEval_CallObjectWithKeywords (func=0x3055d70, arg=0x7fd59d0ffc90, kw=) at Python/ceval.c:3890
#33 0x00007fd595b45e0e in wxPyCallback::EventThunker (this=, event=…) at src/helpers.cpp:1788
#34 0x00007fd59428389c in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from /disk01/lib/libwx_baseu-2.9.so.4
#35 0x00007fd5942841b6 in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () from /disk01/lib/libwx_baseu-2.9.so.4
#36 0x00007fd594284bd8 in wxEvtHandler::TryHereOnly(wxEvent&) () from /disk01/lib/libwx_baseu-2.9.so.4
#37 0x00007fd594284f83 in wxEvtHandler::ProcessEventLocally(wxEvent&) () from /disk01/lib/libwx_baseu-2.9.so.4
#38 0x00007fd594284fe5 in wxEvtHandler::ProcessEvent(wxEvent&) () from /disk01/lib/libwx_baseu-2.9.so.4
#39 0x00007fd594285731 in wxEvtHandler::ProcessPendingEvents() () from /disk01/lib/libwx_baseu-2.9.so.4
#40 0x00007fd594164b1a in wxAppConsoleBase::ProcessPendingEvents() () from /disk01/lib/libwx_baseu-2.9.so.4
#41 0x00007fd594bb565d in wxApp::DoIdle() () from /disk01/lib/libwx_gtk2u_core-2.9.so.4
#42 0x00007fd594bb5773 in wxapp_idle_callback () from /disk01/lib/libwx_gtk2u_core-2.9.so.4
#43 0x0000003340238f0e in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#44 0x000000334023c938 in ?? () from /lib64/libglib-2.0.so.0
#45 0x000000334023cd55 in g_main_loop_run () from /lib64/libglib-2.0.so.0
#46 0x000000386a34c307 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#47 0x00007fd594bca99a in wxGUIEventLoop::Run() () from /disk01/lib/libwx_gtk2u_core-2.9.so.4
#48 0x00007fd594163b33 in wxAppConsoleBase::MainLoop() () from /disk01/lib/libwx_baseu-2.9.so.4
#49 0x00007fd595b420b7 in wxPyApp::MainLoop (this=0x2f518a0) at src/helpers.cpp:215
#50 0x00007fd595bcd358 in _wrap_PyApp_MainLoop (args=) at src/gtk/_core_wrap.cpp:34291
#51 0x00007fd59d2d2c0e in ext_do_call (f=, throwflag=) at Python/ceval.c:4331
#52 PyEval_EvalFrameEx (f=, throwflag=) at Python/ceval.c:2705
#53 0x00007fd59d2d470e in PyEval_EvalCodeEx (co=0x1a6bf30, globals=, locals=, args=, argcount=1, kws=0x0, kwcount=0, defs=0x0,
defcount=0, closure=0x0) at Python/ceval.c:3253
#54 0x00007fd59d253181 in function_call (func=0x1d13c08, arg=0x2ec4dd0, kw=0x0) at Objects/funcobject.c:526
#55 0x00007fd59d224103 in PyObject_Call (func=0x1d13c08, arg=, kw=) at Objects/abstract.c:2529
#56 0x00007fd59d23679f in instancemethod_call (func=0x1d13c08, arg=0x2ec4dd0, kw=0x0) at Objects/classobject.c:2578
#57 0x00007fd59d224103 in PyObject_Call (func=0x303c1e0, arg=, kw=) at Objects/abstract.c:2529
#58 0x00007fd59d2d2282 in do_call (f=, throwflag=) at Python/ceval.c:4239
#59 call_function (f=, throwflag=) at Python/ceval.c:4044
—Type to continue, or q to quit—
#60 PyEval_EvalFrameEx (f=, throwflag=) at Python/ceval.c:2666
#61 0x00007fd59d2d3d15 in fast_function (f=, throwflag=) at Python/ceval.c:4107
#62 call_function (f=, throwflag=) at Python/ceval.c:4042
#63 PyEval_EvalFrameEx (f=, throwflag=) at Python/ceval.c:2666
#64 0x00007fd59d2d470e in PyEval_EvalCodeEx (co=0x7fd59d11c6b0, globals=, locals=, args=, argcount=0, kws=0x0, kwcount=0, defs=
0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#65 0x00007fd59d2d4822 in PyEval_EvalCode (co=, globals=, locals=) at Python/ceval.c:667
#66 0x00007fd59d2f45b0 in run_mod (fp=0x18ef3c0, filename=, start=, globals=0x1869160, locals=0x1869160, closeit=1, flags=0x7fffd171ead0)
at Python/pythonrun.c:1353
#67 PyRun_FileExFlags (fp=0x18ef3c0, filename=, start=, globals=0x1869160, locals=0x1869160, closeit=1, flags=0x7fffd171ead0)
at Python/pythonrun.c:1339
#68 0x00007fd59d2f477c in PyRun_SimpleFileExFlags (fp=0x18ef3c0, filename=0x7fffd1720670 “/disk01/data/davidsj2/dev_run_product/dist/python/goes/ast/app/ui/gui/main.py”, closeit=1, flags=
0x7fffd171ead0) at Python/pythonrun.c:943
#69 0x00007fd59d308a7e in Py_Main (argc=, argv=) at Modules/main.c:639
#70 0x000000333ea1ecdd in __libc_start_main () from /lib64/libc.so.6
#71 0x0000000000400649 in _start ()

At the point you call ToggleTool is there anything odd about the state of the toolbar? Has its Realize method been called already? Has it not been shown on screen yet? Is it not attached to a wx.Frame yet?

···

On 1/8/13 5:53 PM, Mears wrote:

Encountered another new fatal error on startup with 2.9.4.1 running on
Python 2.7.3 64-bit RHEL6. Any ideas?

Gdk:ERROR:gdkregion-generic.c:1108:miUnionNonO: assertion failed: (y1 < y2)

==== BACKTRACE =====
(gdb) bt
#0 0x000000333ea328a5 in raise () from /lib64/libc.so.6
#1 0x000000333ea34085 in abort () from /lib64/libc.so.6
#2 0x000000334025ea0f in g_assertion_message () from
/lib64/libglib-2.0.so.0
#3 0x000000334025efb0 in g_assertion_message_expr () from
/lib64/libglib-2.0.so.0
#4 0x0000003869633143 in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#5 0x00000038696325a7 in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#6 0x0000003869633c77 in gdk_region_union () from
/usr/lib64/libgdk-x11-2.0.so.0
#7 0x0000003869641ccf in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#8 0x000000386a477695 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#9 0x000000386a478b93 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#10 0x000000386a47f346 in gtk_widget_queue_resize () from
/usr/lib64/libgtk-x11-2.0.so.0
#11 0x000000386a393a97 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#12 0x0000003340e0bb3e in g_closure_invoke () from
/lib64/libgobject-2.0.so.0
#13 0x0000003340e2063c in ?? () from /lib64/libgobject-2.0.so.0
#14 0x0000003340e220af in g_signal_emit_valist () from
/lib64/libgobject-2.0.so.0
#15 0x0000003340e225f3 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#16 0x00007fd594c63723 in wxToolBar::DoToggleTool(wxToolBarToolBase*,
bool) () from /disk01/lib/libwx_gtk2u_core-2.9.so.4
#17 0x00007fd5935b7c90 in _wrap_ToolBarBase_ToggleTool (args=<value
optimized out>, kwargs=<value optimized out>) at
src/gtk/_controls_wrap.cpp:25046

--
Robin Dunn
Software Craftsman

Currently, there are only a two places where I call ToggleTool and one of them is in a handler that has no chance of being called yet. So that leads me to this spot in a display plugin:

def onToolBarLoaded(self, toolBar):
    """
    Called after the tool bar has been fully populated and realized
    Can be used to disable, toggle, etc any tool bar items that were
    added to the tool bar
   
    @param toolBar    Reference to the UI's tool bar       
    """       
    self._toolBar = toolBar
    self._toolBar.EnableTool(self._reverseTool.getItem().GetId(), False)
    self._toolBar.EnableTool(self._pauseTool.getItem().GetId(), False)
    self._toolBar.EnableTool(self._forwardTool.getItem().GetId(), False)
    self._toolBar.ToggleTool(self._pauseTool.getItem().GetId(), True)

This method is invoked after the tool bar is created via the main frame’s CreateToolBar method, items are added, and Realize is invoked on the tool bar. I should note that this is the first time this has happened after probably a hundred runs or so.

···

On Wednesday, January 9, 2013 8:47:34 AM UTC-7, Robin Dunn wrote:

On 1/8/13 5:53 PM, Mears wrote:

Encountered another new fatal error on startup with 2.9.4.1 running on

Python 2.7.3 64-bit RHEL6. Any ideas?

Gdk:ERROR:gdkregion-generic.c:1108:miUnionNonO: assertion failed: (y1 < y2)

==== BACKTRACE =====

(gdb) bt

#0 0x000000333ea328a5 in raise () from /lib64/libc.so.6

#1 0x000000333ea34085 in abort () from /lib64/libc.so.6

#2 0x000000334025ea0f in g_assertion_message () from

/lib64/libglib-2.0.so.0

#3 0x000000334025efb0 in g_assertion_message_expr () from

/lib64/libglib-2.0.so.0

#4 0x0000003869633143 in ?? () from /usr/lib64/libgdk-x11-2.0.so.0

#5 0x00000038696325a7 in ?? () from /usr/lib64/libgdk-x11-2.0.so.0

#6 0x0000003869633c77 in gdk_region_union () from

/usr/lib64/libgdk-x11-2.0.so.0

#7 0x0000003869641ccf in ?? () from /usr/lib64/libgdk-x11-2.0.so.0

#8 0x000000386a477695 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0

#9 0x000000386a478b93 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0

#10 0x000000386a47f346 in gtk_widget_queue_resize () from

/usr/lib64/libgtk-x11-2.0.so.0

#11 0x000000386a393a97 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0

#12 0x0000003340e0bb3e in g_closure_invoke () from

/lib64/libgobject-2.0.so.0

#13 0x0000003340e2063c in ?? () from /lib64/libgobject-2.0.so.0

#14 0x0000003340e220af in g_signal_emit_valist () from

/lib64/libgobject-2.0.so.0

#15 0x0000003340e225f3 in g_signal_emit () from /lib64/libgobject-2.0.so.0

#16 0x00007fd594c63723 in wxToolBar::DoToggleTool(wxToolBarToolBase*,

bool) () from /disk01/lib/libwx_gtk2u_core-2.9.so.4

#17 0x00007fd5935b7c90 in _wrap_ToolBarBase_ToggleTool (args=<value

optimized out>, kwargs=) at

src/gtk/_controls_wrap.cpp:25046

At the point you call ToggleTool is there anything odd about the state
of the toolbar? Has its Realize method been called already? Has it not
been shown on screen yet? Is it not attached to a wx.Frame yet?


Robin Dunn

Software Craftsman

http://wxPython.org

So the other error I’ve encountered infrequently on startup ( https://groups.google.com/forum/?fromgroups=#!topic/wxpython-users/MqQ086YBfOc ) is “double free or corruption (fasttop)”. Found a post from someone who encountered both of same GTK errors: http://stackoverflow.com/questions/9468710/random-types-of-errors-occurring-randomly-in-gtk-app-using-soap-service-async Seems like it would indicate that something is interacting with the display off the event loop, but that should not be happening in this case.

If you can get it to happen consistently then let us know, and preferably create a small runnable sample that duplicates the problem. In the meantime perhaps changing it to toggle the item before it is disabled rather than after may help.

···

On 1/9/13 12:45 PM, Mears wrote:

Currently, there are only a two places where I call ToggleTool and one
of them is in a handler that has no chance of being called yet. So that
leads me to this spot in a display plugin:

     def onToolBarLoaded(self, toolBar):
         """
         Called after the tool bar has been fully populated and realized
         Can be used to disable, toggle, etc any tool bar items that were
         added to the tool bar

         @param toolBar Reference to the UI's tool bar
         """
         self._toolBar = toolBar
         self._toolBar.EnableTool(self._reverseTool.getItem().GetId(),
False)
         self._toolBar.EnableTool(self._pauseTool.getItem().GetId(), False)
         self._toolBar.EnableTool(self._forwardTool.getItem().GetId(),
False)
         self._toolBar.ToggleTool(self._pauseTool.getItem().GetId(), True)

This method is invoked after the tool bar is created via the main
frame's CreateToolBar method, items are added, and Realize is invoked on
the tool bar. I should note that this is the first time this has
happened after probably a hundred runs or so.

--
Robin Dunn
Software Craftsman