Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Mar 2015 23:17:16 +0100
From:      Florian Smeets <flo@smeets.im>
To:        "Andrey V. Elsukov" <ae@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r279588 - head/sys/netinet6
Message-ID:  <54F8D5EC.8030800@smeets.im>
In-Reply-To: <201503041120.t24BK2SG000709@svn.freebsd.org>
References:  <201503041120.t24BK2SG000709@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On 04.03.15 12:20, Andrey V. Elsukov wrote:
> Author: ae
> Date: Wed Mar  4 11:20:01 2015
> New Revision: 279588
> URL: https://svnweb.freebsd.org/changeset/base/279588
> 
> Log:
>   Fix deadlock in IPv6 PCB code.
>   

Hi,

everything I'm going to mention is running world/kernel @r279675.

I have a host running a couple of IPv6 only bhyves. It looks like I can easily panic them when trying to ssh into them. With my limited understanding I'd say the stack trace points to this commit.

All the tap interfaces used by the bhyves are connected to one bridge interface. Every bhyve has its own IPv6 address configured on vtnet0. The bridge interface on the host has an IPv6 address which is the default gateway in all the bhyves.

Let me know if you need anything else. It seems to be quite easy to reproduce.

Fatal trap 12: page fault while in kernel mode
cpuid = 6; apic id = 06
fault virtual address   = 0x0
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff80bda224
stack pointer           = 0x28:0xfffffe01efbfd330
frame pointer           = 0x28:0xfffffe01efbfd3d0
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         = 12 (irq265: virtio_pci0)
[ thread pid 12 tid 100036 ]
Stopped at      in6_pcbnotify+0x254:    movl    (%rax),%edx
db> where
Tracing pid 12 tid 100036 td 0xfffff800063d0000
in6_pcbnotify() at in6_pcbnotify+0x254/frame 0xfffffe01efbfd3d0
tcp6_ctlinput() at tcp6_ctlinput+0xf0/frame 0xfffffe01efbfd470
icmp6_input() at icmp6_input+0x18d4/frame 0xfffffe01efbfd660
ip6_input() at ip6_input+0x488/frame 0xfffffe01efbfd740
netisr_dispatch_src() at netisr_dispatch_src+0x61/frame 0xfffffe01efbfd7b0
ether_demux() at ether_demux+0x15d/frame 0xfffffe01efbfd7e0
ether_nh_input() at ether_nh_input+0x377/frame 0xfffffe01efbfd840
netisr_dispatch_src() at netisr_dispatch_src+0x61/frame 0xfffffe01efbfd8b0
ether_input() at ether_input+0x26/frame 0xfffffe01efbfd8d0
vtnet_rxq_eof() at vtnet_rxq_eof+0x7ab/frame 0xfffffe01efbfd9a0
vtnet_rx_vq_intr() at vtnet_rx_vq_intr+0x94/frame 0xfffffe01efbfd9e0
intr_event_execute_handlers() at intr_event_execute_handlers+0x1d8/frame 0xfffffe01efbfda20
ithread_loop() at ithread_loop+0x9c/frame 0xfffffe01efbfda70
fork_exit() at fork_exit+0x9a/frame 0xfffffe01efbfdab0
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe01efbfdab0
--- trap 0, rip = 0, rsp = 0xfffffe01efbfdb70, rbp = 0 ---

(kgdb) list *0xffffffff80bda224
0xffffffff80bda224 is in in6_pcbnotify (/usr/src/sys/netinet6/in6_pcb.c:649).
644                      * and the application (associated with this socket) wanted to
645                      * know the value, notify.
646                      * XXX: should we avoid to notify the value to TCP sockets?
647                      */
648                     if (cmd == PRC_MSGSIZE)
649                             ip6_notify_pmtu(inp, (struct sockaddr_in6 *)dst,
650                                             *(u_int32_t *)cmdarg);
651
652                     /*
653                      * Detect if we should notify the error. If no source and
(kgdb) print dst
$5 = (struct sockaddr *) 0xfffffe01efbfd590
(kgdb) print notify
$6 = (struct inpcb *(*)(struct inpcb *,
    int)) 0xffffffff80bb5220 <tcp_mtudisc_notify>

Florian


[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2

iQJ8BAEBCgBmBQJU+NXvXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRBNzAxMDMyMDNCQ0FCNDRBOThGRUM4NDRF
NzA1M0RGOUZGODZGMDc2AAoJEOcFPfn/hvB2sWMP/2piGQjkX0lH7L4sA8PdRugU
Mh/8AEGx5/oYClQEOu6ZlVi7q8ftKc55JgEXqGLXWDfQXGlR/ZJqjcntqGym/D0L
n0V6F+FbnkwTRN0Dw2bONYHdyfZnt6iDJM7MOme2AumOTZ0AQvvvqJvcTWz5Zv8j
XYZVJ2YqO9x+Buh/1012nWvG8K3+bseaBodRKQVfOXSd9MkxgSZ3d5oeAMTeYhME
enOuaD5s+LSbJogz1KzwOwmPu3weg8ew/KOrLBov9qZtyl8qqWidFRb98biJgOEK
ekHDRnsZSjx/kSR3liPUH11ydGcBsP2ZjHhrTHzCjXhYb9AqCWFJgd3ld6jkyyS5
EUhP3K2u6bsoL6GCmeJzdZds6rUQUBzTGhN1xwpq8bEX0ibiGH3OnJxP1LKAKoBP
xMC8QCuOdPJo614PVgGT3xyy/7GzDTMN4LHMjGCZR9A/MMJseiSkw3QZHQlicJBo
opMpu4b4Osc7WR+PHlx/ZpDatFicjSd7LhiWLOEV35n1BE4GVSmn1mxuRnzEpwk+
QwLTyyM1v34RyWs8eb924NVbOTFfwTcYj/kSVhkYaoy+HdAXT9+XIazgYXWp7Vvx
Hb6Nk7PH/uabpFrnxg0Q31mD9ibiDxLkMNPjbZfUCW0egfft0dhthho5sx0bAYOc
89wc7iXq569qA+93KEOn
=jKqm
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54F8D5EC.8030800>