[erlang-bugs] Segmentation fault in wxErlang

Dan Gudmundsson dgud@REDACTED
Thu Aug 19 10:47:11 CEST 2010


Fixed in dev OTP-8766.

This was also the bug (or one of) that caused the crashes for Li on windows,
reported in erlang-questions "On Windows XP (SP2): wx broken"

Thanks for the report and nice backtrace.

/Dan

On Sun, Aug 15, 2010 at 12:54 PM, Dan Gudmundsson <dgud@REDACTED> wrote:
> Thanks
> I will have a look at it.
>
> /Dan
>
> On Sun, Aug 15, 2010 at 12:02 PM, Sergei Golovan <sgolovan@REDACTED> wrote:
>> Hi!
>>
>> A Debian user recently found a bug in wxErlang (in the current Erlang
>> R14A). It consistently segfaults when playing with sudoku demo.
>>
>> I couldn't reproduce it with my default SMP settings (+S 8) but it
>> breaks soon (in a few minutes) after the application start and
>> interacting with the game field if Erlang VM is started with +S 1
>> option.
>>
>> So, I run
>>
>> % erl -pa /usr/lib/erlang/lib/wx-0.98.6/examples/sudoku +S 1
>> Erlang R14A (erts-5.8) [source] [smp:1:1] [rq:1] [async-threads:0]
>> [kernel-poll:false]
>>
>> Eshell V5.8  (abort with ^G)
>> 1> sudoku:start().
>> <0.34.0>
>> sudoku:40: Time: 3556875
>> Below level 39 40
>> Below level 34 35
>> Below level 29 30
>> Below level 24 25
>> No left 24
>>
>> Then I start playing, putting numbers there and there...
>> After a while:
>>
>> 2> zsh: segmentation fault (core dumped)  erl -pa
>> /usr/lib/erlang/lib/wx-0.98.6/examples/sudoku +S 1
>>
>> Below is a GDB session listing. I would be glad to provide any
>> additional info if required.
>>
>> Core was generated by `/usr/lib/erlang/erts-5.8/bin/beam.smp -S 1 --
>> -root /usr/lib/erlang -progname e'.
>> Program terminated with signal 11, Segmentation fault.
>> [New process 11376]
>> [New process 11387]
>> [New process 11366]
>> [New process 11373]
>> [New process 11372]
>> [New process 11370]
>> [New process 11371]
>> #0  0xf51e7a75 in WxeApp::dispatch_cb (this=0x8453398,
>> batch=0x84942b0, temp=0x8494240, process=835)
>>    at wxe_impl.cpp:411
>> 411               if(event->caller == process ||  // Callbacks from CB
>> process only
>> (gdb) bt
>> #0  0xf51e7a75 in WxeApp::dispatch_cb (this=0x8453398,
>> batch=0x84942b0, temp=0x8494240, process=835)
>>    at wxe_impl.cpp:411
>> #1  0xf51e7c0a in handle_event_callback (port=0x240, process=643) at
>> wxe_impl.cpp:306
>> #2  0xf528d0cc in sendevent (event=0xf2c81ab4, port=0x240) at
>> gen/wxe_events.cpp:821
>> #3  0xf528e496 in wxeEvtListener::forward (this=0x857ece0,
>> event=@0xf2c81ab4) at gen/wxe_events.cpp:328
>> #4  0xf49e77f1 in wxAppConsole::HandleEvent () from
>> /usr/lib/libwx_baseu-2.8.so.0
>> #5  0xf4a849ca in wxEvtHandler::ProcessEventIfMatches () from
>> /usr/lib/libwx_baseu-2.8.so.0
>> #6  0xf4a84b56 in wxEvtHandler::SearchDynamicEventTable () from
>> /usr/lib/libwx_baseu-2.8.so.0
>> #7  0xf4a85c8d in wxEvtHandler::ProcessEvent () from
>> /usr/lib/libwx_baseu-2.8.so.0
>> #8  0xf4c45fd0 in wxWindow::GtkSendPaintEvents () from
>> /usr/lib/libwx_gtk2u_core-2.8.so.0
>> #9  0xf4c4658d in ?? () from /usr/lib/libwx_gtk2u_core-2.8.so.0
>> #10 0xf45e6816 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
>> #11 0x084aa220 in ?? ()
>> #12 0xf2c82070 in ?? ()
>> #13 0x085ec2f8 in ?? ()
>> #14 0xf4398678 in ?? () from /usr/lib/libgobject-2.0.so.0
>> #15 0x0857ee30 in ?? ()
>> #16 0x0857f320 in ?? ()
>> #17 0xf2c81c18 in ?? ()
>> #18 0xf436790b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
>> Backtrace stopped: frame did not save the PC
>> Current language:  auto; currently c++
>> (gdb) print event
>> $1 = (wxeCommand *) 0xf11023e8
>> (gdb) print event->caller
>> $2 = 611
>> (gdb) print process
>> $3 = 835
>> (gdb) print event->op
>> $4 = 10
>> (gdb) print memenv
>> $5 = (wxeMemEnv *) 0x0
>> (gdb) print event->port
>> $6 = (ErlDrvPort) 0x23f
>> (gdb)
>>
>> All observed segfaults were at the same place in WxeApp::dispatch_cb() function.
>>
>> (The Erlang was built without Debian-specific patches and with symbols enabled.)
>>
>> Cheers!
>> --
>> Sergei Golovan
>>
>> ________________________________________________________________
>> erlang-bugs (at) erlang.org mailing list.
>> See http://www.erlang.org/faq.html
>> To unsubscribe; mailto:erlang-bugs-unsubscribe@REDACTED
>>
>>
>


More information about the erlang-bugs mailing list