Closed Bug 54648 Opened 24 years ago Closed 24 years ago

ftp failures [1 8004005] then crash

Categories

(Core Graveyard :: Networking: FTP, defect, P3)

x86
Windows NT
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: warrensomebody, Assigned: dougt)

References

()

Details

(Keywords: crash)

If you go to ftp://law and sort by size, and then try to kick off downloads of 
the 4 largest files there, they will start failing with a dialog saying "Unknown 
error [1 8004005]" (ugh!). 

Then you crash in nsStreamXferOp::OnStartRequest with mOutputChannel == null:

NTDLL! 77f7629c()
nsDebug::Assertion(const char * 0x0789cfe4 
??_C@_0DJ@KMGL@You?5can?8t?5dereference?5a?5NULL?5nsC@, const char * 0x0789d028 
??_C@_0N@NHHF@mRawPtr?5?$CB?$DN?50?$AA@, const char * 0x0789d038 
??_C@_0CE@LLDK@?4?4?2?4?4?2?4?4?2?4?4?2dist?2include?2nsCOMPt@, int 0x00000289) 
line 256 + 13 bytes
nsDebug::PreCondition(const char * 0x0789cfe4 
??_C@_0DJ@KMGL@You?5can?8t?5dereference?5a?5NULL?5nsC@, const char * 0x0789d028 
??_C@_0N@NHHF@mRawPtr?5?$CB?$DN?50?$AA@, const char * 0x0789d038 
??_C@_0CE@LLDK@?4?4?2?4?4?2?4?4?2?4?4?2dist?2include?2nsCOMPt@, int 0x00000289) 
line 396 + 21 bytes
nsCOMPtr<nsIChannel>::operator->() line 649 + 34 bytes
nsStreamXferOp::OnStartRequest(nsStreamXferOp * const 0x07affabc, nsIChannel * 
0x07a7dcd0, nsISupports * 0x00000000) line 284 + 38 bytes
nsFTPChannel::OnStartRequest(nsFTPChannel * const 0x07a7dce0, nsIChannel * 
0x07afc684, nsISupports * 0x00000000) line 690 + 40 bytes
nsOnStartRequestEvent::HandleEvent(nsOnStartRequestEvent * const 0x07c318c0) 
line 210 + 26 bytes
nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x07c31870) line 97 + 12 bytes
PL_HandleEvent(PLEvent * 0x07c31870) line 575 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x00b4a6a0) line 508 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x0e770dec, unsigned int 0x0000c0df, unsigned int 
0x00000000, long 0x00b4a6a0) line 1044 + 9 bytes
USER32! 77e71820()
00b4a6a0()

Note: I think "Unknown error [1 8004005]" is due to not finding an appropriate 
error string in the xpcom.properties file (8004005 is NS_ERROR_FAILURE -- pretty 
generic), but I haven't investigated. Maybe someone should be calling 
nsIStringBundle::formatStatusMessage and isn't.
I'm sorry to add that if you fix up nsStreamXferOp::OnStartRequest to not 
request, the modality of all the dialogs seems to be hopelessly screwed up. Two 
dialogs are left up in my browser with this cryptic message along with 2 file 
transfer windows, and none of them let me click their buttons to dismiss them!
Keywords: crash, rtm
The problem with my FTP server is already noted (bug 54287).

The problems with error handling code are addressed via various rtm+ bugs (bug 
35161, etc.).  I have fixes for that.  The crash is due to the bug in 
nsBufferedStream.cpp (apply the patch posted in bug 35161, which I've also 
emailed you about, Warren :-).

I'm not sure what you mean by "fix up ... to not request."  I did observe 
recently that in some circumstances we were getting some strange out-of-order 
onstoprequest/ondataavailable/onstartrequest notifications.  My error handling 
code changes dealt with that, but I thought it was odd.  I think I saw it in 
context of the problems described in bug 54287.
Uh... I meant fix up to not crash. Must have been asleep at the keyboard. I'll 
take a look at the other bugs you pointed out...
I believe dougt is working on the out-of-order notifications... ?
Assignee: rjc → dougt
Depends on: 54371
I Checked in a fix for this and this problem should be gone now.  Please verify
with either tomorrow Trunk or NSCP Branch build.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Component: Networking → Networking: FTP
VERIFIED: no crash in Mozilla 1.1, Win 98
Whiteboard: checkmac, checklinux
No crashing, but some other strangeness:

Mac/Win: can surf all directories except /usr, get:

"421 Too many connections on this account." or infinite throbber.

Linux: no errors, but blank page for /usr.

Status: RESOLVED → VERIFIED
Whiteboard: checkmac, checklinux
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.