mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-11 04:31:35 -10:00
The Linux Debug legs fail memcheck on six "definitely lost" contexts (480 bytes in 12 blocks), all allocated under the temporary SDL_InitSubSystem(SDL_INIT_VIDEO) in resolution_default(). SDL probes its real video backends, dlopens libX11, and keeps a few small blocks across the matching SDL_QuitSubSystem(). These are the same six contexts #7657 suppressed via fun:X11_CreateDevice. That suppression stopped matching when #7774 bumped the prebuilt libs: 62c89ef6 shipped libSDL3.so.0.2.14 with a full .symtab (433 distinct X11_* symbols), b57636e0 ships a stripped libSDL3.so.0.4.14 (none). X11_CreateDevice is a static function, so valgrind can no longer resolve it and every libSDL3 frame prints as ???. Every PR branch based on post-bump master fails this leg. Rather than rewrite the suppression around object wildcards, stop allocating the memory in the first place. The unit tests never open a window and the runners are headless, so pin SDL_VIDEODRIVER=dummy: SDL skips backend probing entirely, libX11 is never loaded, and the leaks do not happen. It also makes the tests behave identically whether or not the runner has a display. No test depends on the real desktop mode; the only resolution test sets an explicit override. The os_init suppression stays. That leak is from SDL_Init(SDL_INIT_EVENTS) and SDL_hid_init(), not from video, so the dummy driver does not affect it. The X11_CreateDevice block also stays, as a backstop for running memcheck by hand, now with a comment recording why it is inert in CI. Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
140 lines
4.3 KiB
Plaintext
140 lines
4.3 KiB
Plaintext
{
|
|
liblsan Invalid read
|
|
Memcheck:Addr8
|
|
obj:/usr/lib64/liblsan.so.0.0.0
|
|
obj:/usr/lib64/liblsan.so.0.0.0
|
|
obj:/usr/lib64/liblsan.so.0.0.0
|
|
obj:*
|
|
obj:*
|
|
obj:*
|
|
}
|
|
{
|
|
CLang Lua unitialized value error
|
|
Memcheck:Cond
|
|
...
|
|
fun:luaH_get
|
|
fun:lua_rawget
|
|
fun:_ZN12_GLOBAL__N_117ade_index_handlerEP9lua_State
|
|
}
|
|
{
|
|
False-positive uninitialized variable warning
|
|
Memcheck:Cond
|
|
fun:_Z23cf_check_location_flagsjj
|
|
fun:_Z29cf_create_default_path_stringPcjiPKcbj
|
|
...
|
|
}
|
|
{
|
|
<insert_a_suppression_name_here>
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:_Znwm
|
|
obj:*
|
|
obj:*
|
|
obj:*
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
fun:_Z7gr_initOSt10unique_ptrIN2os18GraphicsOperationsESt14default_deleteIS1_EEiiii
|
|
fun:_ZN4test13FSTestFixture5SetUpEv
|
|
fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
|
|
fun:_ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
|
|
fun:_ZN7testing4Test3RunEv
|
|
}
|
|
{
|
|
<insert_a_suppression_name_here>
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:_Znwm
|
|
obj:*
|
|
obj:*
|
|
obj:*
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
fun:_Z7gr_initOSt10unique_ptrIN2os18GraphicsOperationsESt14default_deleteIS1_EEiiii
|
|
fun:_ZN4test13FSTestFixture5SetUpEv
|
|
fun:_ZN8FontTest5SetUpEv
|
|
fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
|
|
fun:_ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
|
|
}
|
|
{
|
|
<insert_a_suppression_name_here>
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:_Znwm
|
|
obj:*
|
|
obj:*
|
|
obj:*
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
fun:_Z7gr_initONSt3__110unique_ptrIN2os18GraphicsOperationsENS_14default_deleteIS2_EEEEiiii
|
|
fun:_ZN4test13FSTestFixture5SetUpEv
|
|
fun:_ZN8FontTest5SetUpEv
|
|
fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
|
|
}
|
|
{
|
|
<insert_a_suppression_name_here>
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:_Znwm
|
|
obj:*
|
|
obj:*
|
|
obj:*
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
fun:_Z7gr_initONSt3__110unique_ptrIN2os18GraphicsOperationsENS_14default_deleteIS2_EEEEiiii
|
|
fun:_ZN4test13FSTestFixture5SetUpEv
|
|
fun:_ZN8FontTest5SetUpEv
|
|
fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
|
|
}
|
|
{
|
|
<insert_a_suppression_name_here>
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:_Znwm
|
|
obj:*
|
|
obj:*
|
|
obj:*
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
obj:/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.4.0
|
|
fun:_Z7gr_initONSt3__110unique_ptrIN2os18GraphicsOperationsENS_14default_deleteIS2_EEEEiiii
|
|
fun:_ZN4test13FSTestFixture5SetUpEv
|
|
fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
|
|
fun:_ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
|
|
}
|
|
{
|
|
SDL_Init one-time internal allocation via os_init
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
obj:*
|
|
obj:*
|
|
obj:*
|
|
obj:*
|
|
fun:_Z7os_initPKcS0_S0_
|
|
fun:_ZN4test13FSTestFixture5SetUpEv
|
|
}
|
|
# Kept only as a backstop for running memcheck by hand. run_tests.sh pins SDL_VIDEODRIVER=dummy, so
|
|
# the X11 backend is never created there; this block also cannot match the prebuilt libSDL3 anymore,
|
|
# since that library is now stripped and X11_CreateDevice is a static symbol.
|
|
{
|
|
SDL3 X11 video backend internal allocations, not freed by SDL_VideoQuit
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite,possible
|
|
...
|
|
fun:X11_CreateDevice
|
|
}
|
|
{
|
|
glibc loader bookkeeping and library constructor allocations retained across dlopen
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite,possible
|
|
...
|
|
fun:_dl_open
|
|
}
|