Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when running Penumbra: Black Plague #447

Closed
ViGadeomes opened this issue Nov 5, 2021 · 4 comments
Closed

Crash when running Penumbra: Black Plague #447

ViGadeomes opened this issue Nov 5, 2021 · 4 comments

Comments

@ViGadeomes
Copy link
Contributor

Hello, I'm running the game through libTAS 32bits and I'm getting a crash when launching it. We figured out the problem is in the sound function of OpenAL here : https://github.com/FrictionalGames/OALWrapper/blob/master/sources/OAL_Device.cpp#L77

Here is the gdb infos while launching the game :

Starting program: /home/vigadeomes/.local/share/Steam/steamapps/common/Penumbra Black Plague/blackplague.bin
Attempt 2: Couldn't connect to socket.
Attempt 3: Couldn't connect to socket.
Attempt 4: Couldn't connect to socket.
Attempt 5: Couldn't connect to socket.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Attempt 6: Couldn't connect to socket.
Attempt 7: Connected.
[libTAS f:0] Thread 2385 (main) ERROR: Could not import sdl dynapi symbol SDL_GetDisplayDPI
[libTAS f:0] Thread 2385 (main) ERROR: Could not import sdl dynapi symbol SDL_GetDisplayUsableBounds
[New Thread 0xf6cdeb40 (LWP 2389)]
[New Thread 0xf1b6fb40 (LWP 2390)]
[New Thread 0xf11ffb40 (LWP 2391)]
[New Thread 0xf07ffb40 (LWP 2392)]
[New Thread 0xefdffb40 (LWP 2393)]
[New Thread 0xef3ffb40 (LWP 2394)]
[New Thread 0xee9ffb40 (LWP 2395)]
[New Thread 0xedfffb40 (LWP 2396)]
[New Thread 0xed5feb40 (LWP 2397)]
[libTAS f:0] Thread 2385 (main) OpenGL vendor: VMware, Inc.
[libTAS f:0] Thread 2385 (main) OpenGL renderer: llvmpipe (LLVM 7.0, 128 bits)
[libTAS f:0] Thread 2385 (main) Start mixing about 735 samples
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alGetError call, returning 0
[libTAS f:1] Thread 2385 (main) alcOpenDevice call.
[libTAS f:1] Thread 2385 (main) alcIsExtensionPresent call.
[libTAS f:1] Thread 2385 (main) Extension asked is ALC_EXT_CAPTURE
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alcIsExtensionPresent call.
[libTAS f:1] Thread 2385 (main) Extension asked is ALC_EXT_EFX
[libTAS f:1] Thread 2385 (main) ERROR: Extension ALC_EXT_EFX not supported, but we will still return yes because some games crash if we return no
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alcIsExtensionPresent call.
[libTAS f:1] Thread 2385 (main) Extension asked is ALC_ENUMERATION_EXT
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alcIsExtensionPresent call.
[libTAS f:1] Thread 2385 (main) Extension asked is ALC_ENUMERATE_ALL_EXT
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alcCreateContext call.
[libTAS f:1] Thread 2385 (main) Attribute 4103 is 44100
[libTAS f:1] Thread 2385 (main) Attribute 4112 is 256
[libTAS f:1] Thread 2385 (main) Attribute 4113 is 0
[libTAS f:1] Thread 2385 (main) Attribute 131075 is 4
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alcMakeContextCurrent call.
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alcGetContextsDevice call.
[libTAS f:1] Thread 2385 (main) alcGetError call.
[libTAS f:1] Thread 2385 (main) alIsExtensionPresent call with extname AL_EXT_OFFSET
[libTAS f:1] Thread 2385 (main) alGetError call, returning 0
[libTAS f:1] Thread 2385 (main) alIsExtensionPresent call with extname AL_EXT_LINEAR_DISTANCE
[libTAS f:1] Thread 2385 (main) alGetError call, returning 0
[libTAS f:1] Thread 2385 (main) alIsExtensionPresent call with extname AL_EXT_EXPONENT_DISTANCE
[libTAS f:1] Thread 2385 (main) alGetError call, returning 0
[libTAS f:1] Thread 2385 (main) alIsExtensionPresent call with extname EAX
[libTAS f:1] Thread 2385 (main) alGetError call, returning 0
[libTAS f:1] Thread 2385 (main) alIsExtensionPresent call with extname EAX2.0
[libTAS f:1] Thread 2385 (main) alGetError call, returning 0
[libTAS f:1] Thread 2385 (main) alIsExtensionPresent call with extname EAX3.0
[libTAS f:1] Thread 2385 (main) alGetError call, returning 0
[libTAS f:1] Thread 2385 (main) alIsExtensionPresent call with extname EAX4.0
[libTAS f:1] Thread 2385 (main) alGetError call, returning 0
[libTAS f:1] Thread 2385 (main) alIsExtensionPresent call with extname EAX5.0
[libTAS f:1] Thread 2385 (main) alGetError call, returning 0
[libTAS f:1] Thread 2385 (main) alIsExtensionPresent call with extname EAX-RAM
[libTAS f:1] Thread 2385 (main) alGetError call, returning 0
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alcGetContextsDevice call.
[libTAS f:1] Thread 2385 (main) alcGetError call.
[libTAS f:1] Thread 2385 (main) alcIsExtensionPresent call.
[libTAS f:1] Thread 2385 (main) Extension asked is ALC_ENUMERATION_EXT
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alcGetContextsDevice call.
[libTAS f:1] Thread 2385 (main) alcGetError call.
[libTAS f:1] Thread 2385 (main) alcIsExtensionPresent call.
[libTAS f:1] Thread 2385 (main) Extension asked is ALC_ENUMERATE_ALL_EXT
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alcGetContextsDevice call.
[libTAS f:1] Thread 2385 (main) alcGetError call.
[libTAS f:1] Thread 2385 (main) alcGetString call with param 4115
[libTAS f:1] Thread 2385 (main) Request list of available all devices
[libTAS f:1] Thread 2385 (main) alcGetString call with param 4101
[libTAS f:1] Thread 2385 (main) Request current device
[libTAS f:1] Thread 2385 (main) alcGetCurrentContext call.
[libTAS f:1] Thread 2385 (main) alcGetContextsDevice call.
[libTAS f:1] Thread 2385 (main) alcGetError call.

