Closed
Bug 223125
Opened 21 years ago
Closed 13 years ago
Closed connection is not reported
Categories
(Core :: Networking, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: bugzilla.mozilla.org, Unassigned)
References
()
Details
(Keywords: helpwanted, Whiteboard: [mentor=bz][lang=c++])
Attachments
(1 file)
11.03 KB,
text/plain
|
Details |
I first go to http://www.mozilla.org/. Then I enter the (sample) URL
http://another.server.
If another.server accepts the GET request from my browser but closes the
connection without sending any data, the browser is left with the page content
of mozilla.org and the URL of another.server. If this was a temporary problem
and I press reload, the page from www.mozilla.org is reloaded.
Comment 1•21 years ago
|
||
this is a matter of error reporting mainly. i suspect docshell is not handling
this error case correctly.
Severity: normal → minor
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla1.6beta
![]() |
||
Comment 2•21 years ago
|
||
well... even if docshell reports the error, the URI field will not change, will
it? Just like for a DNS error, eg.
That said, what error should docshell be looking for? NS_BINDING_ABORTED? Or
something a little more specific? The code currently handles
NS_ERROR_UNKNOWN_HOST, NS_ERROR_CONNECTION_REFUSED, NS_ERROR_UNKNOWN_PROXY_HOST,
NS_ERROR_PROXY_CONNECTION_REFUSED, NS_ERROR_NET_TIMEOUT, NS_ERROR_REDIRECT_LOOP,
NS_ERROR_UNKNOWN_SOCKET_TYPE, NS_ERROR_NET_INTERRUPT, and NS_ERROR_NET_RESET.
Reporter, could you possibly post a url to a page that shows this bug? That
would make testing fixes possible...
Comment 3•21 years ago
|
||
notice that OnStartRequest is called, followed by OnStopRequest with status =
NS_OK. OnDataAvailable is never called. now, disregarding for a moment
whether or not it is correct for necko to send these callbacks with a NS_OK
status... docshell should still be throwing up a blank window for the loaded
URL. an empty document should not be ignored, right? it should show an empty
document ;)
Reporter | ||
Comment 4•21 years ago
|
||
Upon special request, I could start a program on my PC which drops the
connection after a GET request. You would reach it at http://j-m-s.dyndns.org:7070/
But I just found that connecting to localhost:777 or http://www.mozilla.org:8001/
causes the same problem.
![]() |
||
Comment 5•21 years ago
|
||
> localhost:777 or http://www.mozilla.org:8001/
The former gives me a connection refused error; the latter spins the throbber
for a long time (I didn't wait for it to time out).
Darin, if OnStartRequest is followed immediately by OnStopRequest, then
nsParser::OnStopRequest will deal and create a new document... if the parser
ever hears about it. In this case, it does not. A new document should NOT be
created for all requests (eg consider requests that end up being handled by
helper apps).
What it looks like in your log is that there is absolutely nothing to work with
for the content type so content dispatch simply fails in the URILoader. Perhaps
the URILoader should report such an error, though I don't like having the
URILoader know anything about the UI...
![]() |
||
Comment 6•21 years ago
|
||
OK. So I've tracked this down. The problem is that
nsDocumentOpenInfo::OnStartRequest checks for a 204 or 205 response. To do this
is gets the response status on the channel. If the GetResponseStatus call
fails, it just returns NS_OK.
In this case, there is no response, so there is no mResponseHead, hence
GetResponseStatus throws NS_ERROR_NOT_AVAILABLE. That's hardly a useful error
code. ;)
Now there are a few options here:
1) The http channel itself could treat this case as an error and deliver an
error-status OnStopRequest.
2) The http channel could return a useful error code and nsDocumentOpenInfo
could Cancel() with that error code.
3) The http channel could keep on as it is and nsDocumentOpenInfo could make up
an error code for this case or something.
4) The http channel could make up a bogus status even if there is no
mResponseHead (at least if OnStartRequest has been called).
darin? Thoughts?
Updated•21 years ago
|
Target Milestone: mozilla1.6beta → mozilla1.7alpha
Updated•21 years ago
|
Target Milestone: mozilla1.7beta → mozilla1.8alpha
Updated•21 years ago
|
Keywords: helpwanted
Target Milestone: mozilla1.8alpha1 → Future
Is this the condition that used to result in "document contains no data" in
Communicator?
Comment 9•20 years ago
|
||
*** Bug 286086 has been marked as a duplicate of this bug. ***
Comment 10•20 years ago
|
||
*** Bug 286087 has been marked as a duplicate of this bug. ***
Updated•19 years ago
|
Assignee: darin → nobody
Status: ASSIGNED → NEW
QA Contact: benc → networking
Target Milestone: Future → ---
Comment 11•16 years ago
|
||
Jens, do you still see this problem?
Updated•13 years ago
|
Whiteboard: [mentor=bz] → [mentor=bz][lang=c++]
Reporter | ||
Comment 14•13 years ago
|
||
I wrote a java program that opens a server socket, waits for a connection, reads the input and closes the connection. Firefox 10 now says:
"The connection was reset".
So this seems to be fixed.
![]() |
||
Comment 15•13 years ago
|
||
How did you close the connection? Exactly what happens on the HTTP and TCP levels here is very important. The original steps in this bug involved a connection close that looked like a normal but empty HTTP response to our HTTP stack.
Perhaps we changed things so that nothing the server does can trigger that behavior anymore?
Comment 16•13 years ago
|
||
could it be related to the fact that a 0 byte (no hdr) response used to be considered a 0 length well formed http/0.9 response and is now considered an error (like everyone else does)?
![]() |
||
Comment 17•13 years ago
|
||
Yes! That change almost certainly fixed this bug.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•