Closed Bug 72026 Opened 23 years ago Closed 23 years ago

Going to a non existant ftp file causes crash/infinite assersions

Categories

(Core Graveyard :: Networking: FTP, defect)

x86
Linux
defect
Not set
critical

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 66330

People

(Reporter: bbaetz, Assigned: dougt)

References

()

Details

(Keywords: crash, Whiteboard: critical for 0.8.1)

Going to a non-existant ftp file causes either:

an infinite number of

###!!! ASSERTION: Infinite loop: can't advance a reading iterator beyond the end
of a string: 'one_hop>0', file ../../dist/include/nsAReadableString.h, line
217###!!! Break: at file ../../dist/include/nsAReadableString.h, line 217

or a single assertion followed by a crash.

###!!! ASSERTION: Infinite loop: can't advance a reading iterator beyond the end
of a string: 'one_hop>0', file ../../dist/include/nsAReadableString.h, line
217###!!! Break: at file ../../dist/include/nsAReadableString.h, line 217

Program received signal SIGSEGV, Segmentation fault.
0x40110e28 in Distance (aStart=@0x871930c, aEnd=@0x87192f8)
    at ../../dist/include/nsAReadableString.h:472
472	        mPosition = mFragment.mStart;
(gdb) bt
#0  0x40110e28 in Distance (aStart=@0x871930c, aEnd=@0x87192f8)
    at ../../dist/include/nsAReadableString.h:472
#1  0x40c3a6dd in nsScanner::RewindToMark (this=0x87192f0) at nsScanner.cpp:230
#2  0x40c37628 in nsParser::Tokenize (this=0x86ff0a0, aIsFinalChunk=0)
    at nsParser.cpp:2469
#3  0x40c369c0 in nsParser::ResumeParse (this=0x86ff0a0, allowIteration=1, 
    aIsFinalChunk=0) at nsParser.cpp:1908
#4  0x40c3740c in nsParser::OnDataAvailable (this=0x86ff0a0, 
    request=0x8718f48, aContext=0x0, pIStream=0x8672498, sourceOffset=0, 
    aLength=0) at nsParser.cpp:2358
#5  0x40c94a37 in ?? ()
   from /home/bbaetz/src/mozilla/dist/bin/components/liburiloader.so
#6  0x40affc87 in nsUnknownDecoder::FireListenerNotifications (this=0x8686830, 
    request=0x8718f48, aCtxt=0x0) at ../../../dist/include/nsCOMPtr.h:648
#7  0x40aff247 in nsUnknownDecoder::OnStopRequest (this=0x8686830, 
    request=0x8718f48, aCtxt=0x0, aStatus=2147500037, aStatusArg=0x4014d69c)
    at nsUnknownDecoder.cpp:225
#8  0x40c94aa0 in ?? ()
   from /home/bbaetz/src/mozilla/dist/bin/components/liburiloader.so
#9  0x41d16ce8 in nsFTPChannel::OnStopRequest (this=0x8718f48, 
    request=0x8475348, aContext=0x0, aStatus=2147500037, aStatusArg=0x4014d69c)
    at ../../../../dist/include/nsCOMPtr.h:647
#10 0x41d1763f in DataRequestForwarder::OnStopRequest (this=0x8475348, 
---Type <return> to continue, or q <return> to quit---q
request=0Quit
) at ../../../../dist/include/nsCOMPtr.h:648
#11 0x40ad2241 in nsOnStopRequestEvent::HandleEvent (this=0x86c71c8)
    at ../../../dist/include/nsCOMPtr.h:648
#12 0x40ad1c75 in nsStreamObserverEvent::HandlePLEvent (aEvent=0x86c71c8)
    at nsStreamObserverProxy.cpp:78
#13 0x400e365f in PL_HandleEvent (self=0x86c71c8) at plevent.c:586
#14 0x400e34bf in PL_ProcessPendingEvents (self=0x80a21e0) at plevent.c:516
#15 0x400e544a in nsEventQueueImpl::ProcessPendingEvents (this=0x80a21b8)
    at nsEventQueue.cpp:361
#16 0x40647c12 in ?? ()
   from /home/bbaetz/src/mozilla/dist/bin/components/libwidget_gtk.so
#17 0x40647874 in ?? ()
   from /home/bbaetz/src/mozilla/dist/bin/components/libwidget_gtk.so
#18 0x4080a1a0 in ?? () from /usr/lib/libglib-1.2.so.0
#19 0x4080b987 in ?? () from /usr/lib/libglib-1.2.so.0
#20 0x4080c001 in ?? () from /usr/lib/libglib-1.2.so.0
#21 0x4080c1cc in ?? () from /usr/lib/libglib-1.2.so.0
#22 0x40725f87 in ?? () from /usr/lib/libgtk-1.2.so.0
#23 0x40648771 in ?? ()
   from /home/bbaetz/src/mozilla/dist/bin/components/libwidget_gtk.so
#24 0x404848ad in ?? ()
   from /home/bbaetz/src/mozilla/dist/bin/components/libnsappshell.so
#25 0x080512be in main1 (argc=1, argv=0xbffff734, nativeApp=0x0)
---Type <return> to continue, or q <return> to quit--- 
    at ../../dist/include/nsCOMPtr.h:648
#26 0x08051f45 in main (argc=1, argv=0xbffff734) at nsAppRunner.cpp:1298
#27 0x402d4f31 in __libc_start_main (main=0x8051db4 <main>, argc=1, 
    ubp_av=0xbffff734, init=0x804aef4 <_init>, fini=0x805ab7c <_fini>, 
    rtld_fini=0x4000e274 <_dl_fini>, stack_end=0xbffff72c)
    at ../sysdeps/generic/libc-start.c:129

Getting this stack trace took several tries - under the debugger I usually just
got the infinite assertions.

Occasionally you just get the blank blue screen like you normally do for a
missing ftp file - just shift reload a couple of times.

dougt - FTP gets this because TestProtocols gives:

Finished loading: ftp://localhost/asda  Status Code: 80004005
	Read: 0 bytes.
	Time to connect: 0.494 seconds
	Time to read: 0.002 seconds.
	Throughput: 0 bps.

Finished loading: ftp://localhost/asda  Status Code: 804b0002
	Read: 0 bytes.
	Time to connect: 0.494 seconds
	Time to read: 984614738.150 seconds.
	Throughput: 0 bps.

Yes, thats _TWO_ finished loading bits, which I think means that something has
serious problems somewhere. (I have an ftp server on localhost - ftp to an
invalid domain doesn't crash)

I don't get a crash from TestProtocols though.

I've locally backed out my nsDirectoryViewer changes, to no affect. I can't get
any breakpoints to trigger in the dirviewer - I don't think it gets that far.
Nominating for 0.8.1 - we can't crash on a typo/bad link/etc - I asked how to do
this:

<timeless> bbaetz add critical for 0.8.1 to the status whiteboard. if drivers
disagree at most they'll yell and remove it

so don't yell too loudly :)
Keywords: crash, mozilla0.8.1
Whiteboard: critical for 0.8.1
walk84 doesn't see this on a windows build from 3-4 days ago
Marking as a dup.  The dup is schedule to be fixed for 0.9.  

*** This bug has been marked as a duplicate of 66330 ***
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → DUPLICATE
verified dup.
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.