gdbus-test-codegen tests leak GWeakRef objects
To reproduce:
- recent GLib (I used c07f8a70 as a base, with !1905 (merged) applied)
- a recent GNU/Linux system (I used Debian's
unstable
rolling release) - build GLib with gcc AddressSanitizer (
-Db_sanitize=address
in Meson)- I used Debian's gcc 10.2.1-6
- I used UndefinedBehaviourSanitizer too (
-Db_sanitize=address,undefined
) but that probably doesn't matter - clang AddressSanitizer would probably also reproduce this
- if !1905 (merged) has been applied, partially or fully revert commit "tests: Mark tests with AddressSanitizer-detected leaks" to re-expose this leak
- run unit tests, specifically
glib:gio / gdbus-test-codegen
,glib:gio / gdbus-test-codegen-old
andglib:gio / gdbus-test-codegen-min-required-2-64
(akagio/tests/gdbus-test-codegen.c
)
Expected result: no memory is leaked and unreachable on process exit.
Actual result: leaks that look like these:
=================================================================
==3147660==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b68f8 in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1719
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3ae600 in foo_igen_bat_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:12409
#10 0x55f2bc412831 in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1331
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b6eb8 in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1735
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3ae600 in foo_igen_bat_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:12409
#10 0x55f2bc412831 in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1331
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b63ed in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1703
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3b744e in foo_igen_authorize_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:13818
#10 0x55f2bc412909 in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1342
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b68f8 in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1719
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3b744e in foo_igen_authorize_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:13818
#10 0x55f2bc412909 in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1342
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b6eb8 in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1735
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3b744e in foo_igen_authorize_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:13818
#10 0x55f2bc412909 in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1342
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b63ed in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1703
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3bbc00 in foo_igen_method_threads_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:14707
#10 0x55f2bc4129e1 in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1353
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b68f8 in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1719
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3bbc00 in foo_igen_method_threads_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:14707
#10 0x55f2bc4129e1 in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1353
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b6eb8 in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1735
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3bbc00 in foo_igen_method_threads_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:14707
#10 0x55f2bc4129e1 in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1353
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b63ed in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1703
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3bbc00 in foo_igen_method_threads_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:14707
#10 0x55f2bc412a6e in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1360
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b68f8 in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1719
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3bbc00 in foo_igen_method_threads_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:14707
#10 0x55f2bc412a6e in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1360
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b6eb8 in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1735
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3bbc00 in foo_igen_method_threads_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:14707
#10 0x55f2bc412a6e in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1360
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7fba161e5037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fba15aba87a in g_malloc0 ../../../../../../home/smcv/src/glib/glib/gmem.c:136
#2 0x7fba15ababda in g_malloc0_n ../../../../../../home/smcv/src/glib/glib/gmem.c:368
#3 0x7fba148aa315 in weak_ref_new ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:101
#4 0x7fba148b63ed in async_initable_init_first ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1703
#5 0x7fba148b80db in initable_init ../../../../../../home/smcv/src/glib/gio/gdbusproxy.c:1889
#6 0x7fba14605536 in g_initable_init ../../../../../../home/smcv/src/glib/gio/ginitable.c:128
#7 0x7fba1460582d in g_initable_new_valist ../../../../../../home/smcv/src/glib/gio/ginitable.c:248
#8 0x7fba14605666 in g_initable_new ../../../../../../home/smcv/src/glib/gio/ginitable.c:162
#9 0x55f2bc3ae600 in foo_igen_bat_proxy_new_for_bus_sync gio/tests/gdbus-test-codegen-generated.c:12409
#10 0x55f2bc412831 in check_proxies_in_thread ../../../../../../home/smcv/src/glib/gio/tests/gdbus-test-codegen.c:1331
#11 0x7fba15b56c26 in g_thread_proxy ../../../../../../home/smcv/src/glib/glib/gthread.c:826
#12 0x7fba15c10fbd in linux_pthread_proxy ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1259
#13 0x7fba13381ea6 in start_thread nptl/pthread_create.c:477
SUMMARY: AddressSanitizer: 96 byte(s) leaked in 12 allocation(s).
For now, I've marked this test g_test_incomplete()
when running under AddressSanitizer, so that we can run the rest of the test-suite under AddressSanitizer and at least make sure we don't regress.