Bug 471868 - Audacious crashed with "Illegal instruction" on startup
Summary: Audacious crashed with "Illegal instruction" on startup
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: audacious
Version: 10
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Ralf Ertzinger
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 459318 473321 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-11-17 10:51 UTC by Steve Hill
Modified: 2008-12-21 09:21 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-12-21 08:32:47 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Steve Hill 2008-11-17 10:51:48 UTC
Description of problem:
Audacious won't start at all - it bombs out with "Illegal instruction" immediately.

Version-Release number of selected component (if applicable):
audacious-1.5.1-4.fc10.i386
audacious-plugins-1.5.1-2.fc10.i386
audacious-libs-1.5.1-4.fc10.i386

How reproducible:
Always

Steps to Reproduce:
1. Install Audacious
2. Start Audacious
3. Observe Audacious bimb out before even displaying the window
  
Actual results:
[steve@rivendell ~]$ audacious 
I/O warning : failed to load external entity "/home/steve/.config/audacious/playlist.xspf"
Illegal instruction
[steve@rivendell ~]$ 

Expected results:
Display the Audacious window and work.

Additional info:
This is a clean install - no existing Audacious config in the home directory.

Comment 1 Steve Hill 2008-11-17 12:19:17 UTC
Additional info: This is running on an Athlon XP 2100+.

Stack trace:

Program received signal SIGILL, Illegal instruction.
0x080a3104 in ui_skinned_equalizer_slider_set_position (widget=0x82f1ad8, 
    pos=0) at ui_skinned_equalizer_slider.c:355
355	    priv->position = 25 - (gint) ((pos * 25.0) / EQUALIZER_MAX_GAIN);


Thread 4 (Thread 0xb5a4ab90 (LWP 8263)):
#0  0x00110416 in __kernel_vsyscall ()
#1  0x00cdb0a5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0x0805ea79 in playlist_get_info_func (arg=0x0) at playlist.c:2518
#3  0x002d8b5f in g_thread_create_proxy (data=<value optimized out>)
    at gthread.c:635
#4  0x00cd751f in start_thread () from /lib/libpthread.so.0
#5  0x004b702e in clone () from /lib/libc.so.6

Thread 3 (Thread 0xb6857b90 (LWP 8262)):
#0  0x00110416 in __kernel_vsyscall ()
#1  0x00cdb0a5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0x00718854 in ?? () from /usr/lib/audacious/Input/cuesheet.so
#3  0x002d8b5f in g_thread_create_proxy (data=<value optimized out>)
    at gthread.c:635
#4  0x00cd751f in start_thread () from /lib/libpthread.so.0
#5  0x004b702e in clone () from /lib/libc.so.6

Thread 2 (Thread 0xb7cd2b90 (LWP 8260)):
#0  0x00110416 in __kernel_vsyscall ()
#1  0x00cdf340 in sigwait () from /lib/libpthread.so.0
#2  0x08065a9c in signal_process_signals (data=0x0) at signals.c:101
#3  0x002d8b5f in g_thread_create_proxy (data=<value optimized out>)
    at gthread.c:635
#4  0x00cd751f in start_thread () from /lib/libpthread.so.0
#5  0x004b702e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb7fdd710 (LWP 8251)):
#0  0x080a3104 in ui_skinned_equalizer_slider_set_position (widget=0x82f1ad8, 
    pos=0) at ui_skinned_equalizer_slider.c:355
#1  0x0806e8ef in equalizerwin_create_widgets () at ui_equalizer.c:468
#2  equalizerwin_create () at ui_equalizer.c:547
#3  0x0809760d in init_skins (
    path=0x80b52e4 "/usr/share/xmms/Skins/Bluecurve-xmms.zip") at ui_skin.c:526
#4  0x0805a091 in main (argc=1, argv=0xbffff534) at main.c:756

Comment 2 Steve Hill 2008-11-17 12:32:20 UTC
Disassembling the code gives me:

