-
Notifications
You must be signed in to change notification settings - Fork 87
Description
Assuming it finds the data directory okay, all versions of AquariaOSE since at least commit 470a895 or so (2020 July) segfault for me on startup. (I can't compile earlier versions.) I compiled the latest commit of the master branch with CMAKE_BUILD_TYPE=Debug, then ran gdb ./aquaria and it had this to say:
(gdb) run
Starting program: /home/mszegedy/Games/aquaria/aquaria-data/aquaria
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
DSQ init
Init VFS...
Done
Using autodetected system locale: en_US
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7f28a64 in tinyxml2::DynArray<tinyxml2::MemPoolT<104ul>::Block*, 10ul>::Pop (this=0x7fffffff8810) at /usr/src/debug/tinyxml2/tinyxml2/tinyxml2.h:241
241 return _mem[_size];
(gdb) bt
#0 0x00007ffff7f28a64 in tinyxml2::DynArray<tinyxml2::MemPoolT<104ul>::Block*, 10ul>::Pop (this=0x7fffffff8810) at /usr/src/debug/tinyxml2/tinyxml2/tinyxml2.h:241
#1 tinyxml2::MemPoolT<104ul>::Clear (this=0x7fffffff8808) at /usr/src/debug/tinyxml2/tinyxml2/tinyxml2.h:354
#2 tinyxml2::MemPoolT<104ul>::~MemPoolT (this=<optimized out>, this=<optimized out>) at /usr/src/debug/tinyxml2/tinyxml2/tinyxml2.h:348
#3 tinyxml2::XMLDocument::~XMLDocument (this=<optimized out>, this=<optimized out>) at /usr/src/debug/tinyxml2/tinyxml2/tinyxml2.cpp:2208
#4 0x000055555576b436 in UserSettings::load (this=0x7fffffffd148, doApply=false, overrideFile="") at /home/mszegedy/Games/aquaria/aquaria-github/Aquaria/UserSettings.cpp:555
#5 0x000055555562d35b in DSQ::init (this=0x7fffffffa710) at /home/mszegedy/Games/aquaria/aquaria-github/Aquaria/DSQ.cpp:976
#6 0x00005555556d3fbe in main (argc=1, argv=0x7fffffffdb88) at /home/mszegedy/Games/aquaria/aquaria-github/Aquaria/Main.cpp:111
It segfaults when trying to deallocate the XMLDocument at the end of UserSettings::load. This makes no sense to me. Obviously, this isn't really AquariaOSE's fault, but I'm not sure what it is about my environment that could be causing this. After all, AquariaOSE bundles tinyxml2. (I initially missed this when writing the issue, but it's right there.)
I searched around on the web for any mention of TinyXML2 segfaulting on XMLDocument destruction, but it seems this problem has never come up before. It's very strange, and my system isn't particularly weird. (The processor is an AMD Ryzen 5, the kernel is Linux 6.17.8-2-cachyos, the shell is fish, and the window manager is Hyprland.)