Bug 525066

Summary: Ballbuster game won't launch
Product: [Fedora] Fedora Reporter: Tim McConnell <timothy.mcconnell>
Component: mesaAssignee: Adam Jackson <ajax>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: ajax, hdegoede, mcepl, mcepl
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-12-03 00:20:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
strace results
none
strace of ballbuster
none
gdb trace from 11-05-2009 none

Description Tim McConnell 2009-09-23 08:29:58 UTC
Created attachment 362194 [details]
strace results 

Description of problem:
Game won't launch flashes black screen then disappears 

Version-Release number of selected component (if applicable):
ballbuster-1.0-7.fc11.i586
How reproducible:
Choose Applications -> Games -> Ballbuster and it fails

Steps to Reproduce:
1.
2.
3.
  
Actual results:
Game doesn't Launch

Expected results:
To be able to play the game 

Additional info:
A black screen appears then disappears and nothing after that. 
running the dmesg command it shows: 
ballbuster[8075]: segfault at 0 ip (null) sp bf9c14ac error 4 in libX11.so.6.2.0[101000+12b000]
I also ran ballbuster through strace and I am attaching that too.

Comment 1 Hans de Goede 2009-09-23 21:21:55 UTC
Works fine for me, can you try to run install the debuginfo:
debuginfo-install ballbuster

And then run it under gdb and ask for a backtrace after it has crashed ?

