Re: panic in tcp_do_segment()

2013-04-12 Thread Peter Holm
On Fri, Apr 12, 2013 at 10:14:40AM -0400, Juan Mojica wrote: Glad I could help. - Peter >I'm a little late to get back to the email thread, but this is great to >hear. Changes look good (assuming the goto drop is changed >dropunlock). Thanks guys. > >On Tue, Apr 9, 2013 at 2:4

Re: panic in tcp_do_segment()

2013-04-12 Thread Juan Mojica
I'm a little late to get back to the email thread, but this is great to hear. Changes look good (assuming the goto drop is changed dropunlock). Thanks guys. On Tue, Apr 9, 2013 at 2:44 PM, Peter Holm wrote: > On Tue, Apr 09, 2013 at 10:35:30AM +0200, Andre Oppermann wrote: > > On 09.04.2013 10

Re: panic in tcp_do_segment()

2013-04-09 Thread Peter Holm
On Tue, Apr 09, 2013 at 10:35:30AM +0200, Andre Oppermann wrote: > On 09.04.2013 10:16, Peter Holm wrote: > > On Mon, Apr 08, 2013 at 02:13:40PM +0200, Andre Oppermann wrote: > >> On 05.04.2013 13:09, Matt Miller wrote: > >>> Hey Rick, > >>> > >>> I believe Juan and I have root caused this crash re

Re: panic in tcp_do_segment()

2013-04-09 Thread Andre Oppermann
On 09.04.2013 10:16, Peter Holm wrote: On Mon, Apr 08, 2013 at 02:13:40PM +0200, Andre Oppermann wrote: On 05.04.2013 13:09, Matt Miller wrote: Hey Rick, I believe Juan and I have root caused this crash recently. The t_state = 0x1, TCPS_LISTEN, in the link provided at the time of the assertio

Re: panic in tcp_do_segment()

2013-04-09 Thread Peter Holm
On Mon, Apr 08, 2013 at 02:13:40PM +0200, Andre Oppermann wrote: > On 05.04.2013 13:09, Matt Miller wrote: > > Hey Rick, > > > > I believe Juan and I have root caused this crash recently. The t_state = > > 0x1, TCPS_LISTEN, in the link provided at the time of the assertion. > > > > In tcp_input(),

Re: panic in tcp_do_segment()

2013-04-08 Thread Matt Miller
Hey Andre, Looks OK to me. Note that tcps_rcvdwhileclosing is a new stat Juan added (I had omitted the rest of that diff b/c adding a new stat wasn't that interesting to the discussion). If you want that stat added, we can prepare a patch with the rest of the changes (or, I'm sure you know alrea

Re: panic in tcp_do_segment()

2013-04-08 Thread Andre Oppermann
On 05.04.2013 13:09, Matt Miller wrote: Hey Rick, I believe Juan and I have root caused this crash recently. The t_state = 0x1, TCPS_LISTEN, in the link provided at the time of the assertion. In tcp_input(), if we're in TCPS_LISTEN, SO_ACCEPTCONN should be set on the socket and we should never

Re: panic in tcp_do_segment()

2013-04-07 Thread Rick Macklem
Juan Mojica wrote: > Agree with Matt. > > Whenever there is an UNLOCK/LOCK like is present in soclose(), there > is a window to allow something through.  Unsetting SO_ACCEPTCONN was > put in place because the LOCK/UNLOCK in soclose let a new socket to be > added to the so_incomp list causing a dif

Re: panic in tcp_do_segment()

2013-04-05 Thread Juan Mojica
Agree with Matt. Whenever there is an UNLOCK/LOCK like is present in soclose(), there is a window to allow something through. Unsetting SO_ACCEPTCONN was put in place because the LOCK/UNLOCK in soclose let a new socket to be added to the so_incomp list causing a different ASSERT to be hit - and m

Re: panic in tcp_do_segment()

2013-04-05 Thread Matt Miller
Hey Rick, I believe Juan and I have root caused this crash recently. The t_state = 0x1, TCPS_LISTEN, in the link provided at the time of the assertion. In tcp_input(), if we're in TCPS_LISTEN, SO_ACCEPTCONN should be set on the socket and we should never enter tcp_do_segment() for this state. I

Re: panic in tcp_do_segment()

2013-04-05 Thread Andre Oppermann
On 05.04.2013 00:33, Rick Macklem wrote: Hi, When pho@ was doing some NFS testing, he got the following crash, which I can't figure out. (As far as I can see, INP_WLOCK() is always held when tp->t_state = TCPS_CLOSED and it is held from before the test for TCPS_CLOSED in tcp_input() up until the

panic in tcp_do_segment()

2013-04-04 Thread Rick Macklem
Hi, When pho@ was doing some NFS testing, he got the following crash, which I can't figure out. (As far as I can see, INP_WLOCK() is always held when tp->t_state = TCPS_CLOSED and it is held from before the test for TCPS_CLOSED in tcp_input() up until the tcp_do_segment() call. As such, I don't se