Closed Bug 120144 Opened 23 years ago Closed 23 years ago

cancelling SSL connection to unreachable server causes browser hang

Categories

(Core :: Networking: HTTP, defect)

x86
Linux
defect
Not set
critical

Tracking

()

VERIFIED DUPLICATE of bug 106188

People

(Reporter: blizzard, Assigned: darin.moz)

References

Details

Build is from the morning of Jan 15th, 2002 off the tip. If I try to connect to an unreachable server using https, and use the cancel button in the browser to stop the connection, the browser will hang. Steps to reproduce: 1. Load a web site like https://198.198.198.198 which should be unreachable. 2. While the browser is connecting, hit Cancel The browser should be hung at this point. Once the connection times out ( 60 seconds or so ) the browser will come back. I've debugged this somewhat. It looks like the UI thread is stuck getting the lock in nsSocketTrasnport: #1 0x402051c9 in __pthread_wait_for_restart_signal (self=0x4020df40) at pthread.c:969 #2 0x40206f09 in __pthread_alt_lock (lock=0x851c37c, self=0x0) at restart.h:34 #3 0x40203d16 in __pthread_mutex_lock (mutex=0x851c36c) at mutex.c:120 #4 0x401de14d in PR_Lock (lock=0x851c36c) at ptsynch.c:183 #5 0x401de6ca in PR_EnterMonitor (mon=0x851c368) at ptsynch.c:507 #6 0x408595b7 in nsSocketTransport::Dispatch (this=0x851c260, req=0x851c408) at ../../../dist/include/xpcom/nsAutoLock.h:200 #7 0x4085ba73 in nsSocketRequest::Cancel (this=0x851c408, status=2152398850) at nsSocketTransport.cpp:2637 #8 0x4088955f in nsHttpConnection::OnTransactionComplete (this=0x84e48d8, trans=0x84e47c8, status=2152398850) at nsHttpConnection.cpp:268 #9 0x40883d5f in nsHttpHandler::CancelTransaction (this=0x8147ca0, trans=0x84e47c8, status=2152398850) at nsHttpHandler.cpp:515 #10 0x4088c06a in nsHttpTransaction::Cancel (this=0x84e47c8, status=2152398850) at nsHttpHandler.h:78 #11 0x408924a5 in nsHttpChannel::Cancel (this=0x82a3938, status=2152398850) at nsHttpChannel.cpp:1758 #12 0x4084ddcd in nsLoadGroup::Cancel (this=0x878cbf0, status=2152398850) at nsLoadGroup.cpp:248 #13 0x40dc883b in nsDocLoaderImpl::Stop (this=0x878cb48) at ../../dist/include/xpcom/nsCOMPtr.h:650 while NSS is waiting to connect, also while in the socket transport code: #0 0x4059ee17 in __poll (fds=0x40bb949c, nfds=1, timeout=5000) at ../sysdeps/unix/sysv/linux/poll.c:63 #1 0x401def9e in pt_poll_now (op=0x40bb94fc) at ptio.c:570 #2 0x401df1eb in pt_Continue (op=0x40bb94fc) at ptio.c:684 #3 0x401dff38 in pt_Connect (fd=0x437c7ed0, addr=0x40bb95cc, timeout=4294967295) at ptio.c:1482 #4 0x401ce701 in Ipv6ToIpv4SocketConnect (fd=0x4222fa28, addr=0x851c29c, timeout=4294967295) at pripv6.c:135 #5 0x435206ab in ssl_SecureConnect () at nsUnicharUtils.cpp:275 #6 0x43522527 in ssl_Connect () at nsUnicharUtils.cpp:275 #7 0x434e85e6 in nsSSLIOLayerConnect (fd=0x889e808, addr=0x851c29c, timeout=20) at nsNSSIOLayer.cpp:526 #8 0x401cdfb1 in PR_Connect (fd=0x889e808, addr=0x851c29c, timeout=20) at priometh.c:182 #9 0x4085847d in nsSocketTransport::doConnection (this=0x851c260, aSelectFlags=0) at nsSocketTransport.cpp:835 #10 0x40857b8a in nsSocketTransport::Process (this=0x851c260, aSelectFlags=0) at nsSocketTransport.cpp:505 #11 0x4085c4b6 in nsSocketTransportService::ProcessWorkQ (this=0x8110af0) at nsSocketTransportService.cpp:297 #12 0x4085c8d9 in nsSocketTransportService::Run (this=0x8110af0) at nsSocketTransportService.cpp:543 #13 0x4016a7cb in nsThread::Main (arg=0x8103728) at ../../dist/include/xpcom/nsCOMPtr.h:650 Something bad is happening here. Either that code shouldn't be holding the socket transport lock or else the connect should be non-blocking and should also return immediately.
Blocks: 115520
*** This bug has been marked as a duplicate of 106188 ***
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → DUPLICATE
Verified dupe.
Status: RESOLVED → VERIFIED
QA Contact: tever → junruh
You need to log in before you can comment on or make changes to this bug.