> System crashed after updating today. > During the start of system services, in specific > at the start of sendmail the system crashes with > the new kernel. :/
There are some problems with the inpcb locking: - attempts to destroy held lock in in_pcbdetach. - typo in unlocking (causing recursive lock instead) - lack of inet6 support for inpcb locking, e.g. no handling of locks in in6_pcbdetach. I had to comment out INET6 from my kernel config file and apply the enclosed patch to get my machine to boot today. - Tor Egge
Index: sys/netinet/in_pcb.c =================================================================== RCS file: /home/ncvs/src/sys/netinet/in_pcb.c,v retrieving revision 1.106 diff -u -r1.106 in_pcb.c --- sys/netinet/in_pcb.c 10 Jun 2002 20:05:36 -0000 1.106 +++ sys/netinet/in_pcb.c 11 Jun 2002 16:13:29 -0000 @@ -573,6 +573,11 @@ rtfree(inp->inp_route.ro_rt); ip_freemoptions(inp->inp_moptions); inp->inp_vflag = 0; + /* XXX: Kludge: Unlock inp before crashing */ + if (mtx_owned(&inp->inp_mtx)) { + printf("Warning: INP_LOCK held in in_pcbdetach\n"); + INP_UNLOCK(inp); + } INP_LOCK_DESTROY(inp); uma_zfree(ipi->ipi_zone, inp); } @@ -741,7 +746,7 @@ } INP_UNLOCK(inp); } - INP_INFO_RLOCK(pcbinfo); + INP_INFO_RUNLOCK(pcbinfo); } /*