openal-soft icon indicating copy to clipboard operation
openal-soft copied to clipboard

Distance-compensation=true SISEGV [ALSOFT 1.22.2, ALSOFT 1.19.1]

Open Aleszp opened this issue 3 years ago • 1 comments

Hi! After updating Minecraft to 1.19.2 (on 1.18.2 error did not occur) game was crashing with segmentation faults (SIGSEGV). After a bit of JVM debugging (OpenJRE17) I narrowed it to libopenal.so and then (by disabling features in alsoftrc) to distance-compensation in [decoder] section (my setup uses 5.1 speakers, it uses itu5.1-nocenter decoders). It happens both on Debian (AlSoft 1.19.1) and Manjaro (AlSoft 1.22.2). Expected behaviour: when distance-compensation=true - software works properly Observed behaviour: when distance-compensation=true - software crashes, when distance-compensation=false software works properly I attach coppy of alsoftrc (in txt format, because github won't accept file without extention) and output from openal-info. I also attach Minecraft crash log (I just censored my nickname, UUIDS and linux username) which may be helpful for additional debugging. I'll later report this to Mojang (as I'm not sure if it's OpenALsoft's bug or Minecraft's). alsoftrc.txt openal-info-Debian.txt openal-info-Manjaro.txt Minecraft.log

(Off topic) Thank you for awesome piece of code. When OAL works properly (99.9% of time) it's awesome, I even decided to develop my own games with sound engine directrly utilising OAL and linking against OALsoft implementation.

Aleszp avatar Aug 14 '22 18:08 Aleszp

Hi.

Are you using a modified itu5.1-nocenter.ambdec? Are you able to create an OpenAL Soft log with Minecraft? Setting the ALSOFT_LOGLEVEL env var to 3 will make the library write an informative log to stderr (you can also set ALSOFT_LOGFILE to a full path+filename to have it write there instead). I'm not sure if Java will interfere with that, but it would be helpful.

I can see in the Minecraft log roughly where it's crashing, and why (a null pointer deref), though I'm not sure how it's in such a state that it would do that. A trace log from the library and/or more information about the decoder file used will hopefully shed light on that.

kcat avatar Aug 15 '22 04:08 kcat