On Mon, May 21, 2012 at 5:16 PM, Claudio Jeker <[email protected]>
wrote:
> On Thu, May 10, 2012 at 08:19:58PM -0300, Rafael Zalamena wrote:
>> While I was configuring a new ALIX to my MPLS setup a panic ocurred
>> while starting LDPd daemon.
>>
>> Steps:
>> 1. Configure all interfaces using /etc/hostname.*, then run 'sh
>> /etc/netstart'
>> 2. Configure ospfd.conf, then start it: ospfd -dv &
>> 3. Configure ldpd.conf, then start it: ldpd -dv
>> 4. Panic
>>
>> I'll send the ospfd.conf and ldpd.conf next mail. I'm using OpenBSD
>> 5.1-release on all 3 ALIX now, it happened while I was setting up the
>> last ALIX connected to the other two.
>>
>> p.s. note the scrambled print output of LDPd before dying.
>>
>
>
>> Panic log
>> ===
>> # ldpd -dv
>> startup
>> kernel add routeuvm_fault(0xd54e5bf4, 0x0, 0, 1) -> e
>>  0.0.0.0/0
>> kernkel add route 10.e0.3.0/24
>> kernelr add route 10.0.n4.0/24
>> kernel aedd route 10.0.10l.3/32
>> kernel ad:d route 192.168. 3.0/24
>> page fault trap, code=0
>> Stopped at      ifaof_ifpforaddr+0x26:  movl    0x14(%edx),%edx
>
>> ddb> trace
>> ifaof_ifpforaddr(d11884d8,0,0,d03e6afd,d09e1220) at ifaof_ifpforaddr+0x26
>> ifa_ifwithroute(140003,d11884d8,d11884e8,0,d09e1220) at
ifa_ifwithroute+0x61
>> rt_getifa(d8c9acfc,0,d1188a0c,2,0) at rt_getifa+0xe2
>> rtrequest1(1,d8c9acfc,8,d8c9ad54,0) at rtrequest1+0x5f7
>> route_output(d54ebb00,d5358008,d54ebb00,0,0) at route_output+0xe29
>> route_usrreq(d5358008,9,d54ebb00,0,0) at route_usrreq+0x65
>> sosend(d5358008,0,d8c9aec0,d54ebb00,0) at sosend+0x456
>> soo_write(d54d2370,d54d238c,d8c9aec0,d54f23c0,d54e44c8) at soo_write+0x3b
>> dofilewritev(d54df680,4,d54d2370,cfbf3f40,3) at dofilewritev+0x131
>> sys_writev(d54df680,d8c9af64,d8c9af84,d0576b0a,d54df680) at
sys_writev+0x7c
>> syscall() at syscall+0x26a
>> --- syscall (number 0) ---
>> 0x2:
>> ddb>
>
> The ifp passed to ifaof_ifpforaddr() is NULL. How that can happen is
> unclear to me, it seems like the found ifa is not valid anymore.
> Is this crash easy to trigger? Can I get you're hostname.* files,
> ospfd.conf and ldpd.conf for all three boxes?
>

ALIX3: (this one panic'ed)
==> /etc/hostname.lo1
10.0.10.3/32
==> /etc/hostname.mpe0
mplslabel 666
192.168.3.200/32
==> /etc/hostname.vr0
192.168.3.200/24
==> /etc/hostname.vr1
10.0.4.2/24 mpls
==> /etc/hostname.vr2
10.0.3.1/24 mpls
==> /etc/ospfd.conf
router-id 10.0.10.3

area 0.0.0.0 {
        interface vr0
        interface vr1
        interface vr2
        interface lo1
}
==> /etc/ldpd.conf
router-id 10.0.10.3

interface vr1
interface vr2


ALIX2:
==> /etc/hostname.lo1
10.0.10.2/32
==> /etc/hostname.vr1
10.0.3.2/24 mpls
==> /etc/hostname.vr2
10.0.1.2/24 mpls
==> /etc/ospfd.conf
router-id 10.0.10.2

area 0.0.0.0 {
        interface vr1
        interface vr2
        interface lo1
}
==> /etc/ldpd.conf
router-id 10.0.10.2

interface vr1
interface vr2


ALIX1:
==> /etc/hostname.lo1
10.0.10.1/32
==> /etc/hostname.mpe0
mplslabel 666
192.168.1.200/32
==> /etc/hostname.vr0
192.168.1.200/24
!route add default 192.168.1.254
==> /etc/hostname.vr1
10.0.1.1/24 mpls
==> /etc/hostname.vr2
10.0.2.1/24 mpls
==> /etc/ospfd.conf
router-id 10.0.10.1

area 0.0.0.0 {
        interface vr0
        interface vr1
        interface vr2
        interface lo1
}
==> /etc/ldpd.conf
router-id 10.0.10.1

interface vr1
interface vr2


The setup topology is: http://dl.dropbox.com/u/222135/partial.png
For more information about the setup, please see the "MPLS Setup" thread I
made.

Steps to reproduce:
1 - Configure ALIX1 interfaces, ospf, ldpd
2 - Start interfaces and then daemons (ospf first)
3 - Repeate for 2 and 3.
4 - While repeating the process for ALIX3 it panics.

ALIX 3 crashed while starting LDPd with the others running (maybe its
a event storm thing?). I might have forgotten something, but once
everything is placed it doesn't happen anymore, so we can try to
reproduce it by reconfiguring one of the hosts while the others one
are working.

Configuration showing script:
for i in `ls -1 /etc/hostname.*`; do \
echo "==> $i"; \
cat $i; \
done; \
echo "==> /etc/ospfd.conf"; \
cat /etc/ospfd.conf; \
echo "==> /etc/ldpd.conf"; \
cat /etc/ldpd.conf;

Reply via email to