Ticket #3871 (confirmed defect)

Opened 4 years ago

Last modified 9 months ago

wx.SplashScreen gives Segmentation Fault with valgrind

Reported by: svniemeijer Owned by: robind
Priority: normal Milestone:
Component: wxPython Version:
Keywords: Cc: svniemeijer, robind
Blocked By: Patch: no
Blocking:

Description

When running valgrind (using wxPython 2.8.1.1 and Python 2.4.4 on Linux with GTK 2.7.4) on the splash.py script as provided below, valgrind (aside from a bunch of Python/gtk related issues) ends up with a segmentation fault that starts in _wrap_EvtHandlersetOORInfo.

From what I can figure out the two 'Jump to the invalid address' errors that follow are caused by a call to the virtual function DoSetClientData in EvtHandler.

When running the script without valgrind, things seem to go ok, but this is probably by accident (e.g. the virtual table of a deleted object was still intact in the appropriate memory space).

Attachments

splash.py download (0.9 KB) - added by svniemeijer 4 years ago.
Minimal sample script that triggers the segmentation fault with valgrind
wx-splash-valgrind.out download (138.7 KB) - added by svniemeijer 4 years ago.
valgrind output
stacktrace.txt download (6.1 KB) - added by svniemeijer 9 months ago.
gdbinit download (0.9 KB) - added by svniemeijer 9 months ago.

Change History

Changed 4 years ago by svniemeijer

Minimal sample script that triggers the segmentation fault with valgrind

Changed 4 years ago by svniemeijer

valgrind output

Changed 4 years ago by svniemeijer

File Added: wx-splash-valgrind.out

Changed 2 years ago by wxsite

  • status changed from assigned to confirmed

transitioning old 'assigned' status to new 'confirmed' status

Changed 9 months ago by svniemeijer

Can this issue perhaps get some higher priority? We are now even getting crash reports from users on our wxPython-based application due to this issue. We are currently using wxPython 2.8.10.1 and Python 2.6.2.

Changed 9 months ago by robind

Can you load the core file into gdb and do a stack trace? (gdb's bt command)

Changed 9 months ago by svniemeijer

Changed 9 months ago by svniemeijer

I added the stacktrace. Note that this stacktrace was done by a user of our application, I was not able to reproduce the crash myself.
The application, called VISAN, is open source and freely available. You can download it at  http://www.stcorp.nl/beat (click download, skip registration, and download the VISAN 3.4.0 binary installer for Linux (or the source package)).

I have also asked the user to produce a result of a 'pyframe' call (see gdbinit attachment) for #3:

#3 0xb8032fc5 in PyEval_EvalFrameEx (f=0x962cae4, throwflag=0) at Python/ceval.c:4005
4005 result = PyObject_Call(func, callargs, kwdict);
(gdb) pyframe
-- pyframe --
function: _setOORInfo()
file : /usr/local/visan-3.4.0/root/wxpython/lib/python2.6/site-packages/wx-2.8-gtk2-unicode/wx/_core.py:3884
-- locals --
args
kwargs
val

Changed 9 months ago by svniemeijer

Note: See TracTickets for help on using tickets.