Linux users with ALSA reported that Tetrismus crashes on their system with a log like this:
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0x0000000a, pid=9024, tid=3085522624
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_06-b05 mixed mode, sharing)
# Problematic frame:
# C 0x0000000a
#
--------------- T H R E A D ---------------
Current thread (0x0805c9b8): JavaThread "main" [_thread_in_native, id=9024]
siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x0000000a
Registers:
EAX=0x00008010, EBX=0xb1b884b4, ECX=0x00000000, EDX=0x0000000a
ESP=0xbfffcdb8, EBP=0xbfffcde4, ESI=0x00000001, EDI=0x00008010
EIP=0x0000000a, CR2=0x0000000a, EFLAGS=0x00010282
Top of Stack: (sp=0xbfffcdb8)
0xbfffcdb8: b1b7e431 bfffcfec 00008010 00000001
0xbfffcdc8: 00000056 00000010 90e28010 91ec7a64
0xbfffcdd8: 00000000 0852b2e4 0852b2da bfffce14
0xbfffcde8: b1b7e431 bfffcfec 00008010 8caf5b10
0xbfffcdf8: bfffce6c 00000010 bfff8010 b7736b14
0xbfffce08: 00000000 0852b2fc 0852b2e6 bfffce44
0xbfffce18: b1b7e431 bfffcfec 00008010 b7736b14
0xbfffce28: bfffce88 00000010 bfff8010 b7737b60
Instructions: (pc=0x0000000a)
0xfffffffa:
Stack: [0xbfe00000,0xc0000000), sp=0xbfffcdb8, free space=2035k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C 0x0000000a
C [libopenal.so+0x3b431] acFreqDIV2+0x10d
C [libopenal.so+0x3b431] acFreqDIV2+0x10d
C [libopenal.so+0x3b431] acFreqDIV2+0x10d
C [libopenal.so+0x3b431] acFreqDIV2+0x10d
C [libopenal.so+0x3b431] acFreqDIV2+0x10d
C [libopenal.so+0x3b431] acFreqDIV2+0x10d
C [libopenal.so+0x3b431] acFreqDIV2+0x10d
C [libopenal.so+0x3b7c3] acConvert16LSB+0xc3
C [libopenal.so+0x3c127] acConvertSign+0xe3
C [libopenal.so+0x3c73b] acConvertAudio+0x5d
C [libopenal.so+0xa919]
C [libopenal.so+0x9ed3] _alBufferCanonizeData+0x32
C [libopenal.so+0x9924] alBufferData+0x2f3
C [liblwjgl.so+0x1b07f]
j org.lwjgl.openal.AL10.nalBufferData(IILjava/nio/Buffer;III)V+0
j org.lwjgl.openal.AL10.alBufferData(IILjava/nio/ByteBuffer;I)V+16
j game.output.SoundProcessor.loadALData(Ljava/lang/String;)I+61
j game.output.SoundProcessor.play(Ljava/lang/String;)V+59
j game.input.MenuInputProcessor.mapInput()V+200
j game.Tetrismus.menu(Z)V+47
j game.Tetrismus.run(Z)V+15
j game.Tetrismus.main([Ljava/lang/String;)V+39
v ~StubRoutines::call_stub
V [libjvm.so+0x174fec]
V [libjvm.so+0x2821f8]
V [libjvm.so+0x174e1f]
V [libjvm.so+0x19f5c2]
V [libjvm.so+0x1907d2]
C [java+0x1803]
C [libc.so.6+0x14e4b] __libc_start_main+0xcb
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.lwjgl.openal.AL10.nalBufferData(IILjava/nio/Buffer;III)V+0
j org.lwjgl.openal.AL10.alBufferData(IILjava/nio/ByteBuffer;I)V+16
j game.output.SoundProcessor.loadALData(Ljava/lang/String;)I+61
j game.output.SoundProcessor.play(Ljava/lang/String;)V+59
j game.input.MenuInputProcessor.mapInput()V+200
j game.Tetrismus.menu(Z)V+47
j game.Tetrismus.run(Z)V+15
j game.Tetrismus.main([Ljava/lang/String;)V+39
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
[...]
They had to load the modules snd-pcm-oss and snd-mixer-oss because OpenAL wanted /dev/dsp before.
I've set up ALSA on my system and the same error occurs. What's going on there? Doesn't OpenAL work with ALSA? How should I deal with that?
I've tried to compile the newest libopenal.so from OpenAL's subversion server, but the problem remained. I've also tried to replace libopenal.so with the one from Tribal Trouble, without an effect.
I'm using lwjgl 1.0beta2, upgrading to beta3 resulted in other strange errors :/