From 9e072a43adc71269802b051b54de4349b203a73b Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Wed, 13 Nov 2013 20:17:59 -0600 Subject: [PATCH] core: add some debugging to help diagnose netlink errors (rh #1029213) --- NetworkManager.spec | 7 +++- rh1029213-debug-netlink-add-errors.patch | 50 ++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 rh1029213-debug-netlink-add-errors.patch diff --git a/NetworkManager.spec b/NetworkManager.spec index 18b1bf4..2937903 100644 --- a/NetworkManager.spec +++ b/NetworkManager.spec @@ -19,7 +19,7 @@ Name: NetworkManager Summary: Network connection manager and user applications Epoch: 1 Version: 0.9.9.0 -Release: 15%{snapshot}%{?dist} +Release: 16%{snapshot}%{?dist} Group: System Environment/Base License: GPLv2+ URL: http://www.gnome.org/projects/NetworkManager/ @@ -33,6 +33,7 @@ Patch3: rh1021112-fix-crash-never-default.patch Patch4: rh1019021-fix-crash-ip6-routing.patch Patch5: rh1025007-fix-crash-ifcfg-rh.patch Patch6: rh1012151-ipv6-disable.patch +Patch7: rh1029213-debug-netlink-add-errors.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -162,6 +163,7 @@ deployments. %patch4 -p1 -b .patch4 %patch5 -p1 -b .patch5 %patch6 -p1 -b .patch6 +%patch7 -p1 -b .patch7 %build @@ -360,6 +362,9 @@ fi %config %{_sysconfdir}/%{name}/conf.d/00-server.conf %changelog +* Wed Nov 13 2013 Dan Williams - 0.9.9.0-16.git20131003 +- core: add some debugging to help diagnose netlink errors (rh #1029213) + * Fri Nov 8 2013 Jiří Klimeš - 0.9.9.0-15.git20131003 - ifcfg-rh: fix crash in ifcfg-rh plugin when reloading connections (rh #1023571) - ifcfg-rh: fix crash when having connections with NEVER_DEFAULT (rh #1021112) diff --git a/rh1029213-debug-netlink-add-errors.patch b/rh1029213-debug-netlink-add-errors.patch new file mode 100644 index 0000000..3609960 --- /dev/null +++ b/rh1029213-debug-netlink-add-errors.patch @@ -0,0 +1,50 @@ +From 2086cab1273b26630840e3a0c092e8b1617e803b Mon Sep 17 00:00:00 2001 +From: Dan Williams +Date: Wed, 13 Nov 2013 20:06:39 -0600 +Subject: [PATCH] platform: dump objects that fail to be added (rh #1029213) + +Attempt to figure out why the objects fail. +--- + src/platform/nm-linux-platform.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c +index a35b0cc..d13abbe 100644 +--- a/src/platform/nm-linux-platform.c ++++ b/src/platform/nm-linux-platform.c +@@ -1100,27 +1100,32 @@ refresh_object (NMPlatform *platform, struct nl_object *object, gboolean removed + /* Decreases the reference count if @obj for convenience */ + static gboolean + add_object (NMPlatform *platform, struct nl_object *obj) + { + auto_nl_object struct nl_object *object = obj; + NMLinuxPlatformPrivate *priv = NM_LINUX_PLATFORM_GET_PRIVATE (platform); + int nle; ++ struct nl_dump_params dp = { ++ .dp_type = NL_DUMP_DETAILS, ++ .dp_fd = stderr, ++ }; + + nle = add_kernel_object (priv->nlh, object); + + /* NLE_EXIST is considered equivalent to success to avoid race conditions. You + * never know when something sends an identical object just before + * NetworkManager. + */ + switch (nle) { + case -NLE_SUCCESS: + case -NLE_EXIST: + break; + default: + error ("Netlink error: %s", nl_geterror (nle)); ++ nl_object_dump (object, &dp); + return FALSE; + } + + return refresh_object (platform, object, FALSE, NM_PLATFORM_REASON_INTERNAL); + } + + /* Decreases the reference count if @obj for convenience */ +-- +1.8.3.1 +