NetworkManager/valgrind.suppressions
Thomas Haller 051cf8bbde platform: fetch objects via the event socket
Use the event socket to request object via NLM_F_DUMP.

No longer use 'priv->nlh' socket to fetch objects.
Instead fetch them via the priv->nlh_event socket that also
provides asynchronous events when objects change.

That way, the events are in sync with our explicit requests
and we can directly use the events. Previously, the events were
only used to indicate that a refetch must happen, so that every
event triggered a complete dump of all addresses/routes.

We still use 'priv->nlh' to make synchronous requests such as
adding/changing/deleting objects. That means, after we send a
request, we must make sure that the result manifested itself
at 'nlh_event' socket and the platform cache.
That's why we sometimes still must force a dump to sync changes.
That could be improved by using only one netlink socket so that
we would wait for the ACK of our request.

While not yet perfect, this already significantly reduces the number of
fetches. Additionally, before, whenever requesting a dump of addresses
or routes (which we did much more often, search for "get_kernel_object for type"
log lines), we always dumped IPv4 and IPv6 together. Now only request
the addr-family in question.

https://bugzilla.gnome.org/show_bug.cgi?id=747985
https://bugzilla.redhat.com/show_bug.cgi?id=1211133
2015-06-17 11:41:43 +02:00

459 lines
8.5 KiB
Plaintext