0x080a30ea <ui_skinned_equalizer_slider_set_position+154>:	fstps  0x1c(%ecx)
0x080a30ed <ui_skinned_equalizer_slider_set_position+157>:	mov    $0x19,%edx
0x080a30f2 <ui_skinned_equalizer_slider_set_position+162>:	flds   -0xc(%ebp)
0x080a30f5 <ui_skinned_equalizer_slider_set_position+165>:	fmuls  0x80d99a4
0x080a30fb <ui_skinned_equalizer_slider_set_position+171>:	fdivs  0x80b4900
0x080a3101 <ui_skinned_equalizer_slider_set_position+177>:	fstpl  -0x18(%ebp)
0x080a3104 <ui_skinned_equalizer_slider_set_position+180>:	cvttsd2si -0x18(%ebp),%eax
0x080a3109 <ui_skinned_equalizer_slider_set_position+185>:	sub    %eax,%edx
0x080a310b <ui_skinned_equalizer_slider_set_position+187>:	test   %edx,%edx
0x080a310d <ui_skinned_equalizer_slider_set_position+189>:	mov    %edx,0x8(%ecx)

The crash happens at 0x080a3104 - cvttsd2si appears to be an SSE2 instruction, but Athlon XP processors don't support SSE2 so it is bombing - the package needs to be recompiled without SSE2 enabled (assuming all i386 architectures have SSE2 is not sane).

Comment 3 Dominik 'Rathann' Mierzejewski 2008-11-17 14:08:29 UTC
It might be worth looking at audacious(-plugins) build logs and checking if somehow some SSE2 optimizations are compiled-in unconditionally. If the code is in a library, then it could be built twice, once with and once without SSE2 and the SSE2-enabled version could be placed in /usr/lib/sse2. That is, of course, if upstream can't be convinced to add runtime detection.

Comment 4 Michael Schwendt 2008-11-17 14:15:07 UTC
Great, Steve!

http://kojipkgs.fedoraproject.org/packages/audacious/1.5.1/4.fc10/data/logs/i386/build.log

checking SSE2 support... yes

Indeed, several files are compiled with -msse2

Comment 5 Ralf Ertzinger 2008-11-17 15:02:29 UTC
I could have sworn that we built audacious with --disable-sse2. Turns out that we don't. I've built a new version in rawhide. If that turns out to be sufficient I'll push an update for F10 as well.

Comment 6 Steve Hill 2008-11-17 16:04:13 UTC
Thanks Ralf - the new packages seem to do the job! :)

Comment 7 Bug Zapper 2008-11-26 05:30:40 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 10 development cycle.
Changing version to '10'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 8 Thomas Moschny 2008-11-27 00:02:35 UTC
Same problem here with audacious-1.5.1-4.fc10.i386 on Athlon XP. audacious-1.5.1-5.fc11.i386 works fine. Please provide an update for f10.

Comment 9 Fedora Update System 2008-11-27 12:04:51 UTC
audacious-1.5.1-5.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/audacious-1.5.1-5.fc10

Comment 10 Ralf Ertzinger 2008-11-27 18:11:48 UTC
*** Bug 473321 has been marked as a duplicate of this bug. ***

Comment 11 Fedora Update System 2008-12-03 01:31:38 UTC
audacious-1.5.1-5.fc10 has been pushed to the Fedora 10 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update audacious'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F10/FEDORA-2008-10718

Comment 12 Joachim Backes 2008-12-03 07:00:20 UTC
The patch I download from http://admin.fedoraproject.org/updates/F10/FEDORA-2008-10718 lets run audacious properly. Problem seems to be solved.

Comment 13 Michael Schwendt 2008-12-03 14:24:21 UTC
*** Bug 459318 has been marked as a duplicate of this bug. ***

Comment 14 Jérôme Benoit 2008-12-03 16:36:40 UTC
yum update --enablerepo=updates-testing audacious 

do not pull according audacious-libs automatically.

Otherwise, it start but still refuse to play .ogg and .mp3.

Thks.

Comment 15 Jérôme Benoit 2008-12-03 16:39:20 UTC
[fraggle@morphee ~]$ audacious  
MADPlug-Message: failed to open audio output: XMMS reverse compatibility output plugin
MADPlug-Message: failed to open audio output: XMMS reverse compatibility output plugin

Comment 16 Fedora Update System 2008-12-21 08:32:44 UTC
audacious-1.5.1-5.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.