Search
Resolved
as Won't Fix Help for as Won't Fix

1
Sign in to vote
0
Sign in to vote
Sign in
to vote
Type: Bug
ID: 488052
Opened: 9/3/2009 7:31:35 PM
Access Restriction: Public
2
Workaround(s)
0
User(s) can reproduce this bug
This happens very intermittently, maybe once a week. (The app is making hundreds of similar requests per day).

HttpSendRequest hangs on fetching an https URL (GET request). When it hangs - it never returns. Always with the same call stack. We do set INTERNET_OPTION_CONNECT_TIMEOUT, INTERNET_OPTION_RECEIVE_TIMEOUT and INTERNET_OPTION_SEND_TIMEOUT.

This is on Windows XP SP3. IE version 8.0.6001.18702. WinInet.dll version 8.0.6001.18806. Any ideas? Thank you!

Call stack:

    ntdll.dll!_KiFastSystemCallRet@0()     
    ntdll.dll!_ZwWaitForSingleObject@12() + 0xc bytes    
    mswsock.dll!_SockWaitForSingleObject@16() + 0x3c9 bytes    
    mswsock.dll!_WSPRecv@36() + 0x148f bytes    
    ws2_32.dll!_recv@16() + 0x6f bytes    
    wininet.dll!ICSocket::Receive_Continue() + 0x90 bytes    
    wininet.dll!ICSocket::Receive_Start() + 0x60 bytes    
    wininet.dll!CFsm_SocketReceive::RunSM() + 0x1c bytes    
    wininet.dll!CFsm::Run() + 0x26 bytes    
    wininet.dll!DoFsm() + 0x25 bytes    
    wininet.dll!ICSocket::Receive() + 0x3a bytes    
    wininet.dll!ICSecureSocket::NegotiateLoop_Fsm() + 0x1b1 bytes    
    wininet.dll!CFsm_NegotiateLoop::RunSM() + 0x29 bytes    
    wininet.dll!CFsm::Run() + 0x26 bytes    
    wininet.dll!DoFsm() + 0x25 bytes    
    wininet.dll!ICSecureSocket::SSPINegotiateLoop() + 0x37 bytes    
    wininet.dll!ICSecureSocket::SecureNegotiate_Fsm() - 0x11 bytes    
    wininet.dll!CFsm_SecureNegotiate::RunSM() + 0x29 bytes    
    wininet.dll!CFsm::Run() + 0x26 bytes    
    wininet.dll!DoFsm() + 0x25 bytes    
    wininet.dll!ICSecureSocket::NegotiateSecConnection() + 0x2b bytes    
    wininet.dll!ICSecureSocket::SecureHandshake_Fsm() + 0x13c4 bytes    
    wininet.dll!CFsm_SecureHandshake::RunSM() + 0x31 bytes    
    wininet.dll!CFsm::Run() + 0x26 bytes    
    wininet.dll!DoFsm() + 0x25 bytes    
    wininet.dll!ICSecureSocket::SecureHandshakeWithServer() + 0x2b bytes    
    wininet.dll!ICSecureSocket::Connect_Fsm() + 0x80 bytes    
    wininet.dll!CFsm_SecureConnect::RunSM() + 0x37 bytes    
    wininet.dll!CFsm::Run() + 0x26 bytes    
    wininet.dll!DoFsm() + 0x25 bytes    
    wininet.dll!ICSecureSocket::Connect() + 0x12ada bytes    
    wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::OpenConnection_Fsm() + 0x11602 bytes    
    wininet.dll!CFsm_OpenConnection::RunSM() + 0x1c bytes    
    wininet.dll!CFsm::Run() + 0x26 bytes    
    wininet.dll!DoFsm() + 0x25 bytes    
    wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::OpenConnection() + 0x2b bytes    
    wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::MakeConnection_Fsm() + 0x7a bytes    
    wininet.dll!CFsm_MakeConnection::RunSM() + 0x1d bytes    
    wininet.dll!CFsm::Run() + 0x26 bytes    
    wininet.dll!DoFsm() + 0x25 bytes    
    wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::SendRequest_Fsm() + 0xaf bytes    
    wininet.dll!CFsm_SendRequest::RunSM() + 0x1d bytes    
    wininet.dll!CFsm::Run() + 0x26 bytes    
    wininet.dll!DoFsm() + 0x25 bytes    
    wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::HttpSendRequest_Start() + 0x19d bytes    
    wininet.dll!CFsm_HttpSendRequest::RunSM() + 0x31 bytes    
    wininet.dll!CFsm::Run() + 0x26 bytes    
    wininet.dll!DoFsm() + 0x25 bytes    
    wininet.dll!HttpWrapSendRequest() + 0x25d89 bytes    
    wininet.dll!_HttpSendRequestA@20() + 0x1d bytes    
Details (expand)

Technology

WinInet
Repro Steps
Here's the sequence of WinInet calls:
hSess = InternetOpenA(szUSER_AGENT, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
DWORD timeout = 60 * 1000;
InternetSetOption(hSess, INTERNET_OPTION_CONNECT_TIMEOUT, &timeout, sizeof(timeout));
InternetSetOption(hSess, INTERNET_OPTION_RECEIVE_TIMEOUT, &timeout, sizeof(timeout));
InternetSetOption(hSess, INTERNET_OPTION_SEND_TIMEOUT, &timeout, sizeof(timeout));
hReq = HttpOpenRequestA(hConn, "GET", szUrl, NULL, NULL, rgszAcceptTypes,
INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_UI | INTERNET_FLAG_RELOAD | INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_SECURE | INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID, 0);
fRes = HttpSendRequestA(hReq, NULL, 0, NULL, 0);

Operating System

Windows XP
File Attachments
0 attachments
Sign in to post a comment.