FS#15432 - [fluidsynth] crashes with illegal instruction

Attached to Project: Arch Linux
Opened by Jonas Nyrén (jonas) - Tuesday, 07 July 2009, 20:59 GMT
Last edited by Roman Kyrylych (Romashka) - Sunday, 26 July 2009, 09:08 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Andrea Scarpino (BaSh)
Architecture i686
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
After installing audacious2 and audacious2-plugins from aur I proceeded to check out the amid plugin, and as soon as I chose the fluidsynth backend it crashes with "Illegal Instruction". After som investigation with gdb libfluidsynth.so is the culprit.

Additional info:
fluidsynth 1.0.9-1 from extra
backtrace from gdb:
Program received signal SIGILL, Illegal instruction.
0xb23c22be in fluid_estimate_cpu_frequency () from /usr/lib/libfluidsynth.so.1
(gdb) bt
#0 0xb23c22be in fluid_estimate_cpu_frequency () from /usr/lib/libfluidsynth.so.1
#1 0x00000001 in ?? ()
#2 0x400bf800 in ?? ()
#3 0xcccccccd in ?? ()
#4 0xb23d2a5c in sinc_table7 () from /usr/lib/libfluidsynth.so.1
#5 0x000662e2 in ?? ()
#6 0x50ea8d87 in ?? ()
#7 0x0000007e in ?? ()
#8 0xb239c16a in fluid_conversion_config () from /usr/lib/libfluidsynth.so.1
#9 0xb23c2337 in fluid_time_config () from /usr/lib/libfluidsynth.so.1
#10 0x00000000 in ?? ()


Steps to reproduce:
start audacious2, go into preferences->plugins, select amid plugin and press configure, choose fluidsynth backend -> crash.

This is with the i686 package, the x86_64 package seems to be fine, according to a friend.
This task depends upon

Closed by  Roman Kyrylych (Romashka)
Sunday, 26 July 2009, 09:08 GMT
Reason for closing:  Fixed
Comment by Gerardo Exequiel Pozzi (djgera) - Tuesday, 07 July 2009, 21:10 GMT
  • Field changed: Summary (libfluidsynth.so crashes with illegal instruction → [fluidsynth] crashes with illegal instruction)
  • Field changed: Status (Unconfirmed → Assigned)
  • Field changed: Severity (Critical → High)
  • Task assigned to Allan McRae (Allan)
see what is the instruction at x/i 0xb23c22be

Probably you are on Pentium III and the code is SSE2. of course this is incorrect for i686 pkg.
Comment by Gerardo Exequiel Pozzi (djgera) - Tuesday, 07 July 2009, 23:59 GMT
Yes, /usr/lib/libfluidsynth.so.1.1.3 (from 1.0.9-1-i686) contains many SSE2 instructions.

A searching for "tipical case" movq with xmm register appears 26 times in the code :P
objdump -d /usr/lib/libfluidsynth.so.1.1.3 | grep "movq.*xmm"
Comment by Andrea Scarpino (BaSh) - Wednesday, 08 July 2009, 10:00 GMT
please try 1.0.9-2
Comment by Jonas Nyrén (jonas) - Wednesday, 08 July 2009, 11:48 GMT
Yes I am on a machine without SSE2 (AMD Athlon XP), so this is probably the reason why.
Where do i find 1.0.9-2? I am not using any testing repo.
Comment by Gerardo Exequiel Pozzi (djgera) - Tuesday, 14 July 2009, 04:17 GMT
@Andrea: there are no 1.0.9-2 at this time, changes commited to SVN but no pkg is on repos.
Comment by Andrea Scarpino (BaSh) - Wednesday, 22 July 2009, 07:41 GMT
unluckily I forgot to run db-extra before to go.
1.0.9-1.1 in [extra] now
Comment by Jonas Nyrén (jonas) - Sunday, 26 July 2009, 08:30 GMT
Yep, now it appears the SSE2 instructions have been removed. Everything works as far as i have tested.

Loading...