Comment 2 Tim McConnell 2009-09-24 00:07:06 UTC
(In reply to comment #1)
> Works fine for me, can you try to run install the debuginfo:
> debuginfo-install ballbuster
> 
> And then run it under gdb and ask for a backtrace after it has crashed ?  

gdb first attempt looks like: 
(gdb) run
Starting program: /usr/bin/ballbuster 
warning: .dynamic section for "/usr/lib/libpng12.so.0" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
[Thread debugging using libthread_db enabled]
warning: .dynamic section for "/lib/libdbus-1.so.3" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/lib/libnsl.so.1" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
[New Thread 0xb3fd8b70 (LWP 3095)]
[New Thread 0xb33ffb70 (LWP 3096)]
warning: .dynamic section for "/lib/libselinux.so.1" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/lib/libexpat.so.1" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libXcursor.so.1" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
Missing separate debuginfos, use: debuginfo-install ClanLib-0.8.1-3.fc11.i586 alsa-lib-1.0.21-3.fc11.i586 alsa-plugins-pulseaudio-1.0.21-2.fc11.i586 dbus-libs-1.2.12-2.fc11.i586 e2fsprogs-libs-1.41.4-12.fc11.i586 expat-2.0.1-6.i586 gdbm-1.8.0-31.fc11.i586 glibc-2.10.1-5.i686 libICE-1.0.4-7.fc11.i586 libSM-1.1.0-4.fc11.i586 libX11-1.2.2-1.fc11.i586 libXau-1.0.4-5.fc11.i586 libXcursor-1.1.9-4.fc11.i586 libXdamage-1.1.1-6.fc11.i586 libXext-1.0.99.1-3.fc11.i586 libXfixes-4.0.3-5.fc11.i586 libXi-1.2.1-1.fc11.i586 libXmu-1.0.4-2.fc11.i586 libXrender-0.9.4-5.fc11.i586 libXt-1.0.5-2.fc11.i586 libXtst-1.0.3-5.fc11.i586 libXxf86vm-1.0.2-2.fc11.i586 libasyncns-0.7-2.fc11.i586 libattr-2.4.43-3.fc11.i586 libcap-2.16-4.fc11.1.i586 libgcc-4.4.1-2.fc11.i586 libjpeg-6b-45.fc11.i586 libogg-1.1.3-11.fc11.i586 libpng-1.2.37-1.fc11.i586 libselinux-2.0.80-1.fc11.i586 libstdc++-4.4.1-2.fc11.i586 libvorbis-1.2.0-8.fc11.i586 libxcb-1.2-4.fc11.i586 mesa-dri-drivers-7.6-0.1.fc11.i586 mesa-libGL-7.6-0.1.fc11.i586 mesa-libGLU-7.6-0.1.fc11.i586 pulseaudio-libs-0.9.15-17.fc11.i586 tcp_wrappers-libs-7.6-55.fc11.i586 zlib-1.2.3-22.fc11.i586
 
I am installing the additional debug info packages. 
Isn't the syntax gdb program bt?

Comment 3 Hans de Goede 2009-09-24 16:20:55 UTC
Hi,

Yes you need to do a "bt" command in gdb after the "run" command (and the program has crashed).

Thanks.

Hans

Comment 4 Tim McConnell 2009-09-24 18:43:12 UTC
(In reply to comment #3)
(and the
> program has crashed).
Hmm I use gdb and the game brings up a small window followed by a large window that is black, but I can see the mouse arrow still. The large window acts like the main screen, meaning I can move the mouse and it acts like it is set to the main menu window size. In other words there is a 2 inch border around the edge of the screen the mouse can't go into. 
Anyway that screen doesn't go away until I run the kill command on gbd. I left it alone for 60 minutes before I killed it. Is there anyway to force gdb to exit upon detecting a segfault? dmesg does show ball buster is segfaulting.

Comment 5 Hans de Goede 2009-09-25 13:49:38 UTC
Hmm,

I already was afraid something like this might happen. What you can do is try to run the game from a text console (cttrl+alt+F2) after doing;
export DISPLAY=:0.0

In the console first, so that it knows how to find X.

After typing "run" in gdb you need to switch back to X asap, because ballbuster
will try to change the resolution and if your not back in X by then, it will
fail in a different way.

Comment 6 Tim McConnell 2009-09-25 16:35:05 UTC
(In reply to comment #5)
> Hmm,
> 
> I already was afraid something like this might happen. What you can do is try
> to run the game from a text console (cttrl+alt+F2) after doing;
> export DISPLAY=:0.0
> 
> In the console first, so that it knows how to find X.
> 
> After typing "run" in gdb you need to switch back to X asap, because ballbuster
> will try to change the resolution and if your not back in X by then, it will
> fail in a different way.  

Ok so CTRL+ ALT+F2 type DISPLAY=:0.0 (after login)
then gbd ballbuster, then CRTL+ALT+F1 to get back to X 
then when it fails CTRL+ ALT+F2 
type bt 
CRTL+ALT+F1 again then the traceback should display in X and I can put into a file and send here right?

Comment 7 Tim McConnell 2009-09-25 17:39:58 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > Hmm,
> > 
> > I already was afraid something like this might happen. What you can do is try
> > to run the game from a text console (cttrl+alt+F2) after doing;
> > export DISPLAY=:0.0
> > 
> > In the console first, so that it knows how to find X.
> > 
> > After typing "run" in gdb you need to switch back to X asap, because ballbuster
> > will try to change the resolution and if your not back in X by then, it will
> > fail in a different way.  
> 
> Ok so CTRL+ ALT+F2 type DISPLAY=:0.0 (after login)
> then gbd ballbuster, then CRTL+ALT+F1 to get back to X 
> then when it fails CTRL+ ALT+F2 
> type bt 
> CRTL+ALT+F1 again then the traceback should display in X and I can put into a
> file and send here right?  

Never mind it didn't work, Ballbuster just doesn't let go of the screen at all now and I have to reboot to get out of it. I type kill at the gdb prompt and it still shows the screen I was talking about earlier, but it never quits running and switching back to console and typing tb shows a breakpoint has been set but little else. 
Next idea??

Comment 8 Tim McConnell 2009-09-30 02:39:14 UTC
Got the GDB output. 
Had to ssh into localhost and use the tee command to get the output. 
Let me know if this is what you needed. 
1034hGNU gdb (GDB) Fedora (6.8.50.20090302-38.fc11)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
(gdb) run
Starting program: /usr/bin/ballbuster 
[Thread debugging using libthread_db enabled]
[New Thread 0xb3fd8b70 (LWP 7524)]
[New Thread 0xb33ffb70 (LWP 7525)]

Program received signal SIGABRT, Aborted.
0x001c0422 in __kernel_vsyscall ()
(gdb) next
Single stepping until exit from function __kernel_vsyscall, 
which has no line number information.
[Thread 0xb33ffb70 (LWP 7525) exited]
[Thread 0xb3fd8b70 (LWP 7524) exited]

Program terminated with signal SIGABRT, Aborted.
The program no longer exists.
(gdb) run
Starting program: /usr/bin/ballbuster 
[Thread debugging using libthread_db enabled]
[New Thread 0xb3fd8b70 (LWP 7530)]
[New Thread 0xb33ffb70 (LWP 7531)]

Program received signal SIGABRT, Aborted.
0x00609422 in __kernel_vsyscall ()
(gdb) where
#0  0x00609422 in __kernel_vsyscall ()
#1  0x00a017c1 in *__GI_raise (sig=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x00a03092 in *__GI_abort () at abort.c:88
#3  0x023f744f in __gnu_cxx::__verbose_terminate_handler ()
    at ../../../../libstdc++-v3/libsupc++/vterminate.cc:93
#4  0x023f5385 in __cxxabiv1::__terminate (
    handler=0x23f7300 <__gnu_cxx::__verbose_terminate_handler()>)
    at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:38
#5  0x023f53c2 in std::terminate ()
    at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
#6  0x023f5501 in __cxxabiv1::__cxa_throw(void *, struct std::type_info *, void (*)(void *)) (obj=0x808d338, tinfo=0xc1a45c, dest=
    0xbe4a10 <CL_Error::~CL_Error(void)>)
    at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:83
#7  0x00c00f1b in CL_DisplayWindow_OpenGL::create_window (this=0x8077c28, desc=
    @0xbffff588) at GLX/display_window_opengl.cpp:154
