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

tst_networkselftest autotest fails often in Digia hosted CI infra

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 4.8.x, 5.0.0 Beta 1, 5.5.0 Beta
    • Network: Sockets
    • None
    • Windows 7, 32 bit, 4 cores, 4GB RAM, running in VMWare.

    Description

      The tst_networkselftest::ftpProxyServer test case is failing constantly in Digia hosted Qt-Project CI system, especially on Windows machines. The test case always fails on the step 32 as follows:

      14:39:52 QDEBUG : tst_NetworkSelfTest::ftpProxyServer() 31 Sending "QUIT\r\n" 
      14:39:52 QDEBUG : tst_NetworkSelfTest::ftpProxyServer() 32 Expecting "221" 
      14:39:52 FAIL!  : tst_NetworkSelfTest::ftpProxyServer() Failed to receive data in step 32: timeout
      14:39:52 tst_networkselftest.cpp(231) : failure location
      

      Windows machines in CI infra are VMWare virtual machines with 32-bit Windows 7. The machine have 4 virtual cores and 4GB RAM. We have tried with different VMWare network adapters, but regardless of used network adapter the ftpProxyServer test case fails about 9 times out of 10 attempts.

      Attached is Wireshark trace from Windows machine running the ftpProxyServer test case. The log have first entries from successful execution (packets 1-30), and then from failing execution (packets 31-60). As one case see from traces, the test machine receives the correct ftpChat sequence with both runs:

      220 Frox transparent ftp proxy. Login with username[@host[:port]]
      USER anonymous@qt-test-server.qt-test-net
      331 Please specify the password.
      PASS user@hostname
      230 Login successful.
      CWD pub
      250 Directory successfully changed.
      CWD dir-not-readable
      550 Failed to change directory.
      PWD
      257 "/pub"
      SIZE file-not-readable.txt
      213 41
      CWD qxmlquery
      250 Directory successfully changed.
      CWD /qtest
      250 Directory successfully changed.
      SIZE bigfile
      213 519240
      SIZE rfc3252
      213 25962
      SIZE rfc3252.txt
      213 25962
      QUIT
      221 Goodbye.
      

      However for some unknown reason the "221 Goodbye" packet is lost most of the time, and instead connection reset is received without data. When the test case fails, the network debug output is as follows:

      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() 32 Expecting "221" 
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocket::bytesAvailable() == 0
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocket::waitForReadyRead(4000)
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocketPrivate::canReadNotification()
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocketPrivate::readFromSocket() about to read 4096 bytes
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() WSA error : WSAECONNRESET
      QSYSTEM: tst_NetworkSelfTest::ftpProxyServer() more details (An existing connection was forcibly closed by the remote host.)
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QNativeSocketEnginePrivate::nativeRead(0x113ef98 "", 4096) == 0
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QNativeSocketEnginePrivate::nativeClose()
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocketPrivate::readFromSocket() got -1 bytes, buffer size = 0
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocketPrivate::readFromSocket() read failed: The remote host closed the connection
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocketPrivate::resetSocketLayer()
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocketPrivate::canReadNotification() disconnecting socket
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocket::disconnectFromHost()
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocket::disconnectFromHost() emits stateChanged()(ClosingState)
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocket::disconnectFromHost() disconnecting immediately
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocketPrivate::resetSocketLayer()
      QDEBUG : tst_NetworkSelfTest::ftpProxyServer() QAbstractSocket::disconnectFromHost() disconnected!
      FAIL!  : tst_NetworkSelfTest::ftpProxyServer() Failed to receive data in step 32: timeout
      tst_networkselftest.cpp(231) : failure location
      

      The complete debug output from testrun attached

      Attachments

        For Gerrit Dashboard: QTBUG-27571
        # Subject Branch Project Status CR V

        Activity

          People

            shkearns Shane Kearns
            e0101981 Janne Anttila
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes