Bug 141764

Summary: Running an SDL application as non root user causes segfault if artsd is running
Product: [Fedora] Fedora Reporter: Nicholas Allen <nick.allen>
Component: SDLAssignee: Thomas Woerner <twoerner>
Status: CLOSED INSUFFICIENT_DATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 3   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-05-06 12:26:16 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:

Description Nicholas Allen 2004-12-03 17:07:17 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5)
Gecko/20041111 Firefox/1.0

Description of problem:
If I log in as a non root user into KDE and enable the sound system
(artsd) then if I try to run any SDL application (eg frozen-bubble)
that uses sound then I always get a segfaul (SDL Parachute Deployed).

If I choose not to run artsd then the program works fine (I just have
no sound output but it doesn't crash). Also if I run as root user then
it works even if artsd is running

Version-Release number of selected component (if applicable):
1.2.5

How reproducible:
Always

Steps to Reproduce:
1.Enable sound system in KDE
2.Run frozen-bubble or other SDL program requiring sound
3.Watch as it crashes dismally every time ;-(
    

Additional info:

Fatal signal: Segmentation Fault (SDL Parachute Deployed)
Segmentation fault

Comment 1 Sitsofe Wheeler 2004-12-04 09:42:00 UTC
Please add the output of lspci -v

Comment 2 Thomas Woerner 2004-12-06 09:47:14 UTC
SDL-1.2.5 is old. Please upgrade to the FC-3 package SDL-1.2.7-8 with
a fix for this problem.

Comment 3 Nicholas Allen 2004-12-06 11:18:40 UTC
I have upgraded SDL to 1.2.7-8 and the problem still remains exactly 
the same as before. 

Comment 4 Nicholas Allen 2004-12-06 11:19:52 UTC
Output of lspci -v 
 
00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller 
(rev 03) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, fast devsel, latency 0 
        Memory at e0000000 (32-bit, prefetchable) [size=256M] 
        Capabilities: <available only to root> 
 
00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller 
(rev 03) (prog-if 00 [Normal decode]) 
        Flags: bus master, 66Mhz, fast devsel, latency 96 
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=64 
        I/O behind bridge: 00003000-00003fff 
        Memory behind bridge: d0100000-d01fffff 
        Prefetchable memory behind bridge: d8000000-dfffffff 
 
00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM 
(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03) (prog-if 00 
[UHCI]) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, medium devsel, latency 0, IRQ 10 
        I/O ports at 1800 [size=32] 
 
00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM 
(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03) (prog-if 00 
[UHCI]) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, medium devsel, latency 0, IRQ 11 
        I/O ports at 1820 [size=32] 
 
00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM 
(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 03) (prog-if 00 
[UHCI]) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, medium devsel, latency 0, IRQ 11 
        I/O ports at 1840 [size=32] 
 
00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB2 
EHCI Controller (rev 03) (prog-if 20 [EHCI]) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, medium devsel, latency 0, IRQ 11 
        Memory at d0000000 (32-bit, non-prefetchable) [size=1K] 
        Capabilities: <available only to root> 
 
00:1e.0 PCI bridge: Intel Corp. 82801 Mobile PCI Bridge (rev 83) 
(prog-if 00 [Normal decode]) 
        Flags: bus master, fast devsel, latency 0 
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=64 
        Memory behind bridge: d0200000-d02fffff 
 
00:1f.0 ISA bridge: Intel Corp. 82801DBM (ICH4-M) LPC Interface 
Bridge (rev 03) 
        Flags: bus master, medium devsel, latency 0 
 
00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4-M) IDE Controller 
(rev 03) (prog-if 8a [Master SecP PriP]) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, medium devsel, latency 0, IRQ 11 
        I/O ports at <unassigned> 
        I/O ports at <unassigned> 
        I/O ports at <unassigned> 
        I/O ports at <unassigned> 
        I/O ports at 1860 [size=16] 
        Memory at 20000000 (32-bit, non-prefetchable) [size=1K] 
 
00:1f.3 SMBus: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus 
Controller (rev 03) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: medium devsel, IRQ 11 
        I/O ports at 1880 [size=32] 
 
00:1f.5 Multimedia audio controller: Intel Corp. 82801DB/DBL/DBM 
(ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, medium devsel, latency 0, IRQ 11 
        I/O ports at 1c00 [size=256] 
        I/O ports at 18c0 [size=64] 
        Memory at d0000c00 (32-bit, non-prefetchable) [size=512] 
        Memory at d0000800 (32-bit, non-prefetchable) [size=256] 
        Capabilities: <available only to root> 
 
00:1f.6 Modem: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 
Modem Controller (rev 03) (prog-if 00 [Generic]) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, medium devsel, latency 0, IRQ 11 
        I/O ports at 2400 [size=256] 
        I/O ports at 2000 [size=128] 
        Capabilities: <available only to root> 
 
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 
Lf [Radeon Mobility 9000 M9] (rev 02) (prog-if 00 [VGA]) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, stepping, fast Back2Back, 66Mhz, medium 
devsel, latency 66, IRQ 10 
        Memory at d8000000 (32-bit, prefetchable) [size=128M] 
        I/O ports at 3000 [size=256] 
        Memory at d0100000 (32-bit, non-prefetchable) [size=64K] 
        Capabilities: <available only to root> 
 
02:02.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705 
Gigabit Ethernet (rev 01) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, 66Mhz, medium devsel, latency 64, IRQ 11 
        Memory at d0200000 (64-bit, non-prefetchable) [size=64K] 
        Capabilities: <available only to root> 
 
02:04.0 Network controller: Intel Corp. PRO/Wireless LAN 2100 3B Mini 
PCI Adapter (rev 04) 
        Subsystem: Intel Corp. MIM2000/Centrino 
        Flags: bus master, medium devsel, latency 64, IRQ 10 
        Memory at d0214000 (32-bit, non-prefetchable) [size=4K] 
        Capabilities: <available only to root> 
 
02:06.0 CardBus bridge: O2 Micro, Inc. OZ6912 Cardbus Controller 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, stepping, slow devsel, latency 168, IRQ 11 
        Memory at 20001000 (32-bit, non-prefetchable) [size=4K] 
        Bus: primary=02, secondary=03, subordinate=06, 
sec-latency=176 
        Memory window 0: 20400000-207ff000 (prefetchable) 
        Memory window 1: 20800000-20bff000 
        I/O window 0: 00004000-000040ff 
        I/O window 1: 00004400-000044ff 
        16-bit legacy interface ports at 0001 
 
02:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 
IEEE-1394a-2000 Controller (PHY/Link) (prog-if 10 [OHCI]) 
        Subsystem: QUANTA Computer Inc: Unknown device 0706 
        Flags: bus master, medium devsel, latency 64, IRQ 11 
        Memory at d0215000 (32-bit, non-prefetchable) [size=2K] 
        Memory at d0210000 (32-bit, non-prefetchable) [size=16K] 
        Capabilities: <available only to root> 
 

Comment 5 Thomas Woerner 2004-12-06 11:43:43 UTC
Is your copy of frozen-bubble statically linked? Is is using the
newest SDL library on your system?

Can you please verify this with a game, which is part of fedora?
Please run the program in a debugger and attach the backtrace.

Comment 6 Nicholas Allen 2004-12-06 16:45:15 UTC
frozen-bubble is a perl script so it is not statically linked to SDL 
(I was suprised too!). 
 
I ran frozen-bubble inside gdb but because the SDL library has no 
debugging symbols the stach trace is probably of very little help: 
 
[Sound Init] 
 
Program received signal SIGSEGV, Segmentation fault. 
[Switching to Thread 35609520 (LWP 7012)] 
0x009ac226 in do_lookup_x () from /lib/ld-linux.so.2 
 
It always happens in the sound initialisation (only if artsd is 
running).  
 
Should I download the source rpm for SDL and recompile (please tell 
me how to enable debug for a source rpm) or should I just download 
the SDL source and enable debugging? 
 
I did a quick search on the internet and it appears many people have 
this problem too and it is a very old bug in SDL. I guess noone 
bothered to submit any bug reports ;-( 
 
Anyway, I will be glad to help get a better stack trace if you are 
having difficulty reproducing this bug. I'll download the official 
SDL sourvce code in the meantime and enable debugging. I'll let you 
know as soon as I get a better stack trace... 
 

Comment 7 Nicholas Allen 2004-12-06 17:09:56 UTC
SDL doesn't compile under FC3. I guess redhat has applied some 
patches so I have to build from redhat sources to get a better stack 
trace? I get this error when building from the official SDL 1.2.7 
source code: 
 
 gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" 
-DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" 
-DPACKAGE=\"SDL\" -DVERSION=\"1.2.7\" -DSTDC_HEADERS=1 
-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 
-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 
-DHAVE_DLFCN_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -I. -I. -g -O2 
-Wall -DENABLE_DUMMYVIDEO -DDISKAUD_SUPPORT -DUSE_DLOPEN 
-DOSS_SUPPORT -DALSA_SUPPORT -DARTSC_SUPPORT 
-DARTSC_DYNAMIC=libartsc.so.0 -I/usr/include/kde/artsc -pthread 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DESD_SUPPORT 
-DESD_DYNAMIC=libesd.so.0 -I/usr/X11R6/include -DENABLE_X11 
-DXTHREADS -I./include -I./src/video -DXFREE86_VM -DXFREE86_VMGAMMA 
-DXFREE86_DGAMOUSE -DDEFAULT_DGAMOUSE -DXFREE86_XV -DHAVE_XINERAMA 
-Isrc/video -DENABLE_DGA -DENABLE_FBCON -DHAVE_OPENGL 
-DUSE_INPUT_EVENTS -D_REENTRANT -DSDL_USE_PTHREADS -DHAVE_SIGACTION 
-I../../include -I../../include/SDL -I../../src 
-I../../src/main/linux -I../../src/audio -I../../src/video 
-I../../src/video/XFree86/extensions -I../../src/events 
-I../../src/joystick -I../../src/cdrom -I../../src/thread 
-I../../src/timer -I../../src/endian -I../../src/file 
-I../../src/thread -MT SDL_cpuinfo.lo -MD -MP 
-MF .deps/SDL_cpuinfo.Tpo -c SDL_cpuinfo.c  -fPIC -DPIC 
-o .libs/SDL_cpuinfo.o 
SDL_cpuinfo.c: In function `SDL_GetCPUFeatures': 
SDL_cpuinfo.c:107: error: PIC register `%ebx' clobbered in `asm' 
SDL_cpuinfo.c:107: error: PIC register `%ebx' clobbered in `asm' 
SDL_cpuinfo.c:143: error: PIC register `%ebx' clobbered in `asm' 
SDL_cpuinfo.c:143: error: PIC register `%ebx' clobbered in `asm' 
SDL_cpuinfo.c:143: error: PIC register `%ebx' clobbered in `asm' 
SDL_cpuinfo.c:107: error: PIC register `%ebx' clobbered in `asm' 
SDL_cpuinfo.c:107: error: PIC register `%ebx' clobbered in `asm' 
 

Comment 8 Thomas Woerner 2004-12-07 15:37:40 UTC
Please use another application to reproduce this problem. 

You wrote "if I try to run any SDL application (eg frozen-bubble)", so
this problem should occur with other applications, too.


Comment 9 Nicholas Allen 2004-12-07 17:00:37 UTC
The reason I use frozen-bubble is because all the other SDL programs 
change my sceen resolution just before crashing and then my X server 
gets messed up. Sometimes the mouse is grabbed and sometimes my 
original X screen just never comes back. The only option then is to 
kill the X server (just killing the offending app can still leave the 
resolution messed up and the mouse and keboard not functioning 
properly). With frozen-bubble I set the settings to use a separate 
window and not to use full screen. This way I can always reproduce 
the problem without having to kill my X server and without any mouse 
or keyboard issues. 
 
It is the easiest way to safely reproduce the problem on my system 
and be able to examine stack traces etc under gdb.  
 
Do you have any othger suggestion for an SDL program that doesn't 
want to run full screen? All the other games I use want to run in 
full screen mode. 
 
I tried using Xnest but then there is a completely different crash 
related to Xnest that has nothing to do with this bug so I can't 
reproduce this bug under Xnest. 
 
 

Comment 10 Sitsofe Wheeler 2005-01-07 12:58:19 UTC
Two suggestions:
Does Maelstrom have this problem?
Does installing the debuginfo package for SDL produce a better backtrace?
(http://fedora.linux.duke.edu/wiki/StackTraces )

Comment 11 Sitsofe Wheeler 2005-01-09 23:04:31 UTC
I forgot to mention that Maelstrom can be run with a -window argument.

Comment 12 Michael Schwendt 2005-01-10 11:38:34 UTC
Actually other SDL applications are affected, too, occasionally. But
far from 100% reproducible. Everytime it happened to me I couldn't get
a single crash with debuginfo packages installed. "Fatal signal:
Segmentation Fault (SDL Parachute Deployed)" has been a reoccuring
error since Red Hat Linux 9.0.93 in bugzilla.fedora.us QA (searching
for "parachute" gives a few results) of e.g. tuxtype2, dosbox,
wesnoth. All available in http://fedoraproject.org/pre-extras/3 and
also the debuginfo packages in case more apps are needed. Enabling KDE
sound server is not enough here to reproduce it. It must be a very
special system state which triggers it.


Comment 13 Nicholas Allen 2005-01-14 12:51:23 UTC
Maelstrom crashes instantly but doesn't display the SDL parachute message only 
"Segmentation fault" so I assume it is crashing for different reasons. After 
installing the SDL_gfx-debuginfo package there was not a very helpful stack 
trace from Maelstrom: 
 
Program received signal SIGSEGV, Segmentation fault. 
[Switching to Thread 24894384 (LWP 9263)] 
0x00b582c1 in do_lookup_x () from /lib/ld-linux.so.2 
 
 

Comment 14 Sitsofe Wheeler 2005-01-14 20:25:47 UTC
That do_lookup_x problem sounds an awful lot like bug #134457 (although for the
record it is possible to use env vars like export SDL_AUDIODRIVER=alsa to change
which driver SDL will use). What is your artsd currently set to output sound to?

Comment 15 Nicholas Allen 2005-01-14 22:50:41 UTC
My artsd is set to output to ALSA but I also experience the same problem with 
it set to "Auto Detect" and "Open Sound System" 

Comment 16 Thomas Woerner 2006-01-27 13:57:48 UTC
Can you please have a look at the latest FC-4 update package of SDL (1.2.8-4).
It is using alsa output by default.

Is it solving your problem?

Comment 17 John Thacker 2006-05-06 12:26:16 UTC
Closing due to lack of response by reporter.