#8  0x00c52752 in CL_DisplayWindow::CL_DisplayWindow (this=0xbffff608, 
    title="Ball: Buster", width=800, height=600, start_fullscreen=true, 
    allow_resize=<value optimized out>, flipping_buffers=2)
    at display_window.cpp:65
#9  0x0805f722 in testy::main (this=0x8065a40, argc=1, argv=0xbffff704)
    at main.cpp:132
#10 0x00bb7c40 in main (argc=1, argv=0xbffff704) at Unix/clanapp.cpp:47
#11 0x009eca66 in __libc_start_main (main=0x804ac80 <main@plt>, argc=1, 
    ubp_av=0xbffff704, init=0x8060e20 <__libc_csu_init>, 
    fini=0x8060e10 <__libc_csu_fini>, rtld_fini=0x9c2030 <_dl_fini>, 
    stack_end=0xbffff6fc) at libc-start.c:220
#12 0x0804b431 in _start ()
(gdb) bt
#0  0x00609422 in __kernel_vsyscall ()
#1  0x00a017c1 in *__GI_raise (sig=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x00a03092 in *__GI_abort () at abort.c:88
#3  0x023f744f in __gnu_cxx::__verbose_terminate_handler ()
    at ../../../../libstdc++-v3/libsupc++/vterminate.cc:93
#4  0x023f5385 in __cxxabiv1::__terminate (
    handler=0x23f7300 <__gnu_cxx::__verbose_terminate_handler()>)
    at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:38
#5  0x023f53c2 in std::terminate ()
    at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
#6  0x023f5501 in __cxxabiv1::__cxa_throw(void *, struct std::type_info *, void (*)(void *)) (obj=0x808d338, tinfo=0xc1a45c, 
    dest=0xbe4a10 <CL_Error::~CL_Error(void)>)
    at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:83
#7  0x00c00f1b in CL_DisplayWindow_OpenGL::create_window (this=0x8077c28, 
    desc=@0xbffff588) at GLX/display_window_opengl.cpp:154
#8  0x00c52752 in CL_DisplayWindow::CL_DisplayWindow (this=0xbffff608, 
    title="Ball: Buster", width=800, height=600, start_fullscreen=true, 
    allow_resize=<value optimized out>, flipping_buffers=2)
    at display_window.cpp:65
#9  0x0805f722 in testy::main (this=0x8065a40, argc=1, argv=0xbffff704)
    at main.cpp:132
#10 0x00bb7c40 in main (argc=1, argv=0xbffff704) at Unix/clanapp.cpp:47
#11 0x009eca66 in __libc_start_main (main=0x804ac80 <main@plt>, argc=1, 
    ubp_av=0xbffff704, init=0x8060e20 <__libc_csu_init>, 
    fini=0x8060e10 <__libc_csu_fini>, rtld_fini=0x9c2030 <_dl_fini>, 
    stack_end=0xbffff6fc) at libc-start.c:220
#12 0x0804b431 in _start ()
(gdb) quit

Comment 9 Hans de Goede 2009-09-30 07:34:00 UTC
Thx for the backtrace. However it looks like the program is not segfaulting
in this case, but aborting itself for some reason.

Did you do:
export DISPLAY=:0.0

Before starting gdb from the ssh shell, and were you logged into X, with X showing when running ballbuster from the ssh connection ?

