Closed Bug 1368809 Opened 3 years ago Closed 3 years ago

Assertion in nsHttpChannel::OnStopRequest when RCWN is enabled

Categories

(Core :: Networking: Cache, defect)

defect
Not set

Tracking

()

RESOLVED INVALID

People

(Reporter: michal, Assigned: michal)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

log
137.66 KB, application/gzip
Details
Program received signal SIGSEGV, Segmentation fault.
0xedfea23f in mozilla::net::nsHttpChannel::OnStopRequest (this=0xbaae3000, request=0x9d913c00, ctxt=0x0, status=nsresult::NS_OK)
    at /opt/moz/hg-inbound-2/netwerk/protocol/http/nsHttpChannel.cpp:7122
7122	            MOZ_ASSERT(request != mTransactionPump,
(gdb) p request
$1 = (nsIRequest *) 0x9d913c00
(gdb) p mTransactionPump
$2 = {mRawPtr = 0x0}
(gdb) bt 10
#0  0xffffffff in mozilla::net::nsHttpChannel::OnStopRequest(nsIRequest*, nsISupports*, nsresult) (this=0xbaae3000, request=0x9d913c00, ctxt=0x0, status=nsresult::NS_OK) at /opt/moz/hg-inbound-2/netwerk/protocol/http/nsHttpChannel.cpp:7122
#1  0xffffffff in nsInputStreamPump::OnStateStop() (this=0x9d913c00) at /opt/moz/hg-inbound-2/netwerk/base/nsInputStreamPump.cpp:734
#2  0xffffffff in nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) (this=0x9d913c00, stream=0x9d93d6f0)
    at /opt/moz/hg-inbound-2/netwerk/base/nsInputStreamPump.cpp:448
#3  0xffffffff in nsInputStreamReadyEvent::Run() (this=0xb0977790) at /opt/moz/hg-inbound-2/xpcom/io/nsStreamUtils.cpp:96
#4  0xffffffff in nsThread::ProcessNextEvent(bool, bool*) (this=0xf351e140, aMayWait=false, aResult=0xffd5f8df)
    at /opt/moz/hg-inbound-2/xpcom/threads/nsThread.cpp:1322
#5  0xffffffff in NS_ProcessNextEvent(nsIThread*, bool) (aThread=0xf351e140, aMayWait=false)
    at /opt/moz/hg-inbound-2/xpcom/threads/nsThreadUtils.cpp:472
#6  0xffffffff in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) (this=0xf71f32e0, aDelegate=0xf7137440)
    at /opt/moz/hg-inbound-2/ipc/glue/MessagePump.cpp:96
#7  0xffffffff in MessageLoop::RunInternal() (this=0xf7137440) at /opt/moz/hg-inbound-2/ipc/chromium/src/base/message_loop.cc:238
#8  0xffffffff in MessageLoop::Run() (this=0xf7137440) at /opt/moz/hg-inbound-2/ipc/chromium/src/base/message_loop.cc:231
#9  0xffffffff in MessageLoop::Run() (this=0xf7137440) at /opt/moz/hg-inbound-2/ipc/chromium/src/base/message_loop.cc:211
#10 0xffffffff in nsBaseAppShell::Run() (this=0xea9e3470) at /opt/moz/hg-inbound-2/widget/nsBaseAppShell.cpp:156
This looks strange:

(gdb) l 7122
7117	        status = mStatus;
7118	
7119	    if (mCachedContentIsPartial) {
7120	        if (NS_SUCCEEDED(status)) {
7121	            // mTransactionPump should be suspended
7122	            MOZ_ASSERT(request != mTransactionPump,
7123	                       "byte-range transaction finished prematurely");
7124	
7125	            if (request == mCachePump) {
7126	                bool streamDone;
(gdb) p mCachedContentIsPartial
$8 = 0
Attached file log
The cache entry was still being written when nsHttpChannel::OnCacheEntryCheck was called and mCachedContentIsPartial was not set there, it should be really false, so I have no idea why the if-block was entered. I'll try to catch it in rr.

Valentin, do you see anything suspicious in the log?
Flags: needinfo?(valentin.gosu)
The backtrace is incorrect. I got the same wrong backtrace in bug 1370400. The process asserts earlier, but gdb stops a bit later on an assertion in a block that couldn't be entered.
Status: NEW → RESOLVED
Closed: 3 years ago
Flags: needinfo?(valentin.gosu)
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.