Thread 1 "blackplague.bin" received signal SIGSEGV, Segmentation fault.
__strlen_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S:50
50 ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S: No such file or directory.

@clementgallet
Copy link
Owner

It looks like alGetString() is causing the crash, because it is not implemented in libTAS.

clementgallet added a commit that referenced this issue Nov 20, 2021
@ViGadeomes ViGadeomes changed the title Cash at the 2nd frame when running Penumbra: Black Plague Cash when running Penumbra: Black Plague Nov 25, 2021
@ViGadeomes
Copy link
Contributor Author

The things causing the crash at frame 2 are fixed now but a new crash happens at frame 4 :

^C
Thread 1 "blackplague.bin" received signal SIGINT, Interrupt.
libtas::SDL_GetTicks () at timewrappers.cpp:129
129 Uint32 msec = ts.tv_sec*1000 + ts.tv_nsec/1000000;
(gdb) thread apply all bt

Thread 11 (Thread 0xea9a6b40 (LWP 6053)):
#0 0xf7fd3069 in __kernel_vsyscall ()
#1 0xf77eb9eb in __GI___nanosleep (remaining=0x0, requested_time=0xea9a6238)
at ../sysdeps/unix/sysv/linux/nanosleep.c:28
#2 __GI___nanosleep (requested_time=0xea9a6238, remaining=0x0)
at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#3 0xf7edf1db in libtas::SDL_Delay (sleep=100) at sleepwrappers.cpp:63
#4 0x08492c60 in UpdaterThread(void*) ()
#5 0xf7ca9d3e in ?? ()
from /home/vigadeomes/.local/share/Steam/steamapps/common/Penumbra Black Plague/lib/libSDL2-2.0.so.0
#6 0xf7d0f7dd in ?? ()
from /home/vigadeomes/.local/share/Steam/steamapps/common/Penumbra Black Plague/lib/libSDL2-2.0.so.0
#7 0xf7ed80e6 in libtas::pthread_start (arg=)
at pthreadwrappers.cpp:133
#8 0xf7710fd2 in start_thread (arg=) at pthread_create.c:486
#9 0xf78256d6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 10 (Thread 0xed5ffb40 (LWP 6049)):
#0 0xf7fd3069 in __kernel_vsyscall ()
#1 0xf7717462 in futex_wait_cancelable (private=0, expected=0,
--Type for more, q to quit, c to continue without paging--
futex_word=0x8786cd8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#2 __pthread_cond_wait_common (abstime=0x0, mutex=0x8786c94, cond=0x8786cac)
at pthread_cond_wait.c:502
#3 __pthread_cond_wait (cond=0x8786cac, mutex=0x8786c94)
at pthread_cond_wait.c:655
#4 0xf521671d in ?? () from /usr/lib/i386-linux-gnu/dri/swrast_dri.so
#5 0xf7ed80e6 in libtas::pthread_start (arg=)
at pthreadwrappers.cpp:133
#6 0xf7710fd2 in start_thread (arg=) at pthread_create.c:486
#7 0xf78256d6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 9 (Thread 0xedfffb40 (LWP 6048)):
#0 0xf7fd3069 in __kernel_vsyscall ()
#1 0xf7717462 in futex_wait_cancelable (private=0, expected=0,
futex_word=0x8786be0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#2 __pthread_cond_wait_common (abstime=0x0, mutex=0x8786b9c, cond=0x8786bb4)
at pthread_cond_wait.c:502
#3 __pthread_cond_wait (cond=0x8786bb4, mutex=0x8786b9c)
at pthread_cond_wait.c:655
#4 0xf521671d in ?? () from /usr/lib/i386-linux-gnu/dri/swrast_dri.so
#5 0xf7ed80e6 in libtas::pthread_start (arg=)
at pthreadwrappers.cpp:133
#6 0xf7710fd2 in start_thread (arg=) at pthread_create.c:486
--Type for more, q to quit, c to continue without paging--
#7 0xf78256d6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 8 (Thread 0xee9ffb40 (LWP 6047)):
#0 0xf7fd3069 in __kernel_vsyscall ()
#1 0xf7717462 in futex_wait_cancelable (private=0, expected=0,
futex_word=0x8786ae8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#2 __pthread_cond_wait_common (abstime=0x0, mutex=0x8786aa4, cond=0x8786abc)
at pthread_cond_wait.c:502
#3 __pthread_cond_wait (cond=0x8786abc, mutex=0x8786aa4)
at pthread_cond_wait.c:655
#4 0xf521671d in ?? () from /usr/lib/i386-linux-gnu/dri/swrast_dri.so
#5 0xf7ed80e6 in libtas::pthread_start (arg=)
at pthreadwrappers.cpp:133
#6 0xf7710fd2 in start_thread (arg=) at pthread_create.c:486
#7 0xf78256d6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 7 (Thread 0xef3ffb40 (LWP 6046)):
#0 0xf7fd3069 in __kernel_vsyscall ()
#1 0xf7717462 in futex_wait_cancelable (private=0, expected=0,
futex_word=0x87869f0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#2 __pthread_cond_wait_common (abstime=0x0, mutex=0x87869ac, cond=0x87869c4)
at pthread_cond_wait.c:502
#3 __pthread_cond_wait (cond=0x87869c4, mutex=0x87869ac)
--Type for more, q to quit, c to continue without paging--
at pthread_cond_wait.c:655
#4 0xf521671d in ?? () from /usr/lib/i386-linux-gnu/dri/swrast_dri.so
#5 0xf7ed80e6 in libtas::pthread_start (arg=)
at pthreadwrappers.cpp:133
#6 0xf7710fd2 in start_thread (arg=) at pthread_create.c:486
#7 0xf78256d6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 6 (Thread 0xefdffb40 (LWP 6045)):
#0 0xf7fd3069 in __kernel_vsyscall ()
#1 0xf7717462 in futex_wait_cancelable (private=0, expected=0,
futex_word=0x87868f8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#2 __pthread_cond_wait_common (abstime=0x0, mutex=0x87868b4, cond=0x87868cc)
at pthread_cond_wait.c:502
#3 __pthread_cond_wait (cond=0x87868cc, mutex=0x87868b4)
at pthread_cond_wait.c:655
#4 0xf521671d in ?? () from /usr/lib/i386-linux-gnu/dri/swrast_dri.so
#5 0xf7ed80e6 in libtas::pthread_start (arg=)
at pthreadwrappers.cpp:133
#6 0xf7710fd2 in start_thread (arg=) at pthread_create.c:486
#7 0xf78256d6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 5 (Thread 0xf07ffb40 (LWP 6044)):
#0 0xf7fd3069 in __kernel_vsyscall ()
--Type for more, q to quit, c to continue without paging--
#1 0xf7717462 in futex_wait_cancelable (private=0, expected=0,
futex_word=0x8786800) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#2 __pthread_cond_wait_common (abstime=0x0, mutex=0x87867bc, cond=0x87867d4)
at pthread_cond_wait.c:502
#3 __pthread_cond_wait (cond=0x87867d4, mutex=0x87867bc)
at pthread_cond_wait.c:655
#4 0xf521671d in ?? () from /usr/lib/i386-linux-gnu/dri/swrast_dri.so
#5 0xf7ed80e6 in libtas::pthread_start (arg=)
at pthreadwrappers.cpp:133
#6 0xf7710fd2 in start_thread (arg=) at pthread_create.c:486
#7 0xf78256d6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 4 (Thread 0xf11ffb40 (LWP 6043)):
#0 0xf7fd3069 in __kernel_vsyscall ()
#1 0xf7717462 in futex_wait_cancelable (private=0, expected=0,
futex_word=0x8786708) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#2 __pthread_cond_wait_common (abstime=0x0, mutex=0x87866c4, cond=0x87866dc)
at pthread_cond_wait.c:502
#3 __pthread_cond_wait (cond=0x87866dc, mutex=0x87866c4)
at pthread_cond_wait.c:655
#4 0xf521671d in ?? () from /usr/lib/i386-linux-gnu/dri/swrast_dri.so
#5 0xf7ed80e6 in libtas::pthread_start (arg=)
at pthreadwrappers.cpp:133
--Type for more, q to quit, c to continue without paging--
#6 0xf7710fd2 in start_thread (arg=) at pthread_create.c:486
#7 0xf78256d6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 3 (Thread 0xf1b60b40 (LWP 6042)):
#0 0xf7fd3069 in __kernel_vsyscall ()
#1 0xf7717462 in futex_wait_cancelable (private=0, expected=0,
futex_word=0x8786610) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#2 __pthread_cond_wait_common (abstime=0x0, mutex=0x87865cc, cond=0x87865e4)
at pthread_cond_wait.c:502
#3 __pthread_cond_wait (cond=0x87865e4, mutex=0x87865cc)
at pthread_cond_wait.c:655
#4 0xf521671d in ?? () from /usr/lib/i386-linux-gnu/dri/swrast_dri.so
#5 0xf7ed80e6 in libtas::pthread_start (arg=)
at pthreadwrappers.cpp:133
#6 0xf7710fd2 in start_thread (arg=) at pthread_create.c:486
#7 0xf78256d6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 2 (Thread 0xf6cdab40 (LWP 6041)):
#0 0xf7fd3069 in __kernel_vsyscall ()
#1 0xf771a4b6 in futex_abstimed_wait_cancelable (private=0, abstime=0x0,
expected=1, futex_word=0x86e8dd0)
at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#2 do_futex_wait (sem=sem@entry=0x86e8dd0, abstime=0x0)
--Type for more, q to quit, c to continue without paging--
at sem_waitcommon.c:115
#3 0xf771a5b7 in __new_sem_wait_slow (sem=0x86e8dd0, abstime=0x0)
at sem_waitcommon.c:282
#4 0xf7d0fb58 in ?? ()
from /home/vigadeomes/.local/share/Steam/steamapps/common/Penumbra Black Plague/lib/libSDL2-2.0.so.0
#5 0xf7caa642 in ?? ()
from /home/vigadeomes/.local/share/Steam/steamapps/common/Penumbra Black Plague/lib/libSDL2-2.0.so.0
#6 0xf7ca9d3e in ?? ()
from /home/vigadeomes/.local/share/Steam/steamapps/common/Penumbra Black Plague/lib/libSDL2-2.0.so.0
#7 0xf7d0f7dd in ?? ()
from /home/vigadeomes/.local/share/Steam/steamapps/common/Penumbra Black Plague/lib/libSDL2-2.0.so.0
#8 0xf7ed80e6 in libtas::pthread_start (arg=)
at pthreadwrappers.cpp:133
#9 0xf7710fd2 in start_thread (arg=) at pthread_create.c:486
#10 0xf78256d6 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 1 (Thread 0xf71dd740 (LWP 6037)):
#0 libtas::SDL_GetTicks () at timewrappers.cpp:129
#1 0x083a449a in hpl::cLogicTimer::WantUpdate() ()
--Type for more, q to quit, c to continue without paging--
#2 0x0831ef03 in hpl::cGame::Run() ()
#3 0x08246628 in hplMain(std::string const&) ()
#4 0x083e7cab in main ()

@clementgallet
Copy link
Owner

It does not look like a crash, do you mean a softlock? Can you check Runtime > Time-tracking > SDL_GetTicks ?

@ViGadeomes ViGadeomes changed the title Cash when running Penumbra: Black Plague Crash when running Penumbra: Black Plague Nov 26, 2021
@ViGadeomes
Copy link
Contributor Author

It worked thanks !

Note : f26c9fc
c532546
a5e2f16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants