Date: Fri, 01 Nov 2002 16:39:12 -0800 From: Terry Lambert <tlambert2@mindspring.com> To: Bill Fenner <fenner@research.att.com> Cc: mime@traveller.cz, current@FreeBSD.ORG Subject: Re: crash with network load (in tcp syncache ?) Message-ID: <3DC31EB0.2B79F42E@mindspring.com> References: <200211012246.gA1Mki5n001478@stash.attlabs.att.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Bill Fenner wrote: > sonewconn() hands sofree() a self-inconsistent socket -- so->so_head is > set, so so must be on a queue, but sonewconn() hasn't put it on a queue yet. > Please try this patch. I think this can still crash (just like my patch); the problem is in what happens when it fails to allocate memory. Unless you set one of the flags, it's still going to panic in the same place, I think, when you run out of memory. The code that the SYN-cache uses really needs to be refactored, and seperated out. The problem is that the delay in allocation is intentional, to permit the cache to deal with lighter weight instances, until it decides to actually create a connection. There's not a clean way to do this, really, without passing the address of the socket pointer down, and having lower level code fill it out, I think. 8-(. The problem is definitely based on what happens in the allocation or protocol attach failure cases. -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DC31EB0.2B79F42E>