Date: Sun, 6 Jun 2010 19:24:32 +0000 (UTC) From: Randall Stewart <rrs@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/netinet sctp_constants.h sctp_input.c sctp_pcb.c sctputil.c Message-ID: <201006061924.o56JOmo9025159@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
rrs 2010-06-06 19:24:32 UTC FreeBSD src repository Modified files: sys/netinet sctp_constants.h sctp_input.c sctp_pcb.c sctputil.c Log: SVN rev 208878 on 2010-06-06 19:24:32Z by rrs Ok, yet another bug in killing off all the hundreds of apitesters.. Basically we end up with attempting to destroy a lock thats contended on. A cookie echo arrives at the same time that the close is happening. The close gets the lock but the cookie echo has already passed the check for the gone flag and is then locked waiting on the create lock.. when we go to destroy it bam. For now we do the timer destroy for all calls to close.. We can probably optimize this later so that we check whats being contended on and if there is contention then do the timer thing. but this is probably safest since the inp has been removed from all lists and references and only the timer can find it.. once the locks are released all other places will instantly see the GONE flag and bail (thats what the change in sctp_input is one place that was lacking the bail code). MFC after: 1 week Revision Changes Path 1.52 +1 -1 src/sys/netinet/sctp_constants.h 1.94 +6 -0 src/sys/netinet/sctp_input.c 1.104 +3 -1 src/sys/netinet/sctp_pcb.c 1.111 +1 -1 src/sys/netinet/sctputil.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006061924.o56JOmo9025159>