#979337 pinball-table-gnu-data: Crashes when 'PLAY' is selected

#979337#5
Date:
2021-01-05 14:19:21 UTC
From:
To:
Hi,

sometimes Emilia Pinball dies with a segfault when I want to play the "GNU"
table. It does not always crash, but from time to time.

Steps to reproduce:
1. Start Emilia Pinball
2. Select "LOAD TABLE"
3. Select "GNU"
4. Select "PLAY" -> Sometimes leads to crash
5. If it didn't crash, repeat steps 2.-4. with a different table and repeat
again with GNU table.

Here is the backtrace of a crash:

gdb) bt full
#0  0x00007fe4b7657757 in GnuBehavior::onTick() (this=0x55d61fe8c270) at
ModuleGnu.cpp:285
        i = 2667219
        ballgroup = <optimized out>
        table = 0x55d61fb83430
        score = <optimized out>
        loader = 0x55d61fb7ca70
        launch =
"\r\000\000\000\214\375\357\017\375\177\000\000\r\314\032\037\326U\000\000\260\375\357\017\375\177\000\000\177\263!?IwF?\000\000\000\000\000\000\200?\000\067\256\n\243B\334\311launch\000i\240\236\300\037\326U\000\000\340\br\037\326U\000\000h\000\360\017\375\177\000\000\000\371\032\037\326U\000\000\240<#
\326U\000\000\240<# \326U\000\000-\360\032\037\326U", '\000' <repeats 50
times>,
"\210\236\300\037\326U\000\000\340õ\037\326U\000\000\000\000\000\000\000\000\000\000ix\364\017\375\177\000\000\020ĵ\037"...
#1  0x000055d61f1af02d in Group::accept(Visitor*) (v=0x55d620233ca0,
this=0x55d61fc09ea0) at Group.cpp:85
Python Exception <class 'gdb.error'> value has been optimized out:
        iter =
        iter = 0x55d61fc09ea0
Python Exception <class 'gdb.error'> value has been optimized out:
        end =
#2  Group::accept(Visitor*) (this=this@entry=0x55d61f7208e0, v=0x55d620233ca0)
at Group.cpp:89
        iter = 0x55d61fc09ea0
Python Exception <class 'gdb.error'> value has been optimized out:
        end =
#3  0x000055d61f1ae8ba in Engine::tick() (this=0x55d61f7208e0) at
Engine.cpp:308
#4  0x000055d61f18f105 in Pinball::loop() (this=this@entry=0x7ffd0fefff40) at
Pinball.cpp:868
#5  0x000055d61f190b10 in Pinball::loop() (this=0x7ffd0fefff40) at
Pinball.cpp:834
        status = 0
#6  Pinball::run(int, char**) (this=0x7ffd0fefff40, argc=<optimized out>,
argv=<optimized out>) at Pinball.cpp:748
        status = 0
#7  0x000055d61f18eaf6 in Pinball::main(int, char**) (argc=1,
argv=0x7ffd0ff00068) at Pinball.cpp:901
        instance = {mpMenu = 0x55d61fae3870, mpEngine = 0x55d61f7208e0, miCount
= 1350, miMaxCount = 0}
        status = <optimized out>
#8  0x00007fe4c3bd7d0a in __libc_start_main (main=
    0x55d61f18ebb0 <main(int, char**)>, argc=1, argv=0x7ffd0ff00068,
init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7ffd0ff00058) at ../csu/libc-start.c:308
        result = <optimized out>
        unwind_buf =
              {cancel_jmp_buf = {{jmp_buf = {0, 2921486488914963720,
94378133089920, 0, 0, 0, 8997371355756309768, 9002287972298992904},
mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x1, 0x7ffd0ff00068}, data =
{prev = 0x0, cleanup = 0x0, canceltype = 1}}}
        not_first_call = <optimized out>
#9  0x000055d61f18eeaa in _start ()
(gdb) kill

Cheers,
Bruno

#979337#10
Date:
2021-01-05 15:15:00 UTC
From:
To:
Am Dienstag, dem 05.01.2021 um 15:36 +0100 schrieb Philippe Coval:

I rebuilt the package with the patch applied that you provided the link
to. It still craches, though. Here's the backtrace of the locally built
package that includes the patch:

(gdb) bt full
#0  0x00007fe3bc3d678e in GnuBehavior::onTick() (this=0x5623fb1997e0)
    at ModuleGnu.cpp:289
        i = 3472746
        ballgroup = <optimized out>
        table = 0x5623faf71c30
        score = <optimized out>
        loader = 0x5623faf658b0
        launch = ""
#1  0x00005623f8ea202d in Group::accept(Visitor*)
    (v=0x5623fb610960, this=0x5623fb1995b0) at Group.cpp:85
Python Exception <class 'gdb.error'> value has been optimized out:
        iter =
        iter = 0x5623fb1995b0
Python Exception <class 'gdb.error'> value has been optimized out:
        end =
#2  Group::accept(Visitor*) (this=this@entry=0x5623fab088e0, v=0x5623fb610960)
    at Group.cpp:89
        iter = 0x5623fb1995b0
Python Exception <class 'gdb.error'> value has been optimized out:
        end =
#3  0x00005623f8ea18ba in Engine::tick() (this=0x5623fab088e0)
    at Engine.cpp:308
#4  0x00005623f8e82105 in Pinball::loop() (this=this@entry=0x7ffeb5fe2e80)
    at Pinball.cpp:868
#5  0x00005623f8e83b10 in Pinball::loop() (this=0x7ffeb5fe2e80)
    at Pinball.cpp:834

Cheers,
Bruno

#979337#15
Date:
2023-07-05 22:44:00 UTC
From:
To:
Please confirm if bug is still present on current release:

https://tracker.debian.org/news/1440698/accepted-pinball-table-gnu-0020230219-1-source-into-unstable/

Regards