kern/104765: kernel panic 6.2 prerelease-20061017 amd64

Kai Gallasch gallasch at free.de
Tue Nov 14 15:37:41 UTC 2006


Robert Watson wrote:
> Synopsis: kernel panic 6.2 prerelease-20061017 amd64
> 
> Responsible-Changed-From-To: freebsd-bugs->rwatson
> Responsible-Changed-By: rwatson
> Responsible-Changed-When: Tue Nov 14 10:05:50 UTC 2006
> Responsible-Changed-Why: 
> Claim ownership, since I've been looking at issues similar or identical
> to this.  Some questions:
> 
> (1) Could you let me know what versions of ip_output.c and tcp_usrreq.c
>     you're running with?

/usr/src/sys/netinet/ip_output.c

* @(#)ip_output.c 8.3 (Berkeley) 1/21/94
* $FreeBSD: src/sys/netinet/ip_output.c,v 1.242.2.16 2006/10/24 13:23:03
rwatson Exp $

/usr/src/sys/netinet/tcp_usrreq.c

* From: @(#)tcp_usrreq.c  8.2 (Berkeley) 1/3/94
* $FreeBSD: src/sys/netinet/tcp_usrreq.c,v 1.124.2.3 2006/09/27 09:24:44
mux Exp $

> 
> (2) Could you try the most recent patch attached to PR 102412?  This is
>     a patch to ip_ctloutput().  I've attached it below, but the chances
>     are good that GNATS will mangle the patch.

ok, I will apply the patch and rebuild.

# cat /boot/loader.conf
debug.mpsafenet=0

If I recompile and reboot - Should I set debug.mpsafenet=1 ?(which is
its default value) Since I set this value to 0 the server didn't crash
and reached 10 days uptime.


> 
> Index: ip_output.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/netinet/ip_output.c,v
> retrieving revision 1.242.2.16
> diff -u -r1.242.2.16 ip_output.c
> --- ip_output.c	24 Oct 2006 13:23:03 -0000	1.242.2.16
> +++ ip_output.c	26 Oct 2006 18:20:55 -0000
> @@ -1155,6 +1155,7 @@
>  	struct sockopt *sopt;
>  {
>  	struct	inpcb *inp = sotoinpcb(so);
> +	struct	inpcbinfo *pcbinfo = inp->inp_pcbinfo;
>  	int	error, optval;
>  
>  	error = optval = 0;
> @@ -1190,12 +1191,15 @@
>  				m_free(m);
>  				break;
>  			}
> +			INP_INFO_WLOCK(pcbinfo);
>  			if (so->so_pcb == NULL) {
> +				INP_INFO_WUNLOCK(pcbinfo);
>  				m_free(m);
>  				error = EINVAL;
>  				break;
>  			}
>  			INP_LOCK(inp);
> +			INP_INFO_WUNLOCK(pcbinfo);
>  			error = ip_pcbopts(inp, sopt->sopt_name, m);
>  			INP_UNLOCK(inp);
>  			return (error);
> 
> 
> http://www.freebsd.org/cgi/query-pr.cgi?pr=104765
> _______________________________________________
> freebsd-bugs at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
> To unsubscribe, send any mail to "freebsd-bugs-unsubscribe at freebsd.org"



More information about the freebsd-bugs mailing list