snmpd core dump when there are two interfaces with the same address

Juan Carlos Franzoy <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
Hello. First of all, thanks for reading.

I have a problem with net-snmp-5.5 which does not occur in
net-snmp-5.4.2.1. I think the same
problem was reported in bug "Two interfaces with the same address core
dump - ID: 2003383"
(https://sourceforge.net/tracker/index.php?func=detail&aid=2003383&group_id=12694&atid=112694).

I am not sure if I have to report it as a bug.
Thanks a lot.


Description of the problem
--------------------------

We have a system with two network cards, each one with its own ip
address. We created one virtual interface
for each network card. Both virtual interface has the same ip address
-we use 'ucarp'
(http://www.ucarp.org/project/ucarp) to alternatively activate only
one of them or one of other ifaces with the same
ip address in other equipments. When I try to start snmpd, is aborts
(SIGSEGV) and dumps a core file.



Detailed description
--------------------

Well, all this is in a production system. I made a test in my solaris
box, with only one network card with the
same results.

I have a normal configuration

    bash-3.00# ifconfig -a
    lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL>
mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000
    xnf0: flags=201004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4,CoS>
mtu 1500 index 2
            inet 172.16.97.224 netmask fffff800 broadcast 172.16.103.255
            ether 0:16:3e:51:d2:bb
    lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL>
mtu 8252 index 1
            inet6 ::1/128
    xnf0: flags=202000840<RUNNING,MULTICAST,IPv6,CoS> mtu 1500 index 2
            inet6 fe80::216:3eff:fe51:d2bb/10
            ether 0:16:3e:51:d2:bb

Then I create two virtual interfaces with the same ip address

    bash-3.00# ifconfig xnf0 addif 172.16.100.88 down
    Created new logical interface xnf0:1

    bash-3.00# ifconfig xnf0 addif 172.16.100.88 down
    Created new logical interface xnf0:2

    bash-3.00# ifconfig -a
    lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL>
mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000
    xnf0: flags=201004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4,CoS>
mtu 1500 index 2
            inet 172.16.97.224 netmask fffff800 broadcast 172.16.103.255
            ether 0:16:3e:51:d2:bb
    xnf0:1: flags=201000842<BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu
1500 index 2
            inet 172.16.100.88 netmask ffff0000 broadcast 172.16.255.255
    xnf0:2: flags=201000842<BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu
1500 index 2
            inet 172.16.100.88 netmask ffff0000 broadcast 172.16.255.255
    lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL>
mtu 8252 index 1
            inet6 ::1/128
    xnf0: flags=202000840<RUNNING,MULTICAST,IPv6,CoS> mtu 1500 index 2
            inet6 fe80::216:3eff:fe51:d2bb/10
            ether 0:16:3e:51:d2:bb

Start snmpd: it crash.

    bash-3.00# /usr/local/net-snmp-5.5/sbin/snmpd -f -c
/usr/local/net-snmp-5.5/share/snmp/snmpd.conf -C
    Segmentation Fault (core dumped)

    bash-3.00# /usr/local/net-snmp-5.5/sbin/snmpd -f -c
/usr/local/net-snmp-5.5/share/snmp/snmpd.conf -C -L -V -a -d
    error on subcontainer 'ia_addr' insert (-1)
    Segmentation Fault (core dumped)

Even if I tell snmpd to use another iface.

    bash-3.00# /usr/local/net-snmp-5.5/sbin/snmpd -f -c
/usr/local/net-snmp-5.5/share/snmp/snmpd.conf -C -L -V -a -d tcp:loca
    lhost:10233
    error on subcontainer 'ia_addr' insert (-1)
    Segmentation Fault (core dumped)

    /usr/local/net-snmp-5.5/sbin/snmpd -f -c
/usr/local/net-snmp-5.5/share/snmp/snmpd.conf -C -L -V -a -d -DALL
    ... lot of lines stripped ...
    trace: netsnmp_binary_array_insert(): container_binary_array.c, 348:
    container: not inserting duplicate key
    error on subcontainer 'ia_addr' insert (-1)
    compare:index: compare .1 to .2
    compare:index: result was -1
    compare:index: compare .2 to .2
    compare:index: result was 0
    compare:index: compare .2 to .4
    compare:index: result was -1
    compare:index: compare .2 to .3
    compare:index: result was -1
    compare:index: compare .2 to .2
    compare:index: result was 0
    compare:index: compare .3 to .3
    compare:index: result was 0
    compare:index: compare .3 to .4
    compare:index: result was -1
    compare:index: compare .3 to .3
    compare:index: result was 0
    compare:index: compare .3 to .4
    compare:index: result was -1
    compare:index: compare .4 to .4
    compare:index: result was 0
    trace: _load_v4(): ip-mib/data_access/ipaddress_solaris2.c, 194:
    access:ipaddress:container: unable to insert xnf0:2
    trace: netsnmp_access_ipaddress_container_free():
ip-mib/data_access/ipaddress_common.c, 125:
    access:ipaddress:container: free
    trace: netsnmp_access_ipaddress_container_free():
ip-mib/data_access/ipaddress_common.c, 125:
    access:ipaddress:container: free
    Segmentation Fault (core dumped)

The problem disapears if I remove one of the two duplicated addresses

    bash-3.00# ifconfig xnf0 removeif 172.16.100.88
    bash-3.00# /usr/local/net-snmp-5.5/sbin/snmpd -f -c
/usr/local/net-snmp-5.5/share/snmp/snmpd.conf -C -L -V -a -d



Some (may be) important data:

    bash-3.00# uname -a
    SunOS bcpp-solaris10 5.10 Generic_139556-08 i86pc i386 i86pc

    bash-3.00# /usr/local/net-snmp-5.5/bin/net-snmp-config --configure-options
     '--prefix=/usr/local/net-snmp-5.5'

    bash-3.00# /usr/local/net-snmp-5.5/bin/net-snmp-config --version
    5.5

    ################ content of
/usr/local/net-snmp-5.5/share/snmp/snmpd.conf ##################
    rocommunity public
    rwcommunity private
    syslocation Corrientes
    syscontact HelpDesc
    sysservices 72
    master agentx
    AgentXSocket unix:/tmp/agentx_ats
    agentxPerms 777
    trapsink localhost
    ############ end of content of
/usr/local/net-snmp-5.5/share/snmp/snmpd.conf ###############

    ################## gdb snmpd core ##############################
    .... lines stripped ...
    Core was generated by `/usr/local/net-snmp-5.5/sbin/snmpd -f -c
/usr/local/net-snmp-5.5/share/snmp/snm'.

    Program terminated with signal 11, Segmentation fault.
    #0  ipAddressTable_container_load (container=0x810cc30) at
ip-mib/ipAddressTable/ipAddressTable_data_access.c:347
    347     ip-mib/ipAddressTable/ipAddressTable_data_access.c: No
such file or directory.
            in ip-mib/ipAddressTable/ipAddressTable_data_access.c
    (gdb) bt
    #0  ipAddressTable_container_load (container=0x810cc30) at
ip-mib/ipAddressTable/ipAddressTable_data_access.c:347
    #1  0xfee89bed in ipAddressTable_container_init
(container_ptr_ptr=0xfeed77a0, cache=0x810cbe8)
        at ip-mib/ipAddressTable/ipAddressTable_data_access.c:137
    #2  0xfee88ec6 in _ipAddressTable_initialize_interface
(reg_ptr=0x0, flags=0)
        at ip-mib/ipAddressTable/ipAddressTable_interface.c:1995
    #3  0xfee771de in initialize_table_ipAddressTable () at
ip-mib/ipAddressTable/ipAddressTable.c:104
    #4  0xfee77321 in init_ipAddressTable () at
ip-mib/ipAddressTable/ipAddressTable.c:56
    #5  0xfee9a951 in init_mib_modules () at
../agent/mibgroup/mib_module_inits.h:80
    #6  0x0805307d in main (argc=10, argv=0x8047da0) at snmpd.c:913
    ################## end of gdb ##############################

Thanks in advance.


-- 
  Juan Carlos Franzoy
Licenciado en Sistemas

------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.