Comment 10 Tim McConnell 2009-09-30 15:25:37 UTC
(In reply to comment #9)
> Thx for the backtrace. However it looks like the program is not segfaulting
> in this case, but aborting itself for some reason.
> 
> Did you do:
> export DISPLAY=:0.0
> 
> Before starting gdb from the ssh shell, and were you logged into X, with X
> showing when running ballbuster from the ssh connection ?  

UGH!! I forgot the export command. I was in X at least. Let me retry again.

Comment 11 Tim McConnell 2009-09-30 15:47:12 UTC
Correctly gathered backtrace, from ssh, exported display 0.0, was in X when failed.

GNU gdb (GDB) Fedora (6.8.50.20090302-38.fc11)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
(gdb) run
Starting program: /usr/bin/ballbuster 
[Thread debugging using libthread_db enabled]
[New Thread 0xb3fd8b70 (LWP 24737)]
[New Thread 0xb33ffb70 (LWP 24739)]

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) where
#0  0x00000000 in ?? ()
#1  0x007636bc in fast_read_rgba_pixels (transferOps=<value optimized out>, packing=<value optimized out>, pixels=<value optimized out>, 
    type=<value optimized out>, format=<value optimized out>, height=<value optimized out>, width=<value optimized out>, y=<value optimized out>, 
    x=<value optimized out>, ctx=<value optimized out>) at swrast/s_readpix.c:240
#2  read_rgba_pixels (transferOps=<value optimized out>, packing=<value optimized out>, pixels=<value optimized out>, type=<value optimized out>, 
    format=<value optimized out>, height=<value optimized out>, width=<value optimized out>, y=<value optimized out>, x=<value optimized out>, 
    ctx=<value optimized out>) at swrast/s_readpix.c:336
#3  0x007641f9 in _swrast_ReadPixels (ctx=0x80ab738, x=0, y=0, width=800, height=600, format=6408, type=5121, packing=<value optimized out>, pixels=0xb21d8008)
    at swrast/s_readpix.c:605
#4  0x0037b000 in intelReadPixels (ctx=0x80ab738, x=0, y=0, width=800, height=600, format=6408, type=5121, pack=0x80b860c, pixels=0xb21d8008)
    at intel_pixel_read.c:305
#5  0x006e152f in _mesa_ReadPixels (x=0, y=0, width=800, height=600, format=6408, type=5121, pixels=0xb21d8008) at main/readpix.c:191
#6  0x00bda7ba in CL_GraphicContext_OpenGL::get_pixeldata (this=0x8080610, rect=@0xbffff540, frame=1028) at graphic_context_opengl.cpp:124
#7  0x00c5ab5a in CL_GraphicContext::get_pixeldata (this=0x80804a8, rect=@0xbffff540, i=1028) at graphic_context.cpp:94
#8  0x00bfc861 in CL_DisplayWindow_OpenGL::get_buffer (this=0x8080438, i=0) at GLX/display_window_opengl.cpp:113
#9  0x00c52102 in CL_DisplayWindow::get_buffer (this=0xbffff5e8, i=0) at display_window.cpp:135
#10 0x0805f74d in testy::main (this=0x8065a40, argc=1, argv=0xbffff6e4) at main.cpp:134
#11 0x00bb7c40 in main (argc=1, argv=0xbffff6e4) at Unix/clanapp.cpp:47
#12 0x009eca66 in __libc_start_main (main=0x804ac80 <main@plt>, argc=1, ubp_av=0xbffff6e4, init=0x8060e20 <__libc_csu_init>, fini=0x8060e10 <__libc_csu_fini>, 
    rtld_fini=0x9c2030 <_dl_fini>, stack_end=0xbffff6dc) at libc-start.c:220
#13 0x0804b431 in _start ()
(gdb) bt
#0  0x00000000 in ?? ()
#1  0x007636bc in fast_read_rgba_pixels (transferOps=<value optimized out>, packing=<value optimized out>, pixels=<value optimized out>, 
    type=<value optimized out>, format=<value optimized out>, height=<value optimized out>, width=<value optimized out>, y=<value optimized out>, 
    x=<value optimized out>, ctx=<value optimized out>) at swrast/s_readpix.c:240
