1 # GLib Valgrind suppressions file
3 # This provides a list of suppressions for all of GLib (including GIO), for all
4 # Valgrind tools (memcheck, drd, helgrind, etc.) for the false positives and
5 # deliberate one-time leaks which GLib causes to be reported when running under
8 # When running an application which links to GLib under Valgrind, you can pass
9 # this suppression file to Valgrind using --suppressions=/path/to/glib-2.0.supp.
11 # http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress
13 # Note that there is currently no way for Valgrind to load this automatically
14 # (https://bugs.kde.org/show_bug.cgi?id=160905), so the best GLib can currently
15 # do is to install this file as part of its development package.
17 # This file should be updated if GLib introduces a new deliberate one-time leak,
18 # or another false race positive in Valgrind: please file bugs at:
20 # https://gitlab.gnome.org/GNOME/glib/issues/new
39 g-tls-backend-gnutls-init
42 fun:g_tls_backend_gnutls_init
50 fun:create_tokens_inlock
51 fun:initialize_module_inlock_reentrant
79 g-type-register-dynamic
83 fun:g_type_register_dynamic
87 g-type-register-static
91 fun:g_type_register_static
95 g-type-register-static-realloc
99 fun:g_type_register_static
103 g-type-register-static-calloc
107 fun:g_type_register_static
111 g-type-add-interface-dynamic
115 fun:g_type_add_interface_dynamic
119 g-type-add-interface-static
123 fun:g_type_add_interface_static
131 fun:g_rand_new_with_seed_array
142 fun:g_rand_new_with_seed_array
144 fun:get_global_random
160 fun:g_hash_table_resize
166 g-type-interface-init
170 fun:type_iface_vtable_base_init_Wm
178 fun:type_class_init_Wm
182 g-io-module-default-singleton-malloc
186 fun:g_type_create_instance
188 fun:_g_io_module_get_default
192 g-io-module-default-singleton-module
198 fun:_g_io_module_get_default
206 fun:g_get_language_names
214 fun:g_static_mutex_get_mutex_impl
222 fun:g_system_thread_new
226 g-io-module-default-proxy-resolver-gnome
230 fun:g_proxy_resolver_gnome_init
232 fun:_g_io_module_get_default
235 # memcheck checks that the third argument to ioctl() is a valid pointer, but
236 # some ioctls use that argument as an integer
238 ioctl-with-non-pointer-param
242 fun:btrfs_reflink_with_progress
247 drd:ConflictingAccess
251 g-private-get-helgrind
259 drd:ConflictingAccess
263 g-private-set-helgrind
269 g-type-construct-free
270 drd:ConflictingAccess
271 fun:g_type_free_instance
274 g-type-construct-free-helgrind
276 fun:g_type_free_instance
281 drd:ConflictingAccess
285 g-variant-unref-helgrind
292 drd:ConflictingAccess
293 fun:_g_main_create_unix_signal_watch
296 g-unix-signals-dispatch
297 drd:ConflictingAccess
299 fun:dispatch_unix_signals*
302 g-unix-signals-dispatch-helgrind
305 fun:dispatch_unix_signals*
309 drd:ConflictingAccess
310 fun:g_unix_signal_watch*
313 g-unix-signals-other-helgrind
315 fun:g_unix_signal_watch*
318 g-unix-signals-handler
319 drd:ConflictingAccess
320 fun:g_unix_signal_handler*
323 g-unix-signals-handler-helgrind
325 fun:g_unix_signal_handler*
328 g-unix-signals-worker
329 drd:ConflictingAccess
333 g-unix-signals-worker-helgrind
340 drd:ConflictingAccess
342 fun:g_wakeup_acknowledge
347 drd:ConflictingAccess
348 fun:g_type_fundamental
351 g-type-fundamental-helgrind
353 fun:g_type_fundamental
356 g-type-class-peek-static
357 drd:ConflictingAccess
358 fun:g_type_class_peek_static
361 g-type-class-peek-static-helgrind
363 fun:g_type_class_peek_static
367 drd:ConflictingAccess
379 g-inet-address-get-type
380 drd:ConflictingAccess
381 fun:g_inet_address_get_type
384 g-inet-address-get-type-helgrind
386 fun:g_inet_address_get_type
389 # From: https://github.com/fredericgermain/valgrind/blob/master/glibc-2.X-drd.supp
392 drd:ConflictingAccess
397 drd:ConflictingAccess
402 drd:ConflictingAccess
406 # GSources do an opportunistic ref count check
408 g-source-set-ready-time
409 drd:ConflictingAccess
410 fun:g_source_set_ready_time
413 g-source-set-ready-time-helgrind
415 fun:g_source_set_ready_time
421 fun:g_source_iter_next
423 fun:g_main_context_iterate
427 g-object-instance-private
428 drd:ConflictingAccess
429 fun:*_get_instance_private
432 g-object-instance-private-helgrind
434 fun:*_get_instance_private
437 # GLib legitimately calls pthread_cond_signal without a mutex held
439 g-task-thread-complete
443 fun:g_task_thread_complete
446 g-task-thread-complete
450 fun:g_task_thread_complete
453 # False positive, but I can't explain how (FIXME)
462 # Real race, but is_cancelled() is an opportunistic function anyway
464 g-cancellable-is-cancelled
466 fun:g_cancellable_is_cancelled
475 fun:g_main_context_unref
482 fun:g_source_*_unlocked
487 fun:g_source_*_internal
492 g_object_real_dispose
494 fun:g_object_real_dispose
502 fun:g_object_new_valist