# IMPORTANT: these suppressions strongly depend on the used library version.
# They probably don't work out-of-the-box on anything but Fedora, where they
# are mainly tested.
#
# Make sure to install debug information, otherwise the suppression trace might
# not match. On Fedora, try 'debuginfo-install dbus-glib glib libnl3'.
{
NSS_NoDB_Init
Memcheck:Leak
...
fun:NSS_NoDB_Init
...
}
{
g_type_init_with_debug_flags
Memcheck:Leak
...
fun:g_type_init_with_debug_flags
...
}
{
g_type_register_static
Memcheck:Leak
...
fun:g_type_register_static
...
}
{
g_param_spec_boxed
Memcheck:Leak
...
fun:g_param_spec_boxed
...
}
{
g_type_add_interface_static
Memcheck:Leak
...
fun:g_type_add_interface_static
...
}
{
g_signal_type_cclosure_new
Memcheck:Leak
...
fun:g_malloc0
fun:g_closure_new_simple
fun:g_signal_type_cclosure_new
fun:g_signal_new
...
}
{
dbus_g_value_types_init
Memcheck:Leak
fun:realloc
fun:g_realloc
fun:g_type_set_qdata
fun:_dbus_g_value_types_init
fun:dbus_g_bus_get
...
}
{
type_iface_vtable_base_init_Wm
Memcheck:Leak
fun:malloc
fun:g_malloc
fun:g_memdup
fun:type_iface_vtable_base_init_Wm
fun:g_type_class_ref
...
}
{
g_type_create_instance
Memcheck:Leak
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_slice_alloc0
fun:g_type_create_instance
fun:g_object_constructor
...
}
{
g_signal_new_class_handler
Memcheck:Leak
...
fun:g_closure_new_simple
fun:g_cclosure_new
fun:g_signal_new_class_handler
...
}
{
_dl_init_g_type_register_fundamental
Memcheck:Leak
...
fun:g_type_register_fundamental
...
fun:_dl_init
obj:/*/ld-*.so
}
{
_dl_init_g_malloc0
Memcheck:Leak
fun:calloc
fun:g_malloc0
...
fun:_dl_init
obj:/*/ld-*.so
}
{
# added on Fedora 22
# This happens when setting LD_LIBRARY_PATH and the linker is searching the libraries to load.
# for example:
# LD_LIBRARY_PATH=./././././././././././././././././libnm/.libs:./libnm-util/.libs:./libnm-glib/.libs
_dl_expand_dynamic_string_token
Memcheck:Cond
fun:index
fun:expand_dynamic_string_token
...
fun:dl_main
fun:_dl_sysdep_start
fun:_dl_start_final
fun:_dl_start
obj:/*/ld-*.so
...
}
{
all_gobject_init_ctor
Memcheck:Leak
...
fun:gobject_init_ctor
...
}
# The following suppressions were needed on fc20.armv7hl
{
_fun_malloc
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
}
{
_fun_realloc
Memcheck:Leak
match-leak-kinds: possible
fun:realloc
}
{
_fun_calloc
Memcheck:Leak
match-leak-kinds: possible
fun:calloc
}
{
_glib_sigaction
Memcheck:Param
rt_sigaction(act->sa_flags)
fun:__libc_sigaction
fun:unref_unix_signal_handler_unlocked
fun:g_child_watch_finalize
fun:g_source_unref_internal
fun:g_main_context_dispatch
...
fun:g_main_loop_run
...
}
{
# FIXME: dunny why this is needed. Clean up later.
_dispatcher_test
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_variant_new_from_bytes
fun:g_variant_new_from_trusted
fun:parse_dhcp
fun:get_dispatcher_file
...
fun:g_test_run_suite_internal
fun:g_test_run_suite_internal
fun:g_test_run_suite
}
{
_gdbus_1
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_slice_alloc0
fun:get_dispatch
fun:g_main_context_dispatch
...
fun:g_main_loop_run
fun:gdbus_shared_thread_func
fun:g_thread_proxy
fun:start_thread
fun:clone
}
{
_gdbus_2
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_slice_alloc0
fun:g_main_context_push_thread_default
fun:gdbus_shared_thread_func
fun:g_thread_proxy
fun:start_thread
fun:clone
}
{
_gdbus_3
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
fun:g_malloc0
fun:_g_socket_read_with_control_messages
fun:_g_dbus_worker_do_read_unlocked
fun:_g_dbus_worker_do_read_cb
fun:g_simple_async_result_complete
fun:complete_in_idle_cb
...
fun:g_main_context_dispatch
...
fun:g_main_loop_run
fun:gdbus_shared_thread_func
fun:g_thread_proxy
}
{
_gdbus_4
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
fun:g_malloc0
...
fun:g_slice_alloc
fun:g_slice_alloc0
fun:g_main_context_push_thread_default
fun:gdbus_shared_thread_func
fun:g_thread_proxy
fun:start_thread
fun:clone
}
{
_gdbus_5
Memcheck:Leak
match-leak-kinds: definite
...
fun:g_dbus_message_new_from_blob
...
}
{
_gdbus_9
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_slice_alloc0
fun:get_dispatch
fun:g_main_current_source
fun:g_task_return
fun:g_task_thread_pool_thread
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
{
_gdbus_10
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_slice_alloc0
fun:g_system_thread_new
fun:g_thread_new_internal
...
fun:g_thread_pool_push
fun:g_task_start_task_thread
fun:g_task_run_in_thread
fun:g_async_initable_real_init_async
fun:g_bus_get
}
{
_gdbus_11
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
fun:g_malloc0
...
fun:g_slice_alloc
fun:g_slice_alloc0
fun:get_dispatch
fun:g_main_current_source
fun:g_task_return
fun:g_task_thread_pool_thread
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
}
{
_gdbus_12
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_error_new_valist
fun:g_error_new
fun:g_dbus_error_new_for_dbus_error
fun:g_dbus_error_set_dbus_error
fun:g_dbus_message_to_gerror
fun:decode_method_reply
fun:g_dbus_connection_call_sync_internal
fun:g_dbus_proxy_call_sync_internal
fun:g_dbus_proxy_call_sync
}
{
_gdbus_15
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_hash_table_new_full
fun:demarshal_map
fun:_dbus_gvalue_demarshal
fun:dbus_g_proxy_end_call_internal
fun:dbus_g_proxy_end_call
fun:get_permissions_reply
fun:complete_pending_call_and_unlock
fun:dbus_connection_dispatch
fun:message_queue_dispatch
}
{
_gdbus_16
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
fun:g_malloc0
fun:_g_dbus_worker_send_message
fun:g_dbus_connection_send_message_unlocked
fun:unsubscribe_id_internal
fun:g_dbus_connection_signal_unsubscribe
fun:g_dbus_proxy_finalize
...
}
{
_gdbus_17
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
fun:g_malloc0
fun:thread_memory_from_self
fun:g_slice_alloc
fun:g_slice_alloc0
fun:g_main_context_push_thread_default
fun:gdbus_shared_thread_func
fun:g_thread_proxy
fun:start_thread
fun:clone
}
{
_gdbus_18
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_slice_alloc0
fun:get_dispatch
fun:g_main_dispatch
fun:g_main_context_dispatch
...
fun:g_main_loop_run
fun:gdbus_shared_thread_func
fun:g_thread_proxy
fun:start_thread
fun:clone
}
{
_gdbus_f21_1
Memcheck:Leak
match-leak-kinds: definite
...
fun:_g_dbus_worker_send_message
fun:g_dbus_connection_send_message_unlocked
...
fun:g_dbus_proxy_finalize
...
}
###############################################################
# libnl3
###############################################################
{
# fixed by https://github.com/thom311/libnl/commit/d65c32a7205e679c7fc13f0e4565b13e698ba906
# Same issue as libnl_rtnl_link_set_type_01, but different backtrace by calling nl_msg_parse().
libnl_rtnl_link_set_type_02
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
fun:vlan_alloc
fun:rtnl_link_set_type
fun:link_msg_parser
fun:nl_cache_parse
fun:nl_msg_parse
...
}
# disable the following suppression. I cannot remember why it was needed,
# maybe it's wrong.
#
# {
# libnl_02
# libnl_rtnl_link_alloc_cache
# Memcheck:Leak
# match-leak-kinds: definite
# fun:calloc
# fun:nl_object_alloc
# fun:link_msg_parser
# fun:nl_cache_parse
# fun:update_msg_parser
# fun:nl_cb_call
# fun:recvmsgs
# fun:nl_recvmsgs_report
# fun:nl_recvmsgs
# fun:__cache_pickup
# fun:nl_cache_pickup
# fun:nl_cache_refill
# fun:rtnl_link_alloc_cache
# ...
# }