Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-20800

QT Sockets hang when there is a network disconnect between sending the request and receiving the reply

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P1: Critical
    • None
    • 4.7.3
    • Network: Sockets
    • Symbian Wk_25 SR1

    Description

      Hi,

      we are seeing this issue where if there is a network disconnect(even a very brief one) between the point of sending the request, and receiving the reply, the sockets just hang, forever. We've observed this in https requests. We have observed this problem on the device as well as emulator. Here with i am attaching a reproducable sample application for your verification (QNetworkReplyIssue.zip file attached).

      Steps for reproduction of this issue:
      1. connect any Wi-Fi access point on device.
      2. launch the application by using CODA on carbide.
      3. Allow the first request to go through network.
      4. when second QNAM->get() request is issued, disconnect Wi-Fi access point.
      5. when another QNAM->get() request gets issued (my application issues QNAM->get() requests once in 60 seconds), you can see that it will change the status of the Wi-Fi access point and uses that.
      6. But you can see that the connection fails.
      7. This failure continues for further QNAM->get() requests also, even though the Wi-Fi access point is in the connected state.

      I have enabled QtNetwork.dll's debug logs on my device. Hence i could found the following information from the traces:

      00:14:23.860 [Qt Message] In MyNetworkReplyIssue() constructor!
      00:14:26.972 [Qt Message] In MyNetworkReplyIssue() constructor! timer::start called!

      00:15:30.518 [Qt Message] timer timedout! sending another QNAM->get() request! <---------------------- first request, Wi-Fi AP connected
      00:15:45.503 [Qt Message] QNetworkReply::error 0
      00:15:48.628 [Qt Message] QNetworkReply::errorString "Unknown error"
      00:15:53.333 [Qt Message] going to call setdefaultif( "WANO" )
      00:15:53.538 [Qt Message] going to call setdefaultif( "WANO" )
      00:15:53.648 [Qt Message] going to call setdefaultif( "WANO" )
      00:15:53.760 [Qt Message] going to call setdefaultif( "WANO" )
      00:15:54.636 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd14e30, parent == 0x0)
      00:15:54.636 [Qt Message] QSslSocket::QSslSocket( QObject(0x0) ), this = 0x501398
      00:15:54.638 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd32340, parent == 0x0)
      00:15:54.638 [Qt Message] QSslSocket::QSslSocket( QObject(0x0) ), this = 0x5235d0
      00:15:54.639 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd21860, parent == 0x0)
      00:15:54.639 [Qt Message] QSslSocket::QSslSocket( QObject(0x0) ), this = 0x5235b8
      00:15:54.641 [Qt Message] QSslSocket::connectToHostImplementation( "msft.spoppe.com" , 443 , OpenMode( "ReadOnly|WriteOnly" ) )
      00:15:54.641 [Qt Message] creating internal plain socket
      00:15:54.642 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd21d58, parent == 0x501398)
      00:15:54.642 [Qt Message] QTcpSocket::QTcpSocket()
      00:15:54.643 [Qt Message] QAbstractSocket::connectToHost("msft.spoppe.com", 443, 3)...
      00:15:54.644 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::HostLookupState )
      00:15:54.645 [Qt Message] QHostInfo::lookupHost("msft.spoppe.com", 0x523600, _q_startConnecting(QHostInfo))
      00:15:54.648 [Qt Message] QAbstractSocket::connectToHost("msft.spoppe.com", 443) == false (connection in progress)
      00:15:54.652 [Qt Message] QHostInfoAgent::fromName(msft.spoppe.com) looking up...
      00:15:54.659 [Qt Message] Setting flags: 'hints.ai_flags &= AI_V4MAPPED | AI_ALL'
      00:15:55.584 [Qt Message] getaddrinfo node: flags: 1024 family: 2048 ai_socktype: 2 ai_protocol: 17 ai_addrlen: 28
      00:15:55.584 [Qt Message] getaddrinfo node: flags: 1024 family: 2048 ai_socktype: 1 ai_protocol: 6 ai_addrlen: 28
      00:15:55.584 [Qt Message] QHostInfoAgent::fromName(): found 1 entries for "msft.spoppe.com":

      {157.56.48.10}
      00:15:55.586 [Qt Message] QAbstractSocketPrivate::_q_startConnecting(hostInfo == {157.56.48.10}

      )
      00:15:55.586 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::ConnectingState )
      00:15:55.586 [Qt Message] QSslSocket::_q_hostFoundSlot()
      00:15:55.587 [Qt Message] state = QAbstractSocket::ConnectingState
      00:15:55.587 [Qt Message] QAbstractSocketPrivate::_q_connectToNextAddress(), connecting to 157.56.48.10:443, 1 left to try
      00:15:55.587 [Qt Message] QAbstractSocketPrivate::resetSocketLayer()
      00:15:55.621 [Qt Message] QAbstractSocketPrivate::initSocketLayer(TcpSocket, IPv4Protocol) success
      00:15:55.622 [Qt Message] QNativeSocketEnginePrivate::nativeConnect() : 3
      00:15:55.624 [Qt Message] QNativeSocketEnginePrivate::nativeConnect(157.56.48.10, 443) == false (Connection in progress)
      00:15:55.917 [Qt Message] QNativeSocketEnginePrivate::nativeConnect() : 3
      00:15:55.917 [Qt Message] QNativeSocketEnginePrivate::nativeConnect(157.56.48.10, 443) == true
      00:15:55.920 [Qt Message] QNativeSocketEnginePrivate::fetchConnectionParameters() local == 10.187.20.44:60377, peer == 157.56.48.10:443, socket == TcpSocket - IPv4Protocol
      00:15:55.920 [Qt Message] QAbstractSocketPrivate::connectionNotification() testing connection
      00:15:55.921 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::ConnectedState )
      00:15:55.922 [Qt Message] QSslSocket::_q_connectedSlot()
      00:15:55.922 [Qt Message] state = QAbstractSocket::ConnectedState
      00:15:55.923 [Qt Message] peer = "msft.spoppe.com" QHostAddress( "157.56.48.10" ) 443
      00:15:55.923 [Qt Message] QHostInfo::fromName("10.187.20.44")
      00:15:55.923 [Qt Message] QHostInfoAgent::fromName(10.187.20.44) looking up...
      00:15:56.124 [Qt Message] local = "10.187.20.44" QHostAddress( "10.187.20.44" ) 60377
      00:15:56.126 [Qt Message] QSslSocket::startClientEncryption()
      00:15:56.149 [Qt Message] QAbstractSocket::writeData(0x434a20 "\26\3\0\0\\1\0\0X\3\0N@??f?;\n23?9J?h\214(?j?\215...", 97) == 97
      00:15:56.149 [Qt Message] QSslSocketBackendPrivate::transmit: wrote 97 encrypted bytes to the socket
      00:15:56.150 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:56.150 [Qt Message] QSslSocketBackendPrivate::transmit: testing encryption
      00:15:56.150 [Qt Message] QSslSocketBackendPrivate::transmit: encryption not done yet
      00:15:56.151 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:56.151 [Qt Message] QSslSocketBackendPrivate::transmit: testing encryption
      00:15:56.151 [Qt Message] QSslSocketBackendPrivate::transmit: encryption not done yet
      00:15:56.152 [Qt Message] QAbstractSocketPrivate::fetchConnectionParameters() connection to 157.56.48.10:443 established
      00:15:56.154 [Qt Message] QAbstractSocketPrivate::canWriteNotification() flushing
      00:15:56.157 [Qt Message] QNativeSocketEnginePrivate::nativeWrite(0x528010 "\26\3\0\0\\1\0\0X\3\0N@??f...", 97) == 97
      00:15:56.158 [Qt Message] QAbstractSocketPrivate::flush() 97 bytes written to the network
      00:15:56.158 [Qt Message] QSslSocket::_q_bytesWrittenSlot( 97 )
      00:15:56.540 [Qt Message] QAbstractSocketPrivate::canReadNotification()
      00:15:56.542 [Qt Message] QNativeSocketEnginePrivate::nativeBytesAvailable() == 4344
      00:15:56.550 [Qt Message] QAbstractSocketPrivate::readFromSocket() about to read 4344 bytes
      00:15:56.555 [Qt Message] QNativeSocketEnginePrivate::nativeRead(0x528010 "\26\3\0\0J\2\0\0F\3\0?\7\4@?...", 4344) == 4344
      00:15:56.556 [Qt Message] QAbstractSocketPrivate::readFromSocket() got 4344 bytes, buffer size = 4344
      00:15:56.557 [Qt Message] QAbstractSocket::bytesAvailable() == 4344
      00:15:56.558 [Qt Message] QSslSocket::_q_readyReadSlot() - 4344 bytes available
      00:15:56.560 [Qt Message] QAbstractSocket::bytesAvailable() == 4344
      00:15:56.565 [Qt Message] QAbstractSocket::readData(0xd41168 "\26\3\0\0J\2\0\0F\3\0?\7\4@????#A???i?,\205?8\201...", 16384) == 4344
      00:15:56.854 [Qt Message] QSslSocketBackendPrivate::transmit: read 4344 encrypted bytes from the socket
      00:15:56.855 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:56.855 [Qt Message] QSslSocketBackendPrivate::transmit: testing encryption
      00:15:56.856 [Qt Message] QSslSocketBackendPrivate::transmit: encryption not done yet
      00:15:56.856 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:56.856 [Qt Message] QSslSocketBackendPrivate::transmit: testing encryption
      00:15:56.857 [Qt Message] QSslSocketBackendPrivate::transmit: encryption not done yet
      00:15:56.860 [Qt Message] QAbstractSocketPrivate::canReadNotification()
      00:15:56.860 [Qt Message] QNativeSocketEnginePrivate::nativeBytesAvailable() == 283
      00:15:56.860 [Qt Message] QAbstractSocketPrivate::readFromSocket() about to read 283 bytes
      00:15:56.861 [Qt Message] QNativeSocketEnginePrivate::nativeRead(0x528010 "yberTrust Global...", 283) == 283
      00:15:56.862 [Qt Message] QAbstractSocketPrivate::readFromSocket() got 283 bytes, buffer size = 283
      00:15:56.862 [Qt Message] QAbstractSocket::bytesAvailable() == 283
      00:15:56.862 [Qt Message] QSslSocket::_q_readyReadSlot() - 283 bytes available
      00:15:56.862 [Qt Message] QAbstractSocket::bytesAvailable() == 283
      00:15:56.863 [Qt Message] QAbstractSocket::readData(0xd41168 "yberTrust Global Root\202\2\1?0E\6\3U\35\37...", 16384) == 283
      00:15:56.879 [Qt Message] QSslSocketBackendPrivate::transmit: read 283 encrypted bytes from the socket
      00:15:56.879 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:56.879 [Qt Message] QSslSocketBackendPrivate::transmit: testing encryption
      00:15:56.944 [Qt Message] QSslSocketBackendPrivate::transmit: encryption not done yet
      00:15:56.946 [Qt Message] QAbstractSocket::writeData(0x434a78 "\26\3\0\1\4\20\0\1\0z???\20\1p\\16?w\212\6\215?\224?P?l\31N&...", 332) == 332
      00:15:56.946 [Qt Message] QSslSocketBackendPrivate::transmit: wrote 332 encrypted bytes to the socket
      00:15:56.947 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:56.947 [Qt Message] QSslSocketBackendPrivate::transmit: testing encryption
      00:15:56.947 [Qt Message] QSslSocketBackendPrivate::transmit: encryption not done yet
      00:15:56.948 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:56.948 [Qt Message] QSslSocketBackendPrivate::transmit: testing encryption
      00:15:56.948 [Qt Message] QSslSocketBackendPrivate::transmit: encryption not done yet
      00:15:56.950 [Qt Message] QAbstractSocketPrivate::canWriteNotification() flushing
      00:15:56.951 [Qt Message] QNativeSocketEnginePrivate::nativeWrite(0x529010 "\26\3\0\1\4\20\0\1\0z???\20\1p...", 332) == 332
      00:15:56.951 [Qt Message] QAbstractSocketPrivate::flush() 332 bytes written to the network
      00:15:56.952 [Qt Message] QSslSocket::_q_bytesWrittenSlot( 332 )
      00:15:57.248 [Qt Message] QAbstractSocketPrivate::canReadNotification()
      00:15:57.248 [Qt Message] QNativeSocketEnginePrivate::nativeBytesAvailable() == 67
      00:15:57.248 [Qt Message] QAbstractSocketPrivate::readFromSocket() about to read 67 bytes
      00:15:57.250 [Qt Message] QNativeSocketEnginePrivate::nativeRead(0x529010 "\24\3\0\0\1\1\26\3\0\08\23?\177vX...", 67) == 67
      00:15:57.250 [Qt Message] QAbstractSocketPrivate::readFromSocket() got 67 bytes, buffer size = 67
      00:15:57.250 [Qt Message] QAbstractSocket::bytesAvailable() == 67
      00:15:57.250 [Qt Message] QSslSocket::_q_readyReadSlot() - 67 bytes available
      00:15:57.251 [Qt Message] QAbstractSocket::bytesAvailable() == 67
      00:15:57.251 [Qt Message] QAbstractSocket::readData(0xd41168 "\24\3\0\0\1\1\26\3\0\08\23?\177vX????F7?n\37%n\210\33,?\23...", 16384) == 67
      00:15:57.256 [Qt Message] QSslSocketBackendPrivate::transmit: read 67 encrypted bytes from the socket
      00:15:57.256 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:57.256 [Qt Message] QSslSocketBackendPrivate::transmit: testing encryption
      00:15:57.262 [Qt Message] QSslSocket::writeData( 0xd264b8 , 186 )
      00:15:57.262 [Qt Message] QSslSocketBackendPrivate::transmit: encryption established
      00:15:57.263 [Qt Message] QSslSocketBackendPrivate::transmit: encrypted 186 bytes
      00:15:57.265 [Qt Message] QAbstractSocket::writeData(0x434a78 "\27\3\0\0?\202=4q?\203P\223\4?g?)?\227?"\366...", 207) == 207
      00:15:57.266 [Qt Message] QSslSocketBackendPrivate::transmit: wrote 207 encrypted bytes to the socket
      00:15:57.266 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:57.266 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:57.268 [Qt Message] QAbstractSocketPrivate::canWriteNotification() flushing
      00:15:57.269 [Qt Message] QNativeSocketEnginePrivate::nativeWrite(0x52b010 "\27\3\0\0?\202=4??q?...", 207) == 207
      00:15:57.269 [Qt Message] QAbstractSocketPrivate::flush() 207 bytes written to the network
      00:15:57.270 [Qt Message] QSslSocket::_q_bytesWrittenSlot( 207 )
      00:15:57.666 [Qt Message] QAbstractSocketPrivate::canReadNotification()
      00:15:57.669 [Qt Message] QNativeSocketEnginePrivate::nativeBytesAvailable() == 856
      00:15:57.670 [Qt Message] QAbstractSocketPrivate::readFromSocket() about to read 856 bytes
      00:15:57.674 [Qt Message] QNativeSocketEnginePrivate::nativeRead(0x52b010 "\27\3\0\3S`O\255\217\30?\t:?\227?...", 856) == 856
      00:15:57.675 [Qt Message] QAbstractSocketPrivate::readFromSocket() got 856 bytes, buffer size = 856
      00:15:57.676 [Qt Message] QAbstractSocket::bytesAvailable() == 856
      00:15:57.677 [Qt Message] QSslSocket::_q_readyReadSlot() - 856 bytes available
      00:15:57.678 [Qt Message] QAbstractSocket::bytesAvailable() == 856
      00:15:57.682 [Qt Message] QAbstractSocket::readData(0xd41168 "\27\3\0\3S`O\255\217\30?\t:?\227?\5\232j\213\237??\216|w?T*RY*...", 16384) == 856
      00:15:57.761 [Qt Message] QSslSocketBackendPrivate::transmit: read 856 encrypted bytes from the socket
      00:15:57.761 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:57.761 [Qt Message] QSslSocketBackendPrivate::transmit: decrypted 835 bytes
      00:15:57.763 [Qt Message] QSslSocket::readData( 0xd267e0 , 16384 ) == 835
      00:15:57.763 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:15:57.808 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:16:26.928 [Qt Message] finished() hit
      00:16:29.416 [Qt Message] QNetworkReply::error 0
      00:16:30.931 [Qt Message] QNetworkReply::errorString "Unknown error"
      00:16:34.933 [Qt Message] readBufferSize is: 0

      00:16:37.581 [Qt Message] timer timedout! sending another QNAM->get() request! <------------------ second request issued, after issue, i have disconnected Wi-Fi access point
      00:16:47.370 [Qt Message] QSslSocket::writeData( 0xd25ee8 , 186 )
      00:16:53.173 [Qt Message] exception on 3 [will close the socket handle - hack]
      00:16:56.966 [Qt Message] QNetworkReply::error 0
      00:16:56.967 [Qt Message] QNetworkReply::errorString "Unknown error"
      00:16:56.995 [Qt Message] QSslSocket::flush()
      00:16:56.999 [Qt Message] QSslSocketBackendPrivate::transmit: encrypted 186 bytes
      00:16:57.008 [Qt Message] QAbstractSocket::writeData(0x434a18 "\27\3\0\0???9??Z7?\205?JX\202mH\13?\6?\3uv?\25<#%...", 207) == 207
      00:16:57.012 [Qt Message] QSslSocketBackendPrivate::transmit: wrote 207 encrypted bytes to the socket
      00:16:57.014 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:16:57.017 [Qt Message] QAbstractSocket::bytesAvailable() == 0
      00:16:57.020 [Qt Message] QNativeSocketEnginePrivate::nativeWrite(0x52b010 "\27\3\0\0???9??Z7?\205?J...", 207) == -1
      00:16:57.023 [Qt Message] QSslSocket::_q_errorSlot( QAbstractSocket::UnfinishedSocketOperationError )
      00:16:57.025 [Qt Message] state = QAbstractSocket::ConnectedState
      00:16:57.027 [Qt Message] errorString = "Unknown error"
      00:16:57.030 [Qt Message] QAbstractSocketPrivate::flush() write error, aborting. "Invalid socket descriptor"
      00:16:57.033 [Qt Message] QAbstractSocket::abort()
      00:16:57.034 [Qt Message] QAbstractSocket::close()
      00:16:57.034 [Qt Message] QAbstractSocket::disconnectFromHost()
      00:16:57.035 [Qt Message] QAbstractSocket::disconnectFromHost() aborting immediately
      00:16:57.035 [Qt Message] QAbstractSocketPrivate::resetSocketLayer()
      00:16:57.036 [Qt Message] QNativeSocketEngine::nativeClose()
      00:16:57.037 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::UnconnectedState )
      00:16:57.037 [Qt Message] QSslSocket::_q_disconnectedSlot()
      00:16:57.038 [Qt Message] state = QAbstractSocket::UnconnectedState
      00:16:57.041 [Qt Message] QAbstractSocket::disconnectFromHost() disconnected!
      00:16:57.041 [Qt Message] QAbstractSocket::disconnectFromHost() closed!
      00:16:58.496 [Qt Message] finished() hit
      00:16:58.498 [Qt Message] QNetworkReply::error 99
      00:16:58.501 [Qt Message] QNetworkReply::errorString "Invalid socket descriptor"
      00:16:58.503 [Qt Message] readBufferSize is: 0
      00:16:58.505 [Qt Message] QSslSocket::close()
      00:16:58.507 [Qt Message] QAbstractSocket::close()
      00:16:58.509 [Qt Message] QAbstractSocket::close()
      00:16:58.512 [Qt Message] QSslSocket::close()
      00:16:58.514 [Qt Message] QAbstractSocket::close()
      00:16:58.516 [Qt Message] QAbstractSocket::close()
      00:16:58.522 [Qt Message] going to call setdefaultif( "" )

      00:17:37.971 [Qt Message] timer timedout! sending another QNAM->get() request! <--------------- third request sent, it automatically converts Wi-Fi connection to connected mode, then starts connecting! now the Wi-Fi shows connected state
      00:17:45.268 On shut down iSgImageIds count was 0
      00:17:45.268 On shut down iSgDriverOpen=0 iSgDriverClosePending=0
      00:17:49.218 [Qt Message] QNetworkReply::error 0
      00:17:49.219 [Qt Message] QNetworkReply::errorString "Unknown error"
      00:17:50.039 [Qt Message] going to call setdefaultif( "WANO" )
      00:17:50.247 [Qt Message] going to call setdefaultif( "WANO" )
      00:17:50.394 [Qt Message] going to call setdefaultif( "WANO" )
      00:17:50.529 [Qt Message] going to call setdefaultif( "WANO" )
      00:17:51.248 [Qt Message] imported 46 certificates
      00:17:51.249 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd4a448, parent == 0x0)
      00:17:51.249 [Qt Message] QSslSocket::QSslSocket( QObject(0x0) ), this = 0x51cd48
      00:17:51.250 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd6ab20, parent == 0x0)
      00:17:51.251 [Qt Message] QSslSocket::QSslSocket( QObject(0x0) ), this = 0x545d58
      00:17:51.252 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd6a170, parent == 0x0)
      00:17:51.252 [Qt Message] QSslSocket::QSslSocket( QObject(0x0) ), this = 0x545d28
      00:17:51.254 [Qt Message] QSslSocket::connectToHostImplementation( "naccdb.ncd.nokia.com" , 443 , OpenMode( "ReadOnly|WriteOnly" ) )
      00:17:51.254 [Qt Message] creating internal plain socket
      00:17:51.254 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd57688, parent == 0x51cd48)
      00:17:51.254 [Qt Message] QTcpSocket::QTcpSocket()
      00:17:51.255 [Qt Message] QAbstractSocket::connectToHost("naccdb.ncd.nokia.com", 443, 3)...
      00:17:51.256 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::HostLookupState )
      00:17:51.257 [Qt Message] QHostInfo::lookupHost("naccdb.ncd.nokia.com", 0x545df8, _q_startConnecting(QHostInfo))
      00:17:51.260 [Qt Message] QAbstractSocket::connectToHost("naccdb.ncd.nokia.com", 443) == false (connection in progress)
      00:17:51.261 [Qt Message] QHostInfoAgent::fromName(naccdb.ncd.nokia.com) looking up...
      00:17:51.265 [Qt Message] Setting flags: 'hints.ai_flags &= AI_V4MAPPED | AI_ALL'
      00:17:51.744 [Qt Message] going to call setdefaultif( "WANO" )
      00:17:52.195 [Qt Message] going to call setdefaultif( "WANO" )
      00:17:52.247 [Qt Message] getaddrinfo node: flags: 1024 family: 2048 ai_socktype: 2 ai_protocol: 17 ai_addrlen: 28
      00:17:52.247 [Qt Message] getaddrinfo node: flags: 1024 family: 2048 ai_socktype: 1 ai_protocol: 6 ai_addrlen: 28
      00:17:52.248 [Qt Message] QHostInfoAgent::fromName(): found 1 entries for "naccdb.ncd.nokia.com":

      {213.157.64.21}
      00:17:52.248 [Qt Message] QAbstractSocketPrivate::_q_startConnecting(hostInfo == {213.157.64.21}

      )
      00:17:52.249 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::ConnectingState )
      00:17:52.249 [Qt Message] QSslSocket::_q_hostFoundSlot()
      00:17:52.249 [Qt Message] state = QAbstractSocket::ConnectingState
      00:17:52.249 [Qt Message] QAbstractSocketPrivate::_q_connectToNextAddress(), connecting to 213.157.64.21:443, 1 left to try
      00:17:52.250 [Qt Message] QAbstractSocketPrivate::resetSocketLayer()
      00:17:52.283 [Qt Message] QAbstractSocketPrivate::initSocketLayer(TcpSocket, IPv4Protocol) success
      00:17:52.283 [Qt Message] QNativeSocketEnginePrivate::nativeConnect() : 3
      00:17:52.286 [Qt Message] QNativeSocketEnginePrivate::nativeConnect(213.157.64.21, 443) == false (Connection in progress)
      00:17:52.995 [Qt Message] going to call setdefaultif( "WANO" )
      00:17:53.166 [Qt Message] going to call setdefaultif( "WANO" )
      00:17:53.184 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd22da8, parent == 0x0)
      00:17:53.184 [Qt Message] QSslSocket::QSslSocket( QObject(0x0) ), this = 0x5236a8
      00:17:53.186 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd40be0, parent == 0x0)
      00:17:53.187 [Qt Message] QSslSocket::QSslSocket( QObject(0x0) ), this = 0x523700
      00:17:53.188 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd25ed8, parent == 0x0)
      00:17:53.188 [Qt Message] QSslSocket::QSslSocket( QObject(0x0) ), this = 0x523708
      00:17:53.190 [Qt Message] QSslSocket::connectToHostImplementation( "msft.spoppe.com" , 443 , OpenMode( "ReadOnly|WriteOnly" ) )
      00:17:53.190 [Qt Message] creating internal plain socket
      00:17:53.191 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd2bc88, parent == 0x5236a8)
      00:17:53.192 [Qt Message] QTcpSocket::QTcpSocket()
      00:17:53.193 [Qt Message] QAbstractSocket::connectToHost("msft.spoppe.com", 443, 3)...
      00:17:53.193 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::HostLookupState )
      00:17:53.194 [Qt Message] QHostInfo::lookupHost("msft.spoppe.com", 0x523698, _q_startConnecting(QHostInfo))
      00:17:53.196 [Qt Message] QAbstractSocket::connectToHost("msft.spoppe.com", 443) == false (connection in progress)
      00:17:53.197 [Qt Message] QNetworkReplyImpl::_q_startOperation was called more than once
      00:17:53.203 [Qt Message] QHostInfoAgent::fromName(msft.spoppe.com) looking up...
      00:17:53.204 [Qt Message] Setting flags: 'hints.ai_flags &= AI_V4MAPPED | AI_ALL'
      00:17:53.321 [Qt Message] getaddrinfo node: flags: 1024 family: 2048 ai_socktype: 2 ai_protocol: 17 ai_addrlen: 28
      00:17:53.322 [Qt Message] getaddrinfo node: flags: 1024 family: 2048 ai_socktype: 1 ai_protocol: 6 ai_addrlen: 28
      00:17:53.323 [Qt Message] QHostInfoAgent::fromName(): found 1 entries for "msft.spoppe.com":

      {157.56.48.10}
      00:17:53.324 [Qt Message] QAbstractSocketPrivate::_q_startConnecting(hostInfo == {157.56.48.10}

      )
      00:17:53.325 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::ConnectingState )
      00:17:53.325 [Qt Message] QSslSocket::_q_hostFoundSlot()
      00:17:53.326 [Qt Message] state = QAbstractSocket::ConnectingState
      00:17:53.326 [Qt Message] QAbstractSocketPrivate::_q_connectToNextAddress(), connecting to 157.56.48.10:443, 1 left to try
      00:17:53.327 [Qt Message] QAbstractSocketPrivate::resetSocketLayer()
      00:17:53.368 [Qt Message] QAbstractSocketPrivate::initSocketLayer(TcpSocket, IPv4Protocol) success
      00:17:53.369 [Qt Message] QNativeSocketEnginePrivate::nativeConnect() : 3
      00:17:53.372 [Qt Message] QNativeSocketEnginePrivate::nativeConnect(157.56.48.10, 443) == false (Connection in progress)
      00:18:22.296 [Qt Message] QAbstractSocketPrivate::_q_abortConnectionAttempt() (timed out)
      00:18:22.303 [Qt Message] QAbstractSocketPrivate::_q_connectToNextAddress(), connecting to 213.157.64.21:443, 0 left to try
      00:18:22.304 [Qt Message] QAbstractSocketPrivate::resetSocketLayer()
      00:18:22.306 [Qt Message] QNativeSocketEngine::nativeClose()
      00:18:22.363 [Qt Message] QAbstractSocketPrivate::initSocketLayer(TcpSocket, IPv4Protocol) success
      00:18:22.363 [Qt Message] QNativeSocketEnginePrivate::nativeConnect() : 3
      00:18:22.366 [Qt Message] QNativeSocketEnginePrivate::nativeConnect(213.157.64.21, 443) == false (Connection in progress)
      00:18:23.385 [Qt Message] QAbstractSocketPrivate::_q_abortConnectionAttempt() (timed out)
      00:18:23.387 [Qt Message] QAbstractSocketPrivate::_q_connectToNextAddress(), connecting to 157.56.48.10:443, 0 left to try
      00:18:23.388 [Qt Message] QAbstractSocketPrivate::resetSocketLayer()
      00:18:23.388 [Qt Message] QNativeSocketEngine::nativeClose()
      00:18:23.423 [Qt Message] QAbstractSocketPrivate::initSocketLayer(TcpSocket, IPv4Protocol) success
      00:18:23.424 [Qt Message] QNativeSocketEnginePrivate::nativeConnect() : 3
      00:18:23.427 [Qt Message] QNativeSocketEnginePrivate::nativeConnect(157.56.48.10, 443) == false (Connection in progress) <-------- you can see that sockets hang, even though the Wi-Fi is in connected mode

      00:18:38.279 [Qt Message] timer timedout! sending another QNAM->get() request! <----------------- fourth request, Wi-Fi in connected state
      00:18:47.710 [Qt Message] QSslSocket::connectToHostImplementation( "msft.spoppe.com" , 443 , OpenMode( "ReadOnly|WriteOnly" ) )
      00:18:47.713 [Qt Message] creating internal plain socket
      00:18:47.716 [Qt Message] QAbstractSocket::QAbstractSocket(TcpSocket, QAbstractSocketPrivate == 0xd23e68, parent == 0x523700)
      00:18:47.718 [Qt Message] QTcpSocket::QTcpSocket()
      00:18:47.722 [Qt Message] QAbstractSocket::connectToHost("msft.spoppe.com", 443, 3)...
      00:18:47.725 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::HostLookupState )
      00:18:47.728 [Qt Message] QAbstractSocketPrivate::_q_startConnecting(hostInfo ==

      {157.56.48.10}

      )
      00:18:47.731 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::ConnectingState )
      00:18:47.731 [Qt Message] QSslSocket::_q_hostFoundSlot()
      00:18:47.732 [Qt Message] state = QAbstractSocket::ConnectingState
      00:18:47.732 [Qt Message] QAbstractSocketPrivate::_q_connectToNextAddress(), connecting to 157.56.48.10:443, 1 left to try
      00:18:47.733 [Qt Message] QAbstractSocketPrivate::resetSocketLayer()
      00:18:47.767 [Qt Message] QAbstractSocketPrivate::initSocketLayer(TcpSocket, IPv4Protocol) success
      00:18:47.768 [Qt Message] QNativeSocketEnginePrivate::nativeConnect() : 6
      00:18:47.771 [Qt Message] QNativeSocketEnginePrivate::nativeConnect(157.56.48.10, 443) == false (Connection in progress)
      00:18:47.773 [Qt Message] QAbstractSocket::connectToHost("msft.spoppe.com", 443) == false (connection in progress) <--------------------- still network requests are failing, sockets got hang forever.
      00:18:52.369 [Qt Message] QAbstractSocketPrivate::_q_abortConnectionAttempt() (timed out)
      00:18:52.378 [Qt Message] QSslSocket::_q_stateChangedSlot( QAbstractSocket::UnconnectedState )
      00:18:52.379 [Qt Message] QSslSocket::_q_errorSlot( QAbstractSocket::SocketTimeoutError )
      00:18:52.380 [Qt Message] state = QAbstractSocket::UnconnectedState
      00:18:52.381 [Qt Message] errorString = "Unknown error"
      00:18:52.446 [Qt Message] QSslSocket::close()

      I am attaching the complete trace log file with this issue thread for your verification (Qt_Socket_hang_issue_reproduced_on_device_wk_25_SR111_09.08.2011.txt attached).

      This is a critical issue since this hangs network requests even though when network is available through another access point.

      Thanks & Regards,
      BalaSubrahmanyam Varanasi

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            shkearns Shane Kearns
            baluvaranasi BalaSubrahmanyam Varanasi
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes