Bug 1174899 - discarded spdy data with fin attributed to wrong stream r=bagder
authorPatrick McManus <mcmanus@ducksong.com>
Sun, 22 Nov 2015 16:23:18 -0500
changeset 273776 4ec0c590ef66
parent 273775 29bb91687133
child 273777 599f81b28729
push id68376
push usermcmanus@ducksong.com
push date2015-11-23 15:38 +0000
treeherdermozilla-inbound@4ec0c590ef66 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbagder
bugs1174899
milestone45.0a1
Bug 1174899 - discarded spdy data with fin attributed to wrong stream r=bagder
netwerk/protocol/http/Http2Session.cpp
netwerk/protocol/http/SpdySession31.cpp
--- a/netwerk/protocol/http/Http2Session.cpp
+++ b/netwerk/protocol/http/Http2Session.cpp
@@ -589,16 +589,17 @@ Http2Session::ResetDownstreamState()
   ChangeDownstreamState(BUFFERING_FRAME_HEADER);
 
   if (mInputFrameFinal && mInputFrameDataStream) {
     mInputFrameFinal = false;
     LOG3(("  SetRecvdFin id=0x%x\n", mInputFrameDataStream->StreamID()));
     mInputFrameDataStream->SetRecvdFin(true);
     MaybeDecrementConcurrent(mInputFrameDataStream);
   }
+  mInputFrameFinal = false;
   mInputFrameBufferUsed = 0;
   mInputFrameDataStream = nullptr;
 }
 
 // return true if activated (and counted against max)
 // otherwise return false and queue
 bool
 Http2Session::TryToActivate(Http2Stream *aStream)
--- a/netwerk/protocol/http/SpdySession31.cpp
+++ b/netwerk/protocol/http/SpdySession31.cpp
@@ -544,16 +544,17 @@ SpdySession31::ResetDownstreamState()
   if (mInputFrameDataLast && mInputFrameDataStream) {
     mInputFrameDataLast = false;
     if (!mInputFrameDataStream->RecvdFin()) {
       LOG3(("  SetRecvdFin id=0x%x\n", mInputFrameDataStream->StreamID()));
       mInputFrameDataStream->SetRecvdFin(true);
       DecrementConcurrent(mInputFrameDataStream);
     }
   }
+  mInputFrameDataLast = false;
   mInputFrameBufferUsed = 0;
   mInputFrameDataStream = nullptr;
 }
 
 // return true if activated (and counted against max)
 // otherwise return false and queue
 bool
 SpdySession31::TryToActivate(SpdyStream31 *aStream)