Closed Bug 210579 Opened 21 years ago Closed 21 years ago

hang trying to access page with invalid headers

Categories

(Core :: Networking: HTTP, defect)

x86
Linux
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: ajschult784, Assigned: bzbarsky)

References

()

Details

(Keywords: hang, regression)

Attachments

(2 files, 1 obsolete file)

I noticed this on http://www.1061rdu.com/
The hang occurs with linux trunk 2003062505 and not 2003062405, apparent
regression from bug 120789

wget -S URL says:
Connecting to ads4.clearchannel.com[207.230.153.11]:80... connected.
HTTP request sent, awaiting response... 
End of file while parsing headers.
Attached file stacktrace
> The hang occurs with linux trunk 2003062505 and not 2003062405

Er?  There does not exist a 2003-06-25-05 build yet....
got this stack trace with the 20030624 firebird trunk build:

    	 ntdll.dll + 0x17bc (0x77f517bc)   	 
    	msvcrt.dll + 0x1ac14 (0x77c2ac14) 	 
    	msvcrt.dll + 0x1ac2a (0x77c2ac2a) 	 
    	XPCConvert::NativeData2JS 
[d:/nightlybuild/phoenix/trunk/mozilla/js/src/xpconnect/src/xpcconvert.cpp, line
365]
    	nsXPCWrappedJSClass::CallMethod 
[d:/nightlybuild/phoenix/trunk/mozilla/js/src/xpconnect/src/xpcwrappedjsclass.cpp,
line 1228]
    	nsXPCWrappedJS::CallMethod 
[d:/nightlybuild/phoenix/trunk/mozilla/js/src/xpconnect/src/xpcwrappedjs.cpp,
line 429]
    	PrepareAndDispatch 
[d:/nightlybuild/phoenix/trunk/mozilla/xpcom/reflect/xptcall/src/md/win32/xptcstubs.cpp,
line 119]
    	SharedStub 
[d:/nightlybuild/phoenix/trunk/mozilla/xpcom/reflect/xptcall/src/md/win32/xptcstubs.cpp,
line 147]
    	nsURILoader::ShouldHandleContent 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 738]
    	nsURILoader::DispatchContent 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 807]
    	nsDocumentOpenInfo::DispatchContent 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 351]
    	nsDocumentOpenInfo::OnStartRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 228]
    	nsUnknownDecoder::FireListenerNotifications 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 537]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 252]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/uriloader/base/nsURILoader.cpp, line 255]
    	nsUnknownDecoder::OnStopRequest 
[d:/nightlybuild/phoenix/trunk/mozilla/netwerk/streamconv/converters/nsUnknownDecoder.cpp,
line 258]
    	nsDocumentOpenInfo::OnStopRequest 

something is causing an infinite recusion.
> Er?  There does not exist a 2003-06-25-05 build yet....

that should have been "6/23 and 6/24"
Attached patch Patch (obsolete) — Splinter Review
mIsPending gets set to false OnStopRequest, so the SetContentType from
nsUnknownDecoder fails and we end up in an infinite loop in content dispatch in
the URILoader.

This patch fixes the problem.
Attachment #126429 - Flags: superreview?(darin)
Attachment #126429 - Flags: review?(darin)
hmm.. not another flag :(  maybe you could check if |mListener != nsnull|
instead?  like this:

  if (mListener) {
    if (!mResponseHead)
      return NS_ERROR_NOT_AVAILABLE;
    // ok, override content-type
  }
  else {
    // AsyncOpen hasn't been called; set content-type hint
  }
using mListener does feel a little bit sketchy, but whatever.
Um.. sure.  I'm not going to get a chance to compile/test tonight at this point;
my next chance to do so will be Saturday night.  If we want that fixed before
that, the mListener thing sounds fine to me.
Blocks: 210649
Attached patch v2 patchSplinter Review
simple patch, replacing mIsPending with mListener.
Attachment #126429 - Attachment is obsolete: true
Attachment #126467 - Flags: review?(dougt)
Attachment #126429 - Flags: superreview?(darin)
Attachment #126429 - Flags: review?(darin)
Attachment #126467 - Flags: review?(dougt) → review+
*** Bug 210649 has been marked as a duplicate of this bug. ***
fixed-on-trunk
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
*** Bug 210751 has been marked as a duplicate of this bug. ***
*** Bug 210804 has been marked as a duplicate of this bug. ***
Darin, thanks for landing this!
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: