Summary: | Kernel panic with ifconfig destroy | ||
---|---|---|---|
Product: | Base System | Reporter: | Ashish Gupta <lrx337> |
Component: | kern | Assignee: | freebsd-net (Nobody) <net> |
Status: | Open --- | ||
Severity: | Affects Only Me | CC: | ae, markj, zlei |
Priority: | --- | Keywords: | crash |
Version: | CURRENT | ||
Hardware: | Any | ||
OS: | Any |
Description
Ashish Gupta
2020-05-28 19:21:27 UTC
Can you show the full panic message from the report? It starts with "Fatal trap 12: page fault while in kernel mode". (In reply to Andrey V. Elsukov from comment #1) Fatal trap 12: page fault while in kernel mode cpuid = 0; apic id = 00 fault virtual address = 0x0 fault code = supervisor read data, page not present instruction pointer = 0x20:0xffffffff80ce307d stack pointer = 0x28:0xfffffe001d7424c0 frame pointer = 0x28:0xfffffe001d742710 code segment = base rx0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 12 (swi4: clock (0)) trap number = 12 -- Is this all the info you needed? (In reply to Ashish Gupta from comment #2) Looks like we are panicking because the counters in the in6_ifstat block are freed. In particular, the panic happens while executing: 790 in6_ifstat_inc(ifp, ifs6_out_request); which expands to 545 #define in6_ifstat_inc(ifp, tag) \ 546 do { \ 547 if (ifp) \ 548 counter_u64_add(((struct in6_ifextra *) \ 549 ((ifp)->if_afdata[AF_INET6]))->in6_ifstat[ \ 550 offsetof(struct in6_ifstat, tag) / sizeof(uint64_t)], 1);\ 551 } while (/*CONSTCOND*/ 0) and the fault address is 0, so it shouldn't be from the if_afdata dereference or the in6_ifstat dereference (since ifs6_out_request is not the first counter in the block). So the interface is already destroyed, but we are sending TCP keepalives through it. Does it still happen on stable/13 or current/14 ? |