dhcpcd-discuss

Re: 7.1.0 kernel crash on FreeBSD r12.0

Athan Papadimitriou

Wed Jan 23 18:46:53 2019

On Wed, Jan 23, 2019 at 3:49 PM Roy Marples <roy@xxxxxxxxxxxx> wrote:

> On 23/01/2019 13:33, Athan Papadimitriou wrote:
> > Hi Roy,
> >
> > Here is the backtrace
> >
> > Fatal trap 12: page fault while in kernel mode
> > cpuid = 3; apic id = 06
> > fault virtual address   = 0x0
> > fault code              = supervisor read data, page not present
> > instruction pointer     = 0x20:0xffffffff80c99595
> > stack pointer           = 0x28:0xfffffe004f30e4c0
> > frame pointer           = 0x28:0xfffffe004f30e4f0
> > code segment            = base 0x0, limit 0xfffff, type 0x1b
> >                          = DPL 0, pres 1, long 1, def32 0, gran 1
> > processor eflags        = interrupt enabled, resume, IOPL = 0
> > current process         = 1498 (dhcpcd)
> > trap number             = 12
> > panic: page fault
> > cpuid = 3
> > time = 1548198218
> > KDB: stack backtrace:
> > #0 0xffffffff80be7977 at kdb_backtrace+0x67
> > #1 0xffffffff80b9b563 at vpanic+0x1a3
> > #2 0xffffffff80b9b3b3 at panic+0x43
> > #3 0xffffffff8107496f at trap_fatal+0x35f
> > #4 0xffffffff810749c9 at trap_pfault+0x49
> > #5 0xffffffff81073fee at trap+0x29e
> > #6 0xffffffff8104f315 at calltrap+0x8
> > #7 0xffffffff80cc2abf at rt_getifa_fib+0x13f
> > #8 0xffffffff80cc15c6 at rtrequest1_fib+0x436
> > #9 0xffffffff80cc6b90 at route_output+0xd40
> > #10 0xffffffff80c325e6 at sosend_generic+0x586
> > #11 0xffffffff80c328f0 at sosend+0x50
> > #12 0xffffffff80c0d6e9 at soo_write+0x49
> > #13 0xffffffff80c04862 at dofilewrite+0xb2
> > #14 0xffffffff80c043b3 at sys_write+0xc3
> > #15 0xffffffff81075449 at amd64_syscall+0x369
> >
> > I hope it helps
>
> Can you try this patch please?
> diff --git a/src/if-bsd.c b/src/if-bsd.c
> index a5338624..820ecc9c 100644
> --- a/src/if-bsd.c
> +++ b/src/if-bsd.c
> @@ -501,7 +501,7 @@ if_route(unsigned char cmd, const struct rt *rt)
>                      !sa_is_loopback(&rt->rt_gateway))
>                  {
>                          rtm->rtm_index = (unsigned
> short)rt->rt_ifp->index;
> -#ifdef __OpenBSD__
> +#if defined(__OpenBSD__) || defined(__FreeBSD__)
>                          if (!gateway_unspec ||
> rt->rt_dest.sa_family!=AF_INET6)
>   #endif
>                          rtm->rtm_addrs |= RTA_IFP;
>
> Roy
>

It works! Well done Roy!

I will have it running for awhile and keep you informed if another issue
arise...

Athan

Follow-Ups:
Re: 7.1.0 kernel crash on FreeBSD r12.0Roy Marples
Re: 7.1.0 kernel crash on FreeBSD r12.0Roy Marples
References:
7.1.0 kernel crash on FreeBSD r12.0Athan Papadimitriou
Re: 7.1.0 kernel crash on FreeBSD r12.0Roy Marples
Re: 7.1.0 kernel crash on FreeBSD r12.0Athan Papadimitriou
Re: 7.1.0 kernel crash on FreeBSD r12.0Roy Marples
Archive administrator: postmaster@marples.name