Closed Bug 251969 Opened 21 years ago Closed 21 years ago

FF10PR1 M17x crash [@ nsHttpChannel::OnStopRequest ]

Categories

(Core :: Networking: HTTP, defect)

x86
All
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla1.8beta1

People

(Reporter: aha, Assigned: darin.moz)

References

Details

(4 keywords)

Crash Data

Attachments

(2 files)

I met this crash while submitting two forms in different tabs (1.7/W2K). One of them was successfully finished, data was sent on server, second was just search... TalkBack server has info about 120 crashes across M17, Trunk, Ff and Tb with this signature: http://talkback-public.mozilla.org/talkback/fastfind.jsp?search=1&searchby=stacksig&match=contains&searchfor=nsHttpChannel%3A%3AOnStopRequest I can't find any open/fixed bug with this signature. TB355155 (my crash): 0x65757274 nsHttpChannel::OnStopRequest [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/netwerk/protocol/http/src/nsHttpChannel.cpp, line 3535] nsInputStreamPump::OnStateStop [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/netwerk/base/src/nsInputStreamPump.cpp, line 499] nsInputStreamPump::OnInputStreamReady [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/netwerk/base/src/nsInputStreamPump.cpp, line 340] nsInputStreamReadyEvent::EventHandler [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/xpcom/io/nsStreamUtils.cpp, line 215] PL_HandleEvent [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/xpcom/threads/plevent.c, line 674] PL_ProcessPendingEvents [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/xpcom/threads/plevent.c, line 612] _md_EventReceiverProc [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/xpcom/threads/plevent.c, line 1415] nsAppShellService::Run [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/xpfe/appshell/src/nsAppShellService.cpp, line 524] main1 [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/xpfe/bootstrap/nsAppRunner.cpp, line 1313] main [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/xpfe/bootstrap/nsAppRunner.cpp, line 1783] WinMain [d:/BUILDS/tinderbox/Mozilla1.7/WINNT_5.0_Clobber/mozilla/xpfe/bootstrap/nsAppRunner.cpp, line 1809] WinMainCRTStartup() KERNEL32.DLL + 0x11af6 (0x7c581af6)
Target Milestone: --- → mozilla1.8beta
we're hitting this in a deployed environment.
Keywords: topcrash
Attached patch v1 patchSplinter Review
This patch may fix the crash. I believe the problem is caused by the NS_RELEASE(mConnection) that occurs inside nsHttpTransaction::Close, which can run on the socket transport thread. As a result, the code in nsHttpChannel::OnStopRequest can get into trouble when it tries to access mTransaction's mConnection variable. nsHttpTransaction::Close keeps mConnection around if the STICKY_CONNECTION flag was set at initialization time. So, this patch checks for that flag, and only tries to access mConnection if that flag is set.
Comment on attachment 159643 [details] [diff] [review] v1 patch this works
Attachment #159643 - Flags: review+
Attachment #159643 - Flags: superreview?(bzbarsky)
Comment on attachment 159643 [details] [diff] [review] v1 patch sr=bzbarsky
Attachment #159643 - Flags: superreview?(bzbarsky) → superreview+
fixed-on-trunk
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Thanks to dveditz for asking questions about this patch. Together we found another edge case that could still trigger the crash. By not testing the value of |status|, we could end up accessing the connection when it was not saved. nsHttpTransaction::Close closes the connection if |status| is a failure code. This patch also adds more documentation.
Attachment #159883 - Flags: review?(dveditz)
I realized after checking in this patch on the trunk that I had done so on a frozen trunk. Oops! :( I will ask drivers for 1.8a4 approval.
Comment on attachment 159883 [details] [diff] [review] v2 followup patch >- if (mCaps & NS_HTTP_STICKY_CONNECTION) >+ if (authRetry && (mCaps & NS_HTTP_STICKY_CONNECTION)) This is the only real difference between v1 and v2 (to catch a potential, but we think improbable, problem if Close() was called with a failing status). The rest is comment and a new var for code clarity. I think it's fair to carry over r= and grant sr=dveditz And since my original involvement was an a= request, a=dveditz for the 1.7.x branch. Please add the fixed1.7.x keyword when this is checked in to the branch.
Attachment #159883 - Flags: superreview+
Attachment #159883 - Flags: review?(dveditz)
Attachment #159883 - Flags: review+
Attachment #159883 - Flags: approval1.7.x+
Comment on attachment 159883 [details] [diff] [review] v2 followup patch need this on aviary too
Attachment #159883 - Flags: approval-aviary?
v2 patch fixed-on-trunk
fixed1.7.x
Keywords: fixed1.7.x
Adding FF10PR1 and M17x so summary for tracking.
Summary: crash [@ nsHttpChannel::OnStopRequest ] → FF10PR1 M17x crash [@ nsHttpChannel::OnStopRequest ]
Comment on attachment 159883 [details] [diff] [review] v2 followup patch a=asa for aviary checkin.
Attachment #159883 - Flags: approval-aviary? → approval-aviary+
fixed-aviary1.0
Keywords: fixed-aviary1.0
*** Bug 257639 has been marked as a duplicate of this bug. ***
Crash Signature: [@ nsHttpChannel::OnStopRequest ]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: