Bug 253902 - snmpd errors under xen
Summary: snmpd errors under xen
Keywords:
Status: CLOSED DUPLICATE of bug 239083
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: net-snmp
Version: 5.0
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Jan Safranek
QA Contact:
URL:
Whiteboard:
Depends On: 221911
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-08-22 19:46 UTC by David L. Parsley
Modified: 2007-11-30 22:07 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-08-23 06:39:15 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description David L. Parsley 2007-08-22 19:46:13 UTC
+++ This bug was initially created as a clone of Bug #221911 +++

On a xen dom0 (tested just now with 2.6.18-1.2869.fc6xen.x86_64), when snmpd is
running, it barfs the following two lines into syslog every 30 seconds.

Jan  8 12:47:00 barleycorn snmpd[2230]: netsnmp_assert index == tmp failed
if-mib/data_access/interface.c:467 _access_interface_entry_save_name() 
Jan  8 12:47:00 barleycorn snmpd[2230]: netsnmp_assert __extension__ ({ size_t
__s1_len, __s2_len; (__builtin_constant_p (rowreq_ctx->data.ifentry->name) &&
__builtin_constant_p (ifentry->name) && (__s1_len = strlen
(rowreq_ctx->data.ifentry->name), __s2_len = strlen (ifentry->name),
(!((size_t)(const void *)((rowreq_ctx->data.ifentry->name) + 1) - (size_t)(const
void *)(rowreq_ctx->data.ifentry->name) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)((ifentry->name) + 1) - (size_t)(const void
*)(ifentry->name) == 1) || __s2_len >= 4)) ? __builtin_strcmp
(rowreq_ctx->data.ifentry->name, ifentry->name) : (__builtin_constant_p
(rowreq_ctx->data.ifentry->name) && ((size_t)(const void
*)((rowreq_ctx->data.ifentry->name) + 1) - (size_t)(const void
*)(rowreq_ctx->data.ifentry->name) == 1) && (__s1_len = strlen
(rowreq_ctx->data.ifentry->name), __s1_len < 4) ? (__builtin_constant_p
(ifentry->name) && ((size_t)(const void *)((ifentry->name) + 1) - (size_t)(const
void *)(ifentry->name) == 1) ? __builtin_strcmp (rowreq_c

Wadda mess! It totally ruins the S/N ratio in /var/log/messages.

And just FYI, here is a diff of the interface names/changes with and without xen
kernel.

--- ip-addr.2007-01-08  2007-01-08 12:13:33.000000000 -0800
+++ -   2007-01-08 12:44:00.105480000 -0800
@@ -1,10 +1,28 @@
 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue 
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
     inet 127.0.0.1/8 scope host lo
-2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
-    link/ether 00:04:23:d0:53:cc brd ff:ff:ff:ff:ff:ff
-    inet 10.10.10.202/29 brd 10.10.10.207 scope global eth0
+2: peth0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
+    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
     link/ether 00:04:23:d0:53:cd brd ff:ff:ff:ff:ff:ff
 4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
     link/ether 00:13:72:fe:3c:56 brd ff:ff:ff:ff:ff:ff
+5: vif0.0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue 
+    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
+6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 
+    link/ether 00:04:23:d0:53:cc brd ff:ff:ff:ff:ff:ff
+    inet 10.10.10.202/29 brd 10.10.10.207 scope global eth0
+7: vif0.1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop 
+    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
+8: veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop 
+    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
+9: vif0.2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop 
+    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
+10: veth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop 
+    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
+11: vif0.3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop 
+    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
+12: veth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop 
+    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
+13: xenbr0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue 
+    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff

-- Additional comment from rvokal on 2007-01-12 03:07 EST --
Can you please try to reproduce this issue with the latest rawhide net-snmp? I
can't reproduce the above assertion on my Xen test box. 

-- Additional comment from curtis on 2007-01-12 12:26 EST --
Not reproducible with 5.4-5.fc7.x86_64. This bug appears in fc6 i.e. net-snmp 5.3.1.

-- Additional comment from curtis on 2007-01-12 15:06 EST --
Awwww foo! I roll back to fc6 package and now bug is gone. However...

# chkconfig snmpd on
# shutdown -r now

It's baaaack.

Even further, upgrade to 5.4 (this time my mirror had the rawhide package you
built last night), reboot and the problem persists.

So it is reproducible with both 5.3 and 5.4. Just only when started via boot. Is
there a race here? Or something screwey with my environment?

-- Additional comment from mmarcini on 2007-01-16 09:53 EST --
Altough my messages in /var/log/messages were quite different, the fact is, that
the snmpd logs wierd things. This difference may be configuration related, but
it is bug anyway.

The bug is reporducible.

-- Additional comment from rs.spam.futz.org on 2007-02-05 10:13
EST --
Fixes checked in upstream for 5.3.x:

-fix (reported elsewhere) xen+x86_64 crash:
http://net-snmp.cvs.sourceforge.net/net-snmp/net-snmp/snmplib/snmp_logging.c?r1=5.34.2.5&r2=5.34.2.1&pathrev=V5-3-patches

-fix for overly-verbose log message:
http://net-snmp.cvs.sourceforge.net/net-snmp/net-snmp/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c?r1=1.18.2.3&r2=1.18.2.4


-- Additional comment from rvokal on 2007-03-12 10:53 EST --
Both pathes are in the latest rawhide version, I believe this issue is fixed in
net-snmp-5.4-13

Comment 1 David L. Parsley 2007-08-22 19:49:54 UTC
Just wanted to make sure this bug was flagged for RHEL5, as well.  From
/var/log/messages:
Aug 22 15:48:25 lnxvmhost1 snmpd[3857]: netsnmp_assert __extension__ ({ size_t
__s1_len, __s2_len; (__builtin_constant_p (rowreq_ctx->data.ifentry->name) &&
__builtin_constant_p (ifentry->name) && (__s1_len = strlen
(rowreq_ctx->data.ifentry->name), __s2_len = strlen (ifentry->name),
(!((size_t)(const void *)((rowreq_ctx->data.ifentry->name) + 1) - (size_t)(const
void *)(rowreq_ctx->data.ifentry->name) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)((ifentry->name) + 1) - (size_t)(const void
*)(ifentry->name) == 1) || __s2_len >= 4)) ? __builtin_strcmp
(rowreq_ctx->data.ifentry->name, ifentry->name) : (__builtin_constant_p
(rowreq_ctx->data.ifentry->name) && ((size_t)(const void
*)((rowreq_ctx->data.ifentry->name) + 1) - (size_t)(const void
*)(rowreq_ctx->data.ifentry->name) == 1) && (__s1_len = strlen
(rowreq_ctx->data.ifentry->name), __s1_len < 4) ? (__builtin_constant_p
(ifentry->name) && ((size_t)(const void *)((ifentry->name) + 1) - (size_t)(const
void *)(ifentry->name) == 1) ? __builtin_strcmp (rowreq_c

... about twice every 30 seconds.

Comment 2 Jan Safranek 2007-08-23 06:39:15 UTC

*** This bug has been marked as a duplicate of 239083 ***

Comment 3 Jan Safranek 2007-08-23 06:41:33 UTC
ah, most of the duplicate bug is private and you cannot see it... well, it's
just about exactly the same message you are describing. Should be fixed in RHEL 5.1


Note You need to log in before you can comment on or make changes to this bug.