godot icon indicating copy to clipboard operation
godot copied to clipboard

The AudioStreamWav unit test seg faults

Open D0V4HKIIN opened this issue 1 year ago • 2 comments

Tested versions

Latest version of the master branch hash: f4af8201bac157b9d47e336203d3e8a8ef729de2

System information

Gentoo 2.15 - Wayland - integrated AMD Radeon Graphics (RADV RENOIR) - AMD Ryzen 5 5600U with Radeon Graphics (12 Threads) - pipewire - libpipewire 1.0.7

Issue description

The unit test [Audio][AudioStreamWAV] Save empty file segmentation faults. 3 other of my friends (all of which run linux) also tried running the tests and also got segmentation faults.

[doctest] doctest version is "2.4.11"
[doctest] run with "--help" for options
===============================================================================
./tests/scene/test_audio_stream_wav.h:230:
TEST CASE:  [Audio][AudioStreamWAV] Save empty file
  Stream can be saved as .wav

./tests/scene/test_audio_stream_wav.h:230: FATAL ERROR: test case CRASHED: SIGSEGV - Segmentation violation signal

===============================================================================
./tests/scene/test_audio_stream_wav.h:230:
TEST CASE:  [Audio][AudioStreamWAV] Save empty file

DEEPEST SUBCASE STACK REACHED (DIFFERENT FROM THE CURRENT ONE):
  Stream can be saved as .wav

===============================================================================
[doctest] test cases:   8 |   7 passed | 1 failed | 1037 skipped
[doctest] assertions: 131 | 131 passed | 0 failed |
[doctest] Status: FAILURE!

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.4.dev.custom_build (f4af8201bac157b9d47e336203d3e8a8ef729de2)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib64/libc.so.6(+0x3c9d0) [0x7ff5f42ba9d0] (??:0)
[2] ./bin/godot.linuxbsd.editor.x86_64(+0x67260e8) [0x5558fff4f0e8] (??:0)
[3] ./bin/godot.linuxbsd.editor.x86_64(+0x3496a03) [0x5558fccbfa03] (??:0)
[4] ./bin/godot.linuxbsd.editor.x86_64(+0x3497d43) [0x5558fccc0d43] (??:0)
[5] ./bin/godot.linuxbsd.editor.x86_64(+0x2f2bb40) [0x5558fc754b40] (??:0)
[6] ./bin/godot.linuxbsd.editor.x86_64(+0x300039b) [0x5558fc82939b] (??:0)
[7] ./bin/godot.linuxbsd.editor.x86_64(+0x2edbdf0) [0x5558fc704df0] (??:0)
[8] ./bin/godot.linuxbsd.editor.x86_64(+0x2e3c5fa) [0x5558fc6655fa] (??:0)
[9] /lib64/libc.so.6(+0x26350) [0x7ff5f42a4350] (??:0)
[10] /lib64/libc.so.6(__libc_start_main+0x89) [0x7ff5f42a4409] (??:0)
[11] ./bin/godot.linuxbsd.editor.x86_64(+0x2e3c4a5) [0x5558fc6654a5] (??:0)
-- END OF BACKTRACE --
================================================================
[1]    1966 IOT instruction  ./bin/godot.linuxbsd.editor.x86_64 --test --test-case="*[AudioStreamWAV]*"

Steps to reproduce

  • Pull the repository
  • Compile with tests
  • Run tests

The exact command I use to compile and run the test: scons linker=mold tests=true vscode=yes && ./bin/godot.linuxbsd.editor.x86_64 --test --test-case="[AudioStreamWAV]"

Minimal reproduction project (MRP)

N/A

D0V4HKIIN avatar Oct 02 '24 08:10 D0V4HKIIN

I don't understand why it's not detected by the github actions

D0V4HKIIN avatar Oct 02 '24 08:10 D0V4HKIIN

It seems like building with dev_build=yes doesn't segfault o.0. My guess is that it's because it disables optimizations.

D0V4HKIIN avatar Oct 02 '24 08:10 D0V4HKIIN

There are tests that are run with sanitizers in GitHub actions, but (at least for the UB sanitizer) don't make the job fail if it detects problems. Should they be treated as errors?

D0V4HKIIN avatar Oct 09 '24 08:10 D0V4HKIIN

The test doesn't segfault with asan and lsan sanitizers :/

D0V4HKIIN avatar Oct 09 '24 09:10 D0V4HKIIN

Closed by https://github.com/godotengine/godot/pull/100422

hpvb avatar Dec 18 '24 00:12 hpvb