strange bug with python24+darwin_8, py-wxpython and xml parsing
Hi there, when using py-xml together with py-wxpython, I get a reproductible bus error whenever I try to use sax or minidom (both relying on expat). Invoking the parsers crashes the application with a bus error. The workaround I found is to import xml.parsers.pyexpat before importing wx - but this is a workaround, not a bug fix. I'm not sure how to debug this. When run in gdb I only get
Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x00000000 0x00244479 in PyString_FromString (str=0x0) at Objects/ stringobject.c:106 106 size = strlen(str);
This is the backtrace:
(gdb) backtrace #0 0x00244479 in PyString_FromString (str=0x0) at Objects/ stringobject.c:106 #1 0x002a3678 in PyModule_AddStringConstant (m=0x65f19b0, name=0x1af188d0 "XML_ERROR_UNBOUND_PREFIX", value=0x0) at Python/ modsupport.c:589 #2 0x1af10ea3 in initpyexpat () at extensions/pyexpat.c:1977 #3 0x0029f49a in _PyImport_LoadDynamicModule (name=0xbfff9a27 "xml.parsers.pyexpat", pathname=0xbfff9587 "/opt/local/lib/ python2.4/site-packages/_xmlplus/parsers/pyexpat.so", fp=0xa000be50) at ./Python/importdl.c:53 #4 0x0029d491 in load_module (name=0xbfff9a27 "xml.parsers.pyexpat", fp=0x1b, buf=0xbfff9587 "/opt/local/lib/ python2.4/site-packages/_xmlplus/parsers/pyexpat.so", type=3, loader=0x0) at Python/import.c:1689 #5 0x0029dc8f in import_submodule (mod=0x65f1810, subname=0xbfff9a33 "pyexpat", fullname=0xbfff9a27 "xml.parsers.pyexpat") at Python/import.c:2276 #6 0x0029dec1 in load_next (mod=0x65f1810, altmod=0x2e0160, p_name=0xbfff9a33, buf=0xbfff9a27 "xml.parsers.pyexpat", p_buflen=0xbfff9e28) at Python/import.c:2096 #7 0x0029e375 in PyImport_ImportModuleEx (name=0x65f18d4 "pyexpat", globals=0x65ef9c0, locals=0x65ef9c0, fromlist=0x65f18b0) at Python/import.c:1931 #8 0x002714c3 in builtin___import__ (self=0x0, args=0x65f0e10) at Python/bltinmodule.c:45 #9 0x0020d87f in PyObject_Call (func=0x10260, arg=0x65f0e10, kw=0x0) at Objects/abstract.c:1795 #10 0x0027944a in PyEval_CallObjectWithKeywords (func=0x10260, arg=0x65f0e10, kw=0x0) at Python/ceval.c:3435 #11 0x0027c015 in PyEval_EvalFrame (f=0x1850410) at Python/ceval.c: 2020 #12 0x00280665 in PyEval_EvalCodeEx (co=0x3e74d60, globals=0x65ef9c0, locals=0x65ef9c0, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2741 #13 0x002808a5 in PyEval_EvalCode (co=0x3e74d60, globals=0x65ef9c0, locals=0x65ef9c0) at Python/ceval.c:484 #14 0x0029c8db in PyImport_ExecCodeModuleEx (name=0xbfffab97 "xml.parsers.expat", co=0x3e74d60, pathname=0xbfffa29f "/opt/local/ lib/python2.4/site-packages/_xmlplus/parsers/expat.pyc") at Python/ import.c:636 #15 0x0029cc9f in load_source_module (name=0xbfffab97 "xml.parsers.expat", pathname=0xbfffa29f "/opt/local/lib/python2.4/ site-packages/_xmlplus/parsers/expat.pyc", fp=0xa000bdf8) at Python/ import.c:915 #16 0x0029dc8f in import_submodule (mod=0x65f1810, subname=0x3e857f4 "expat", fullname=0xbfffab97 "xml.parsers.expat") at Python/import.c:2276 #17 0x0029e222 in ensure_fromlist (mod=0x65f1810, fromlist=0x3e85f70, buf=0xbfffab97 "xml.parsers.expat", buflen=11, recursive=0) at Python/import.c:2187 #18 0x0029e66d in PyImport_ImportModuleEx (name=0x65f291c "xml.parsers", globals=0x65ef660, locals=0x65ef660, fromlist=0x3e85f70) at Python/import.c:1958 #19 0x002714c3 in builtin___import__ (self=0x0, args=0x65f0d20) at Python/bltinmodule.c:45 #20 0x0020d87f in PyObject_Call (func=0x10260, arg=0x65f0d20, kw=0x0) at Objects/abstract.c:1795 #21 0x0027944a in PyEval_CallObjectWithKeywords (func=0x10260, arg=0x65f0d20, kw=0x0) at Python/ceval.c:3435 #22 0x0027c015 in PyEval_EvalFrame (f=0x18fc210) at Python/ceval.c: 2020 #23 0x00280665 in PyEval_EvalCodeEx (co=0x3e74ba0, globals=0x65ef660, locals=0x65ef660, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2741 #24 0x002808a5 in PyEval_EvalCode (co=0x3e74ba0, globals=0x65ef660, locals=0x65ef660) at Python/ceval.c:484 #25 0x0029c8db in PyImport_ExecCodeModuleEx (name=0xbfffbd07 "xml.dom.expatbuilder", co=0x3e74ba0, pathname=0xbfffb40f "/opt/ local/lib/python2.4/site-packages/_xmlplus/dom/expatbuilder.pyc") at Python/import.c:636 #26 0x0029cc9f in load_source_module (name=0xbfffbd07 "xml.dom.expatbuilder", pathname=0xbfffb40f "/opt/local/lib/ python2.4/site-packages/_xmlplus/dom/expatbuilder.pyc", fp=0xa000bda0) at Python/import.c:915 #27 0x0029dc8f in import_submodule (mod=0x66690, subname=0x119e3cc "expatbuilder", fullname=0xbfffbd07 "xml.dom.expatbuilder") at Python/import.c:2276 #28 0x0029e222 in ensure_fromlist (mod=0x66690, fromlist=0x119c550, buf=0xbfffbd07 "xml.dom.expatbuilder", buflen=7, recursive=0) at Python/import.c:2187 #29 0x0029e66d in PyImport_ImportModuleEx (name=0x667d4 "xml.dom", globals=0x7cf540, locals=0x2e0160, fromlist=0x119c550) at Python/ import.c:1958 #30 0x002714c3 in builtin___import__ (self=0x0, args=0x519c0) at Python/bltinmodule.c:45 #31 0x0020d87f in PyObject_Call (func=0x10260, arg=0x519c0, kw=0x0) at Objects/abstract.c:1795 #32 0x0027944a in PyEval_CallObjectWithKeywords (func=0x10260, arg=0x519c0, kw=0x0) at Python/ceval.c:3435 #33 0x0027c015 in PyEval_EvalFrame (f=0x18d4210) at Python/ceval.c: 2020 #34 0x00280665 in PyEval_EvalCodeEx (co=0x119f620, globals=0x7cf540, locals=0x0, args=0x18ecda0, argcount=1, kws=0x18ecda4, kwcount=0, defs=0x7d86a4, defcount=2, closure=0x0) at Python/ceval.c:2741 #35 0x0027e49f in PyEval_EvalFrame (f=0x18ecc10) at Python/ceval.c: 3661 #36 0x0027ebaa in PyEval_EvalFrame (f=0x196d410) at Python/ceval.c: 3651 #37 0x00280665 in PyEval_EvalCodeEx (co=0x55720, globals=0x21a50, locals=0x0, args=0x18ca96c, argcount=3, kws=0x18ca978, kwcount=0, defs=0x2ddb49c, defcount=1, closure=0x0) at Python/ceval.c:2741 #38 0x0027e49f in PyEval_EvalFrame (f=0x18ca810) at Python/ceval.c: 3661 #39 0x00280665 in PyEval_EvalCodeEx (co=0x556a0, globals=0x21a50, locals=0x0, args=0x385d03c, argcount=2, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2741 #40 0x00228063 in function_call (func=0x394b8b0, arg=0x385d030, kw=0x0) at Objects/funcobject.c:548 #41 0x0020d87f in PyObject_Call (func=0x394b8b0, arg=0x385d030, kw=0x0) at Objects/abstract.c:1795 #42 0x00215667 in instancemethod_call (func=0x3e878c8, arg=0x3e85970, kw=0x0) at Objects/classobject.c:2532 #43 0x0020d87f in PyObject_Call (func=0x3e878c8, arg=0x3e85970, kw=0x0) at Objects/abstract.c:1795 #44 0x0027944a in PyEval_CallObjectWithKeywords (func=0x3e878c8, arg=0x3e85970, kw=0x0) at Python/ceval.c:3435 #45 0x03ea1c80 in wxPyCallback::EventThunker (this=0x1a65600, event=@0xbfffd208) at src/helpers.cpp:1473 #46 0x0449f020 in wxEvtHandler::ProcessEventIfMatches () #47 0x0449f0c0 in wxEvtHandler::SearchDynamicEventTable () #48 0x0449f61f in wxEvtHandler::ProcessEvent () #49 0x045cdb61 in wxWindowBase::TryParent () #50 0x0449f5f1 in wxEvtHandler::ProcessEvent () #51 0x045cdb61 in wxWindowBase::TryParent () #52 0x0449f5f1 in wxEvtHandler::ProcessEvent () #53 0x044cd76b in wxControl::ProcessCommand () #54 0x044c8c24 in wxButton::MacControlHit () #55 0x045247cb in wxMacWindowControlEventHandler () #56 0x04525075 in wxMacWindowEventHandler () #57 0x92dec537 in DispatchEventToHandlers () #58 0x92debbdc in SendEventToEventTargetInternal () #59 0x92df2fbc in SendEventToEventTarget () #60 0x92ea66a5 in SendControlHit () #61 0x92ea6596 in HIView::NotifyControlHit () #62 0x92eafe38 in HIView::ClickInternal () #63 0x92e8b045 in HIView::ClickSelf () #64 0x92e10652 in HIView::EventHandler () #65 0x92dec537 in DispatchEventToHandlers () #66 0x92debbdc in SendEventToEventTargetInternal () #67 0x92df2fbc in SendEventToEventTarget () #68 0x92e8ad6f in HIView::Click () #69 0x92e8abab in HandleClickAsHIView () #70 0x92e8a531 in HandleWindowClick () #71 0x92e89fde in HandleMouseEvent () #72 0x92e32488 in StandardWindowEventHandler () #73 0x92dec537 in DispatchEventToHandlers () #74 0x92debbdc in SendEventToEventTargetInternal () #75 0x92df2fbc in SendEventToEventTarget () #76 0x92df344f in ToolboxEventDispatcherHandler () #77 0x92dec8ee in DispatchEventToHandlers () #78 0x92debbdc in SendEventToEventTargetInternal () #79 0x92df2fbc in SendEventToEventTarget () #80 0x044bf30c in wxApp::MacHandleOneEvent () #81 0x044bf3c8 in wxApp::MacDoOneEvent () #82 0x044d731c in wxEventLoop::Dispatch () #83 0x0457cd4b in wxEventLoopManual::Run () #84 0x04556d24 in wxAppBase::MainLoop () #85 0x03e99fd4 in wxPyApp::MainLoop (this=0x6ee690) at src/ helpers.cpp:156 #86 0x03edf8ee in _wrap_PyApp_MainLoop (args=0x3197f70) at src/mac/ _core_wrap.cpp:30474 #87 0x0020d87f in PyObject_Call (func=0x4e9a210, arg=0x3e85810, kw=0x3df3300) at Objects/abstract.c:1795 #88 0x0027e69c in PyEval_EvalFrame (f=0x1912810) at Python/ceval.c: 3845 #89 0x00280665 in PyEval_EvalCodeEx (co=0x3e25b60, globals=0x3e73420, locals=0x0, args=0x3e856fc, argcount=1, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2741 #90 0x00228063 in function_call (func=0x4ebcb30, arg=0x3e856f0, kw=0x0) at Objects/funcobject.c:548 #91 0x0020d87f in PyObject_Call (func=0x4ebcb30, arg=0x3e856f0, kw=0x0) at Objects/abstract.c:1795 #92 0x00215667 in instancemethod_call (func=0x5c5b350, arg=0x3e856f0, kw=0x0) at Objects/classobject.c:2532 #93 0x0020d87f in PyObject_Call (func=0x5c5b350, arg=0x3e856f0, kw=0x0) at Objects/abstract.c:1795 #94 0x0027e397 in PyEval_EvalFrame (f=0x1863e10) at Python/ceval.c: 3776 #95 0x0027ebaa in PyEval_EvalFrame (f=0x6082b0) at Python/ceval.c:3651 #96 0x00280665 in PyEval_EvalCodeEx (co=0x558a0, globals=0x21a50, locals=0x21a50, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2741 #97 0x002808a5 in PyEval_EvalCode (co=0x558a0, globals=0x21a50, locals=0x21a50) at Python/ceval.c:484 #98 0x002a74da in PyRun_FileEx (fp=0xa000bda0, filename=0x51a24 "adaptation_server.py", start=257, globals=0x21a50, locals=0x21a50, closeit=1) at Python/pythonrun.c:1285 #99 0x00272053 in builtin_execfile (self=0x0, args=0x2c490) at Python/bltinmodule.c:631 #100 0x0027faca in PyEval_EvalFrame (f=0x608a70) at Python/ceval.c: 3568 #101 0x00280665 in PyEval_EvalCodeEx (co=0x4f5a0, globals=0x21a50, locals=0x21a50, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2741 #102 0x002808a5 in PyEval_EvalCode (co=0x4f5a0, globals=0x21a50, locals=0x21a50) at Python/ceval.c:484 #103 0x002a723a in PyRun_InteractiveOneFlags (fp=0xa0001be0, filename=0x2d1564 "<stdin>", flags=0xbffff778) at Python/ pythonrun.c:1285 #104 0x002a7355 in PyRun_InteractiveLoopFlags (fp=0xa0001be0, filename=0x2d1564 "<stdin>", flags=0xbffff778) at Python/ pythonrun.c:704 #105 0x002a8097 in PyRun_AnyFileExFlags (fp=0xa0001be0, filename=0x2d1564 "<stdin>", closeit=0, flags=0xbffff778) at Python/ pythonrun.c:667 #106 0x002b13ec in Py_Main (argc=0, argv=0xbffff804) at Modules/ main.c:493 #107 0x00001fae in ?? () #108 0x00001ed5 in ?? ()
Can someone comment on this? What could I do to narrow the bug? python24 @2.4.4_1+darwin_8 (active) py-wxpython @2.8.4.0_0 (active) libxml2 @2.6.28_1 (active) expat @2.0.1_0 (active) wxWidgets @2.8.4_2+darwin_8 (active) I'm running macports 1.5 on an intel MacBook. TIA, Mark -- Mark Asbach Institut für Nachrichtentechnik, RWTH Aachen University http://www.ient.rwth-aachen.de/cms/team/m_asbach
participants (1)
-
Mark Asbach