#2  read_rgba_pixels (transferOps=<value optimized out>, packing=<value optimized out>, pixels=<value optimized out>, type=<value optimized out>, 
    format=<value optimized out>, height=<value optimized out>, width=<value optimized out>, y=<value optimized out>, x=<value optimized out>, 
    ctx=<value optimized out>) at swrast/s_readpix.c:336
#3  0x007641f9 in _swrast_ReadPixels (ctx=0x80ab738, x=0, y=0, width=800, height=600, format=6408, type=5121, packing=<value optimized out>, pixels=0xb21d8008)
    at swrast/s_readpix.c:605
#4  0x0037b000 in intelReadPixels (ctx=0x80ab738, x=0, y=0, width=800, height=600, format=6408, type=5121, pack=0x80b860c, pixels=0xb21d8008)
    at intel_pixel_read.c:305
#5  0x006e152f in _mesa_ReadPixels (x=0, y=0, width=800, height=600, format=6408, type=5121, pixels=0xb21d8008) at main/readpix.c:191
#6  0x00bda7ba in CL_GraphicContext_OpenGL::get_pixeldata (this=0x8080610, rect=@0xbffff540, frame=1028) at graphic_context_opengl.cpp:124
#7  0x00c5ab5a in CL_GraphicContext::get_pixeldata (this=0x80804a8, rect=@0xbffff540, i=1028) at graphic_context.cpp:94
#8  0x00bfc861 in CL_DisplayWindow_OpenGL::get_buffer (this=0x8080438, i=0) at GLX/display_window_opengl.cpp:113
#9  0x00c52102 in CL_DisplayWindow::get_buffer (this=0xbffff5e8, i=0) at display_window.cpp:135
#10 0x0805f74d in testy::main (this=0x8065a40, argc=1, argv=0xbffff6e4) at main.cpp:134
#11 0x00bb7c40 in main (argc=1, argv=0xbffff6e4) at Unix/clanapp.cpp:47
#12 0x009eca66 in __libc_start_main (main=0x804ac80 <main@plt>, argc=1, ubp_av=0xbffff6e4, init=0x8060e20 <__libc_csu_init>, fini=0x8060e10 <__libc_csu_fini>, 
    rtld_fini=0x9c2030 <_dl_fini>, stack_end=0xbffff6dc) at libc-start.c:220
#13 0x0804b431 in _start ()
(gdb) quit

Let me know if it's useful.

Comment 12 Hans de Goede 2009-09-30 18:13:13 UTC
Thanks, the crash seems to be inside Mesa, so I'm changing the component to Mesa.

Comment 13 Eddie Lania 2009-10-11 16:06:23 UTC
Same problems with ballbuster here.

Comment 14 Eddie Lania 2009-10-14 20:17:18 UTC
Created attachment 364803 [details]
strace of ballbuster

Comment 15 Matěj Cepl 2009-11-05 18:38:18 UTC
Since this bugzilla report was filed, there have been several major updates in various components of the Xorg system, which may have resolved this issue. Users who have experienced this problem are encouraged to upgrade their system to the latest version of their packages. For packages from updates-testing repository you can use command

yum upgrade --enablerepo='*-updates-testing'

Alternatively, you can also try to test whether this bug is reproducible with the upcoming Fedora 12 distribution by downloading LiveMedia of F12 Beta available at http://alt.fedoraproject.org/pub/alt/nightly-composes/ . By using that you get all the latest packages without need to install anything on your computer. For more information on using LiveMedia take a look at https://fedoraproject.org/wiki/FedoraLiveCD .

Please, if you experience this problem on the up-to-date system, let us now in the comment for this bug, or whether the upgraded system works for you.

If you won't be able to reply in one month, I will have to close this bug as INSUFFICIENT_DATA. Thank you.

[This is a bulk message for all open Fedora Rawhide Xorg-related bugs. I'm adding myself to the CC list for each bug, so I'll see any comments you make after this and do my best to make sure every issue gets proper attention.]

Comment 16 Tim McConnell 2009-11-05 20:29:29 UTC
Ran update command as you requested Ballbuster still fails. 
attaching latest gdb trace

Comment 17 Tim McConnell 2009-11-05 20:31:50 UTC
Created attachment 367700 [details]
gdb trace from 11-05-2009

Current gdb trace after running update with testing repos enabled

Comment 18 Eddie Lania 2009-11-27 18:53:42 UTC
I upgraded from F11 to F12 and now ballbuster works fine again.

Comment 19 Matěj Cepl 2009-12-03 00:20:48 UTC
Thank you for letting us know.