tuk0z Posted Tuesday at 12:10 Report Share Posted Tuesday at 12:10 (edited) Hi all, In short: Game segfaulted after I updated openal to 1.24.0 yesterday. It works just fine after downgrading openal to 1.23.1. No chicken were harmed. - Software: Arch linux ; 0ad a26-17 ; 0ad-data a26-2 - Hardware: Intel Core i3 ; Nvidia GT 1030 (fanless) Some more details: With openal-1.24.0: $ 0ad TIMER| InitVfs: 2.03109 ms FILES| Main log written to '$HOME/.config/0ad/logs/mainlog.html' FILES| Interesting log written to '$HOME/.config/0ad/logs/interestinglog.html' TIMER| CONFIG_Init: 5.32788 ms [E] pw.loop [loop.c:69 pw_loop_new()] 0x60457b6edb60: can't make support.system handle: No such file or directory [ALSOFT] (EE) Failed to create PipeWire event thread loop (errno: 2) Sound: AlcInit success, using OpenAL Soft Assertion failed: "0 && (L"FYI: WARN_IF_FALSE reports that a function failed. Feel free to ignore or suppress this warning.")" Location: SoundManager.cpp:841 (RunHardwareDetection) Call stack: (0x6045492c7d84) /usr/bin/pyrogenesis(+0x84ed84) [0x6045492c7d84] (0x6045492740a0) /usr/bin/pyrogenesis(+0x7fb0a0) [0x6045492740a0] (0x604549275a69) /usr/bin/pyrogenesis(+0x7fca69) [0x604549275a69] (0x604549276335) /usr/bin/pyrogenesis(+0x7fd335) [0x604549276335] (0x604548f16f23) /usr/bin/pyrogenesis(+0x49df23) [0x604548f16f23] (0x604548f1a86e) /usr/bin/pyrogenesis(+0x4a186e) [0x604548f1a86e] (0x604548f1a9a1) /usr/bin/pyrogenesis(+0x4a19a1) [0x604548f1a9a1] (0x604548e2ad0c) /usr/bin/pyrogenesis(+0x3b1d0c) [0x604548e2ad0c] (0x604548b2a375) /usr/bin/pyrogenesis(+0xb1375) [0x604548b2a375] (0x604548b193ab) /usr/bin/pyrogenesis(+0xa03ab) [0x604548b193ab] (0x736377745e08) /usr/lib/libc.so.6(+0x25e08) [0x736377745e08] (0x736377745ecc) /usr/lib/libc.so.6(__libc_start_main+0x8c) [0x736377745ecc] (0x604548b231c5) /usr/bin/pyrogenesis(+0xaa1c5) [0x604548b231c5] errno = 0 (No error reported here) OS error = ? Redirecting call to abort() to mozalloc_abort /usr/bin/0ad: line 9: 49358 Segmentation fault (core dumped) "$pyrogenesis" "$@" With openal-1.23.1 : $ 0ad TIMER| InitVfs: 239.716 us FILES| Main log written to '$HOME/.config/0ad/logs/mainlog.html' FILES| Interesting log written to '$HOME/.config/0ad/logs/interestinglog.html' TIMER| CONFIG_Init: 2.68025 ms [E] pw.loop [loop.c:69 pw_loop_new()] 0x60eae9630130: can't make support.system handle: No such file or directory [ALSOFT] (EE) Failed to create PipeWire event thread loop (errno: 2) Sound: AlcInit success, using OpenAL Soft FILES| UserReport written to '$HOME/.config/0ad/logs/userreport_hwdetect.txt' TIMER| RunHardwareDetection: 6.44828 ms FILES| Hardware details written to '$HOME/.config/0ad/logs/system_info.txt' TIMER| write_sys_info: 17.4534 ms TIMER| InitRenderer: 20.6847 ms TIMER| ps_console: 4.63143 ms TIMER| ps_lang_hotkeys: 3.00069 ms TIMER| common/modern/setup.xml: 112.83 us TIMER| common/modern/styles.xml: 100.456 us TIMER| common/modern/sprites.xml: 776.77 us TIMER| common/global.xml: 298.022 us TIMER| common/setup.xml: 187.392 us TIMER| common/sprites.xml: 464.298 us TIMER| common/styles.xml: 66.51 us TIMER| pregame/backgrounds/: 132.234 us TIMER| pregame/sprites.xml: 96.276 us TIMER| pregame/styles.xml: 29.007 us TIMER| pregame/mainmenu.xml: 43.6955 ms TIMER| common/modern/setup.xml: 93.616 us TIMER| common/modern/styles.xml: 106.386 us TIMER| common/modern/sprites.xml: 962.806 us TIMER| msgbox/msgbox.xml: 17.0366 ms TIMER| shutdown Renderer: 628.728 us TIMER| shutdown SDL: 115.719 ms TIMER| shutdown UserReporter: 1.94474 ms TIMER| shutdown ConfigDB: 97.907 us TIMER| resource modules: 24.6124 ms TIMER TOTALS (7 clients) ----------------------------------------------------- tc_pool_alloc: 0 c (0x) tc_png_decode: 7546.19 kc (2x) tc_dds_transform: 30.636 kc (11x) tc_transform: 841.184 kc (5x) tc_plain_transform: 790.82 kc (5x) tc_ShaderValidation: 1142.95 kc (1x) xml_validation: 707.244 kc (3x) ----------------------------------------------------- TIMER| shutdown misc: 8.26539 ms Also posted on Arch forum. Edited Tuesday at 12:20 by tuk0z Added Arch bbs link 1 Quote Link to comment Share on other sites More sharing options...
vladislavbelov Posted Tuesday at 12:43 Report Share Posted Tuesday at 12:43 Hi! According to: [E] pw.loop [loop.c:69 pw_loop_new()] 0x60457b6edb60: can't make support.system handle: No such file or directory [ALSOFT] (EE) Failed to create PipeWire event thread loop (errno: 2) It seems like an OpenAL or the system problem. We can make a workaround to disable sounds for that case. Did you try any other game/software using OpenAL with the new version? Quote Link to comment Share on other sites More sharing options...
tuk0z Posted Tuesday at 13:38 Author Report Share Posted Tuesday at 13:38 I didn't try another yet but I could give Endless-Sky a go, as it depends on it too. Note that sound in 0 AD works perfectly fine to me with openal-1.23.1 Quote Link to comment Share on other sites More sharing options...
AInur Posted Tuesday at 13:52 Report Share Posted Tuesday at 13:52 0ad crashes whenever I try to start it. This became persistent and appeared suddenly. TIMER| InitVfs: 186.839 us FILES| Main log written to '/home/esme/.config/0ad/logs/mainlog.html' FILES| Interesting log written to '/home/esme/.config/0ad/logs/interestinglog.html' TIMER| CONFIG_Init: 2.24604 ms Sound: AlcInit success, using OpenAL Soft Assertion failed: "0 && (L"FYI: WARN_IF_FALSE reports that a function failed. Feel free to ignore or suppress this warning.")" Location: SoundManager.cpp:841 (RunHardwareDetection) Call stack: (0x59bae6a4bd84) /usr/bin/pyrogenesis(+0x84ed84) [0x59bae6a4bd84] (0x59bae69f80a0) /usr/bin/pyrogenesis(+0x7fb0a0) [0x59bae69f80a0] (0x59bae69f9a69) /usr/bin/pyrogenesis(+0x7fca69) [0x59bae69f9a69] (0x59bae69fa335) /usr/bin/pyrogenesis(+0x7fd335) [0x59bae69fa335] (0x59bae669af23) /usr/bin/pyrogenesis(+0x49df23) [0x59bae669af23] (0x59bae669e86e) /usr/bin/pyrogenesis(+0x4a186e) [0x59bae669e86e] (0x59bae669e9a1) /usr/bin/pyrogenesis(+0x4a19a1) [0x59bae669e9a1] (0x59bae65aed0c) /usr/bin/pyrogenesis(+0x3b1d0c) [0x59bae65aed0c] (0x59bae62ae375) /usr/bin/pyrogenesis(+0xb1375) [0x59bae62ae375] (0x59bae629d3ab) /usr/bin/pyrogenesis(+0xa03ab) [0x59bae629d3ab] (0x714b6a1621ce) /usr/lib/libc.so.6(+0x261ce) [0x714b6a1621ce] (0x714b6a16228a) /usr/lib/libc.so.6(__libc_start_main+0x8a) [0x714b6a16228a] (0x59bae62a71c5) /usr/bin/pyrogenesis(+0xaa1c5) [0x59bae62a71c5] errno = 0 (No error reported here) OS error = ? This log suggests Soundmanager.cpp is causing an issue. The sound system on my device is working. interestinglog.html is empty mainglog.html only loaded some autociv config strings, nothing of interest. Â I could play the game by using an appimage build, but ideally we can fix the main installation. Â Quote Link to comment Share on other sites More sharing options...
hyperion Posted Tuesday at 17:15 Report Share Posted Tuesday at 17:15 Quick check: alcGetString(nullptr, ALC_DEVICE_SPECIFIER) returns nullptr or at least a char* starting with "\0" in 1.24.0 It's only used for printing the device name into a logfile. Making the follow up code expecting non NULL segfault. Skipping that part the sound works just fine, as it's only used for printing the device name into a logfile. 3 Quote Link to comment Share on other sites More sharing options...
AInur Posted Tuesday at 17:27 Report Share Posted Tuesday at 17:27 13 minutes ago, hyperion said: Quick check: alcGetString(nullptr, ALC_DEVICE_SPECIFIER) returns nullptr or at least a char* starting with "\0" in 1.24.0 It's only used for printing the device name into a logfile. Making the follow up code expecting non NULL segfault. Skipping that part the sound works just fine, as it's only used for printing the device name into a logfile. What exactly should I do to fix it? 1 Quote Link to comment Share on other sites More sharing options...
hyperion Posted Tuesday at 17:46 Report Share Posted Tuesday at 17:46 https://gitea.wildfiregames.com/0ad/0ad/pulls/7234 1 Quote Link to comment Share on other sites More sharing options...
vladislavbelov Posted Tuesday at 21:15 Report Share Posted Tuesday at 21:15 3 hours ago, hyperion said: alcGetString(nullptr, ALC_DEVICE_SPECIFIER) returns nullptr or at least a char* starting with "\0" in 1.24.0 It's only used for printing the device name into a logfile. Making the follow up code expecting non NULL segfault. Skipping that part the sound works just fine, as it's only used for printing the device name into a logfile. The great find! Quote Link to comment Share on other sites More sharing options...
Dunedan Posted Wednesday at 18:49 Report Share Posted Wednesday at 18:49 Same problem happens for 0 A.D. as provided by Debian/unstable since the most recent OpenAL update. cc @vv221 Quote Link to comment Share on other sites More sharing options...
vv221 Posted Wednesday at 18:53 Report Share Posted Wednesday at 18:53 3 minutes ago, Dunedan said: Same problem happens for 0 A.D. as provided by Debian/unstable I can confirm that on a system that uses ALSA, without PipeWire nor PulseAudio. Quote Link to comment Share on other sites More sharing options...
tuk0z Posted 5 hours ago Author Report Share Posted 5 hours ago For the non dev people, please does #7234 means the fix has already been found, 0 A.D. code updated and the next 'dev' / stable version will probably work just fine with openal-1.24+? Just FYI Jesse tested various games with the updated openal on Arch; results here: https://bbs.archlinux.org/viewtopic.php?pid=2209310#p2209310 Â Quote Link to comment Share on other sites More sharing options...
hyperion Posted 5 hours ago Report Share Posted 5 hours ago @tuk0z, yes the bug was fixed with https://gitea.wildfiregames.com/0ad/0ad/commit/bb1910ff4c696502d3d518a0cd36c7bd2795554f, distribution maintainers or anyone building a26 from source can cherry-pick that commit to support >=openal-1.24.0. The next release will include the fix. Bug report for Debian sid https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1087990 Quote Link to comment Share on other sites More sharing options...
AInur Posted 5 hours ago Report Share Posted 5 hours ago 30 minutes ago, hyperion said: building a26 from source Where can I find the fixed and buildable source code for A26? (I've tried to build the released zips and it throws error after error) Are the build steps identical to the A27 under development? Quote Link to comment Share on other sites More sharing options...
Stan` Posted 5 hours ago Report Share Posted 5 hours ago From https://releases.wildfiregames.com/ you can get the tarballs. Not it's not the same procedure. You only have to run update workspaces.sh on linux and then make Quote Link to comment Share on other sites More sharing options...
AInur Posted 4 hours ago Report Share Posted 4 hours ago I'm building the release version A27 and I see the fix has already been applied there 3 days ago by sera. This is the fixed SoundManager.cpp: const ALCchar* devices = nullptr; if (alcIsExtensionPresent(nullptr, "ALC_ENUMERATION_EXT") == AL_TRUE) { if (alcIsExtensionPresent(nullptr, "ALC_ENUMERATE_ALL_EXT") == AL_TRUE) devices = alcGetString(nullptr, ALC_ALL_DEVICES_SPECIFIER); else devices = alcGetString(nullptr, ALC_DEVICE_SPECIFIER); } But after I build this successfully, identical error is produced. Can we do a try exception to skip this? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.