Closed Bug 54648 Opened 25 years ago Closed 25 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: 25 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.