henkelmax / sound-physics-remastered

A Minecraft mod that provides realistic sound attenuation, reverberation, and absorption through blocks.
GNU General Public License v3.0
69 stars 22 forks source link

Crashes JVM with SIGFPE #143

Closed scarlettekk closed 6 months ago

scarlettekk commented 9 months ago

Bug description On Minecraft 1.20.1 (fabric), attempting to launch the game with Sound Physics Remastered causes a JVM crash with error SIGFPE (0x8).

Steps to reproduce the issue

  1. Install Minecraft 1.20.1 with the Fabric modloader (I used Prism Launcher)
  2. Launch the game

Expected behavior The game should launch with no fatal errors

Log files Please provide log files of the game session in which the problem occurred. Don't paste the complete logs into the issue. You can use https://gist.github.com/.

Versions

Other mods Others mods in the instance are the Fabulously Optimized mods, but as you can see in the logs I disabled all of them except for Sound Physics Remastered and the error still occurs

Screenshots (Optional) N/A

henkelmax commented 9 months ago

I can't help you without logs and the crash report.

scarlettekk commented 9 months ago

Sorry, could have sworn I attached the logs. I'll do it next time I'm at my computer.

scarlettekk commented 9 months ago

Here are the logs, is the crash report a different thing? https://gist.github.com/scarlettekk/d9db467a9523dd4617adc4d4ce5791cf

xexvisualz commented 9 months ago

I use Prism Launcher too and I get the same output as showed in the logs as well.

henkelmax commented 9 months ago

Does this happen with the vanilla launcher aswell? I am not able to reproduce this issue on either of these launchers.

KruASe76 commented 9 months ago

for me, this issue happens in these situations:

  1. most of the time, while reloading resources the window stops responding and then the game crashes with this error message (however, entering a server with a server resource pack is fine, but exiting crashes)
  2. also sometimes minecraft crashes while loading when the game window is not focused (unfocused right after the appearance), i assume, due to the same reason (while the resources are loaded)

btw, i also use PrismLauncher

(the crash log is basically the same as provided above: "Operation not permitted" and "SIGFPE")

mariospicross commented 9 months ago

also crashes for me. log

AruMoon commented 9 months ago

It also crashes with other launchers. Tested with llaun.ch

AruMoon commented 9 months ago

Found out that OpenAL crashes on the JACK audio backend. No crash on the Pulse backend. Backend can be changed with ALSOFT_DRIVERS=pulse env or config

flerouwu commented 8 months ago

Can confirm this issue. Tried using the SeriousPack modpack. Adding the environment variable from @AruMoon fixed the issue.

Logs

System Information

$ pactl info

Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 258
Tile Size: 65472
User Name: flero
Host Name: hiroko
Server Name: PulseAudio (on PipeWire 0.3.82)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-SteelSeries_Arctis_7_-00.analog-stereo
Default Source: alsa_input.usb-HP__Inc_HyperX_QuadCast_S_4103-00.analog-stereo
Cookie: 3626:97f0
ffernn-dev commented 8 months ago

ALSOFT_DRIVERS=pulse

Thanks so much this works! I'm using Pipewire and Pipewire-pulse and I have no issues. Maybe add something in the README to the tune of Linux users note: To avoid crash on startup add ALSOFT_DRIVERS=pulse to your environment variables. This assumes you have pulseaudio or pipewire-pulse installed.

C4PTRAMPAGE commented 7 months ago

"add ALSOFT_DRIVERS=pulse to your environment variables."

yeah, i have no idea how to do that.

Light034 commented 7 months ago

I'm having the exact same issue, I can confirm setting the environment variable fixes the issue.

"add ALSOFT_DRIVERS=pulse to your environment variables."

yeah, i have no idea how to do that.

You can do it in 2 ways, type export ALSOFT_DRIVERS=pulse in the terminal and then launch the launcher that you want to use through the terminal, or if you wish you can also edit your environment file to have it saved permanently, file is located is /etc/environment and you need have root to be able to edit it. Just add the same thing to the end of the variable list and save it. That should permanently save the environment variable for the future.

Update It seems that by adding it to my environment variables through the file in /etc/environment the game launches but the audio gets disabled for some reason. It seems that by exporting the variable in the terminal and launching it through that same terminal I get it to work.

flerouwu commented 7 months ago

Along with the ways that @Light034 mentioned, you can also set it per-instance via MultiMC or Prism Launcher (can probably be done with the official launcher too).

In MultiMC/Prism, set the wrapper command to env ALSOFT_DRIVERS=pulse.

henkelmax commented 6 months ago

I think there is nothing that I can do about that in the mod. I will add this

Found out that OpenAL crashes on the JACK audio backend. No crash on the Pulse backend. Backend can be changed with ALSOFT_DRIVERS=pulse env or config

to the documentation. If anyone has another solution for this issue, please let me know.

develcooking commented 6 months ago

@Light034

You can do it in 2 ways, type export ALSOFT_DRIVERS=pulse in the terminal and then launch the launcher that you want to use through the terminal, or if you wish you can also edit your environment file to have it saved permanently, file is located is /etc/environment and you need have root to be able to edit it. Just add the same thing to the end of the variable list and save it. That should permanently save the environment variable for the future.

You also could add the environmet variable to only prism. Edit your .desktop entry for prism launcher its located in /usr/share/applications/if you are using a native packages. The name of mine ist org.prismlauncher.PrismLauncher.desktop.

Edit there as root the Exec command from: Exec = prismlauncher %U to: Exec = env ALSOFT_DRIVERS=pulse prismlauncher %U

now the environment variable applies only to Prism. Therefor the likely hoot of breaking another app is elemented .

enbyd commented 5 months ago

For anyone who may still find their way to this issue: With some back-and-forth with another person running a near identical environment to me but not experiencing a crash, we were able to find that updating LWJGL 3 to version 3.3.2 (from 3.3.1) resolved the crash on launch and the mod seems to function as expected. This is possible in Prism Launcher by going to the "Edit" screen of your selected instance and going to the "Version" tab of the window. Click on the entry for LWJGL and then click "Change Version". Select version 3.3.2 and launch as normal. Setting the ALSOFT_DRIVERS environment variable is not required for this workaround, though that approach did still work for me when I tested it separately.