On 2020-04-20 12:14, Martin Pieuchot wrote:
>> login: panic: kernel diagnostic assertion "!ISSET(rt->rt_flags,
>> RTF_LOCAL)" failed: file "/usr/src/sys/netinet6/nd6.c", line 727
> 
> That means some part of the ND code is incorrectly setting an `expire'
> value to an entry that is local, and therefor should never expire.
> 
> Could you try to reproduce the issue with the diff below?  It should
> also panic but points us to the place where the bug is.
> 
> [...]
With the diff applied, this is the panic message:

starting network
vio0: DAD detected duplicate IPv6 address fe80:1::1: NS in/out=0/1, NA in=1
vio0: DAD complete for fe80:1::1 - duplicate found
vio0: manual intervention required
reordering libraries:ndp info overwritten for fe80:1::1 by
76:fa:d3:57:ec:56 on vio0
panic: kernel diagnostic assertion "!ISSET(ln->ln_rt->rt_flags,
RTF_LOCAL)" failed: file "/usr/src/sys/netinet6/nd6.c", line 309
Stopped at      db_enter+0x10:  popq    %rbp

    TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
*457148  43436      0     0x14000      0x200    0  softnet
db_enter() at db_enter+0x10
panic() at panic+0x128
__assert(ffffffff81c8d6ea,ffffffff81c94c17,135,ffffffff81c9fb69) at
__assert+0x
2b

nd6_llinfo_settimer(fffffd803ec6ff00,15180) at nd6_llinfo_settimer+0xdf
nd6_cache_lladdr(ffff8000000972a8,ffff800014a496a0,fffffd803714f874,8,86,0)
at n
d6_cache_lladdr+0x2be

nd6_rtr_cache(fffffd8036ee3000,28,38,86) at nd6_rtr_cache+0x31e
icmp6_input(ffff800014a499d8,ffff800014a499e4,3a,18) at icmp6_input+0x33d
ip_deliver(ffff800014a499d8,ffff800014a499e4,3a,18) at ip_deliver+0x1b3
ip6_input_if(ffff800014a499d8,ffff800014a499e4,29,0,ffff8000000972a8) at
ip6_in
put_if+0x8a7

ipv6_input(ffff8000000972a8,fffffd8036c8c200) at ipv6_input+0x39
ether_input(ffff8000000972a8,fffffd8036c8c200,0) at ether_input+0x1d3
if_input_process(ffff8000000972a8,ffff800014a49ac8) at if_input_process+0x8c
ifiq_process(ffff800000097648) at ifiq_process+0x69
taskq_thread(ffff800000022040) at taskq_thread+0x3d
end trace frame: 0x0, count: 1
https://www.openbsd.org/ddb.html describes the minimum info required in bug
reports.  Insufficient info makes it difficult to find and fix bugs.
ddb> ps
   PID     TID   PPID    UID  S       FLAGS  WAIT          COMMAND
 52319  220335  48472      0  2    0x100003                ar
 48472  160852   1385      0  3    0x100089  pause         sh
  4518  212129  53183    115  3    0x100092  kqread        slaacd
 18367  312990  53183    115  3    0x100092  kqread        slaacd
 53183   69949      1      0  3    0x100080  kqread        slaacd
  1385  473193      1      0  3    0x10008b  pause         sh
 35971  370200      0      0  3     0x14200  pgzero        zerothread
 99205   77666      0      0  3     0x14200  aiodoned      aiodoned
 74221  215874      0      0  3     0x14200  syncer        update
 70709  427908      0      0  3     0x14200  cleaner       cleaner
 64788  144629      0      0  3     0x14200  reaper        reaper
 12214  515539      0      0  3     0x14200  pgdaemon      pagedaemon
 92505  317381      0      0  3     0x14200  bored         crynlk
 76094  225660      0      0  3     0x14200  bored         crypto
 12517  102463      0      0  3     0x14200  fdprobe       fdcattach
 56081  234408      0      0  3     0x14200  bored         viomb
 37692  155909      0      0  3     0x14200  usbtsk        usbtask
 94142   69832      0      0  3     0x14200  usbatsk       usbatsk
  4210  166502      0      0  3  0x40014200  acpi0         acpi0
*43436  457148      0      0  7     0x14200                softnet
  1013  500947      0      0  3     0x14200  bored         systqmp
 75108  420942      0      0  3     0x14200  bored         systq
 51573  324335      0      0  3  0x40014200  bored         softclock
  2368  335789      0      0  3  0x40014200                idle0
 28301   80641      0      0  3     0x14200  bored         smr
     1  451792      0      0  3        0x82  wait          init
     0       0     -1      0  3     0x10200  scheduler     swapper

Reply via email to