On Fri, Oct 25, 2024 at 10:18:42AM +0200, Holger Glaess wrote:
> hi
>
> see below , is from the first reboot aber sysupgrade from 7.5 to 7.6
>
>
> Holger
>
>
> ===> Adding the _dhcp6leased user
> panic: rw_enter: inpnotify locking against myself
> Stopped at db_enter+0x14: popq %rbp
> ===> Adding the _dhcp6leased user
> TID PID UID PRFLAGS PFLAGS CPU COMMAND
> 239340 5005 0 0x100803 0x2000 0K grep
> *432877 32323 0 0x14000 0x200 1 softnet0
> db_enter() at db_enter+0x14
> panic(ffffffff8233bb4f) at panic+0xdd
> rw_enter_diag(ffffffff828bb170,1) at rw_enter_diag+0x4e
> rw_enter(ffffffff828bb170,1) at rw_enter+0x103
> udp_input(ffff800030da6ab8,ffff800030da6ac4,11,2) at udp_input+0x60f
> ip_deliver(ffff800030da6ab8,ffff800030da6ac4,11,2,1) at ip_deliver+0xf8
> ip_ours(ffff800030da6ab8,ffff800030da6ac4,ffff800030da6a0c,0) at
> ip_ours+0x6f
> ip_input_running
> rc.sysmergeif(ffff800030da6ab8,ffff800030da6ac4,31,0,ffff8000008ab800) at
> ip_inpu
> t_if+0x1f0
> ipv4_input(ffff8000008ab800,fffffd807d870300) at i===> Adding the
> _dhcp6leased grouppv4_input+0x38
> ether_input(ffff8000008ab800,fffffd807d870300) at ether_input+0x3df
> vxlan_input(ffff800001315680,fffffd807d870300,fffffd8074bcb050,0,fffffd8074bcb0
> 64,1c) at vxlan_input+0x301
> udp_sbappend(fffffd82779de000,fffffd807d870300,fffffd8074bcb050,0,14,fffffd8074
> bcb064,cae52dbc4504571,14) at udp_sbappend+0x7f
> udp_input(ffff800030da6fa8,ffff800030da6fb4,11,2) at udp_input+0x9c2
> ip_deliver(ffff800030da6fa8,ffff800030da6fb4,11,2,1) at ip_deliver+0xf8
> end trace frame: 0xffff800030da6eb0, count: 0
> https://www.openbsd.org/ddb.html describes the minimum info required in bug
> reports. Insufficient info makes it difficult to find and fix bugs.
>
This diff should help.
Index: sys/netinet/udp_usrreq.c
===================================================================
RCS file: /cvs/src/sys/netinet/udp_usrreq.c,v
diff -u -p -r1.324 udp_usrreq.c
--- sys/netinet/udp_usrreq.c 6 Aug 2024 20:15:53 -0000 1.324
+++ sys/netinet/udp_usrreq.c 25 Oct 2024 08:49:12 -0000
@@ -503,8 +503,12 @@ udp_input(struct mbuf **mp, int *offp, i
else
n = m_copym(m, 0, M_COPYALL, M_NOWAIT);
if (n != NULL) {
+ if (inp->inp_upcall != NULL)
+ rw_exit_write(&table->inpt_notify);
udp_sbappend(inp, n, ip, ip6, iphlen, uh,
&srcsa.sa, 0);
+ if (inp->inp_upcall != NULL)
+ rw_enter_write(&table->inpt_notify);
}
in_pcbunref(inp);
}