core: add some debugging to help diagnose netlink errors (rh #1029213)

This commit is contained in:
Dan Williams 2013-11-13 20:17:59 -06:00
parent d3cdc3cf7f
commit 66ccec23c5
2 changed files with 56 additions and 1 deletions

View File

@ -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 <dcbw@redhat.com> - 0.9.9.0-16.git20131003
- core: add some debugging to help diagnose netlink errors (rh #1029213)
* Fri Nov 8 2013 Jiří Klimeš <jklimes@redhat.com> - 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)

View File

@ -0,0 +1,50 @@
From 2086cab1273b26630840e3a0c092e8b1617e803b Mon Sep 17 00:00:00 2001
From: Dan Williams <dcbw@redhat.com>
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