Opened 5 years ago

Closed 5 years ago

#424 closed defect (worksforme)

segmentation fault: fast repeated clicks to toggle status in plugin manager

Reported by: daxim Owned by:
Priority: critical Milestone:
Component: editor Version: 0.50
Keywords: Cc:

Description

  1. Install some add-on plugins, e.g. ::Debugger, and run padre.
  2. Select menu item Plugins → Plugin Manager to bring up the manager dialog.
  3. Repeatedly click as fast as you can (probably faster than your desktop environment's notion of double-click) on a line, e.g. ::Debugger, to toggle the plugin's enabled/disabled status.

What should happen:
Toggles status, indicated by colourful icon.

What actually happens:
Crashes with segmentation fault.

Backtrace and version info attached. Happens with both vendor supplied wxWidgets-devel and supplied through Alien::wxWidgets download prompt.

> gdb perl
(gdb) run /home/daxim/local/bin/padre
Starting program: /home/daxim/local/bin/perl /home/daxim/local/bin/padre
[Thread debugging using libthread_db enabled]
[New Thread 0x7ffff4f33950 (LWP 23366)]
[Thread 0x7ffff4f33950 (LWP 23366) exited]
Perldoc (Pod::Perldoc::ToPod) output saved to /tmp/zTvJJ6g3w9
Perldoc (Pod::Perldoc::ToPod) output saved to /tmp/mAA57ThbvB
Perldoc (Pod::Perldoc::ToPod) output saved to /tmp/WjvWZnpNZE

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff3cc3bc3 in XS_Wx__MenuItem_Enable (my_perl=0x603010, cv=<value optimized out>) at Wx.c:10831
10831   Wx.c: No such file or directory.
        in Wx.c
Current language:  auto; currently c++
(gdb) bt
#0  0x00007ffff3cc3bc3 in XS_Wx__MenuItem_Enable (my_perl=0x603010, cv=<value optimized out>) at Wx.c:10831
#1  0x00007ffff7b1e950 in Perl_pp_entersub (my_perl=0x603010) at pp_hot.c:2847
#2  0x00007ffff7b1ce62 in Perl_runops_standard (my_perl=0x603010) at run.c:38
#3  0x00007ffff7b17d38 in Perl_call_sv (my_perl=0x603010, sv=0x33da210, flags=134) at perl.c:2646
#4  0x00007ffff3db9be9 in wxPliEventCallback::Handler (this=<value optimized out>, event=@0x7fffffffcce0)
    at cpp/e_cback.cpp:118
#5  0x00007ffff3057959 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from /usr/lib64/libwx_baseu-2.8.so.0
#6  0x00007ffff3057b04 in wxEvtHandler::SearchDynamicEventTable(wxEvent&) ()
   from /usr/lib64/libwx_baseu-2.8.so.0
#7  0x00007ffff3058bf2 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib64/libwx_baseu-2.8.so.0
#8  0x00007ffff35cf509 in wxWindowBase::TryParent(wxEvent&) () from /usr/lib64/libwx_gtk2u_core-2.8.so.0
#9  0x00007ffff34f336c in wxListMainWindow::SendNotify(unsigned long, int, wxPoint const&) ()
   from /usr/lib64/libwx_gtk2u_core-2.8.so.0
#10 0x00007ffff34f617d in wxListMainWindow::OnMouse(wxMouseEvent&) () from /usr/lib64/libwx_gtk2u_core-2.8.so.0
#11 0x00007ffff3057959 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from /usr/lib64/libwx_baseu-2.8.so.0
#12 0x00007ffff3058b34 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) ()
   from /usr/lib64/libwx_baseu-2.8.so.0
#13 0x00007ffff3058c27 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib64/libwx_baseu-2.8.so.0
#14 0x00007ffff3058bb0 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib64/libwx_baseu-2.8.so.0
#15 0x00007ffff3602325 in wxScrollHelperEvtHandler::ProcessEvent(wxEvent&) ()
   from /usr/lib64/libwx_gtk2u_core-2.8.so.0
#16 0x00007ffff34d7978 in ?? () from /usr/lib64/libwx_gtk2u_core-2.8.so.0
#17 0x00007ffff258ab78 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#18 0x00007ffff0d8837d in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
#19 0x00007ffff0d9e07d in ?? () from /usr/lib64/libgobject-2.0.so.0
#20 0x00007ffff0d9f5af in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
#21 0x00007ffff0d9fc63 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#22 0x00007ffff268e05e in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#23 0x00007ffff25834e3 in gtk_propagate_event () from /usr/lib64/libgtk-x11-2.0.so.0
#24 0x00007ffff2584603 in gtk_main_do_event () from /usr/lib64/libgtk-x11-2.0.so.0
#25 0x00007ffff220720c in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#26 0x00007ffff04df0fb in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#27 0x00007ffff04e28cd in ?? () from /usr/lib64/libglib-2.0.so.0
#28 0x00007ffff04e2dfd in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#29 0x00007ffff2584a17 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#30 0x00007ffff34c4778 in wxEventLoop::Run() () from /usr/lib64/libwx_gtk2u_core-2.8.so.0
#31 0x00007ffff354f43b in wxAppBase::MainLoop() () from /usr/lib64/libwx_gtk2u_core-2.8.so.0
#32 0x00007ffff3d08461 in wxPliApp::MainLoop (this=0x1046c80) at cpp/app.h:93
#33 0x00007ffff3cba3c2 in XS_Wx__App_MainLoop (my_perl=0x603010, cv=<value optimized out>) at Wx.c:15500
#34 0x00007ffff7b1e950 in Perl_pp_entersub (my_perl=0x603010) at pp_hot.c:2847
#35 0x00007ffff7b1ce62 in Perl_runops_standard (my_perl=0x603010) at run.c:38
#36 0x00007ffff7b18651 in perl_run (my_perl=0x2488080) at perl.c:2379
#37 0x0000000000400dbc in main (argc=2, argv=0x7fffffffdbe8, env=0x7fffffffdc00) at perlmain.c:113
Wx Version: 0.91 wxWidgets 2.8.10
> perl -V
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
  Platform:
    osname=linux, osvers=2.6.25.16-0.1-default, archname=x86_64-linux-thread-multi-ld
    uname='linux kor 2.6.25.16-0.1-default #1 smp 2008-08-21 00:34:25 +0200 x86_64 x86_64 x86_64 gnulinux '
    config_args='-Dnoextensions=ODBM_File -DDEBUGGING'
    hint=previous, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=define
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC',
    optimize='-O2 -g',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC'
    ccversion='', gccversion='4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036]', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='long double', nvsize=16, Off_t='off_t', lseeksize=8
    alignbytes=16, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64
    libs=-lnsl -lndbm -lgdbm -ldl -lm -lcrypt -lutil -lpthread -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=/lib/libc-2.8.so, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.8'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/home/daxim/local/lib/perl5/5.10.0/x86_64-linux-thread-multi-ld/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_BIT_ALL
                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                        USE_LONG_DOUBLE USE_PERLIO USE_REENTRANT_API
  Built under linux
  Compiled at Mar  8 2009 02:46:07
  @INC:
    /home/daxim/local/lib/perl5/5.10.0/x86_64-linux-thread-multi-ld
    /home/daxim/local/lib/perl5/5.10.0
    /home/daxim/local/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi-ld
    /home/daxim/local/lib/perl5/site_perl/5.10.0
    .

Change History (2)

comment:1 Changed 5 years ago by Sewi

WORKSFORME
Padre trunk r8107
Ubuntu with Gnome
Kernel 2.6.28-15-generic #49-Ubuntu
Perl v5.10.0

comment:2 Changed 5 years ago by daxim

  • Resolution set to worksforme
  • Status changed from new to closed
  • Version changed from 0.38 to 0.50

Crash does not occur anymore.

Note: See TracTickets for help on using tickets.