Uploaded image for project: 'Qt Quality Assurance Infrastructure'
  1. Qt Quality Assurance Infrastructure
  2. QTQAINFRA-6185

Flaky checksum verification in Windows

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P3: Somewhat important
    • None
    • dev
    • None
    • Windows

    Description

      During working on adding Windows 11 23h2 to the CI, the almost identical provision has failed two times to non-matching SHAs with the same file that has been downloaded from cache (ci-files).

      1st fail:

      https://coin.ci.qt.io/coin/integration/qt/qt5/tasks/web_rescheduled_qt_qt5_1708759828162

      Running C:\Users\qt\AppData\Local\Temp\provisioning-1418357365\coin\provisioning\qtci-windows-11_22H2-x86_64\08-libclang.ps1
      Downloading from cached location (http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_15.0.0-based-windows-mingw_64.7z) to c:\users\qt\downloads\libclang.7z
      Verifying checksum of c:\users\qt\downloads\libclang.7z
      Caught System.Management.Automation.RuntimeException
      Checksum verification failed, got: 'F790554769E9DB0896946E05AC9ED642A6776DCD' expected: '6c9300051533d5648ffe3e8ae1eb00decae8e6bf' 

      I rescheduled the run and the provision passed. I later made a small unrelated change which rebuilt the provision and failed again to the SHA mismatch: 

      2nd fail:

      https://testresults.qt.io/coin/integration/qt/qt5/tasks/web_qt_qt5_1709243970960

      Running C:\Users\qt\AppData\Local\Temp\provisioning-3251284727\coin\provisioning\qtci-windows-11_22H2-x86_64\08-libclang.ps1
      Downloading from cached location (http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_15.0.0-based-windows-mingw_64.7z) to c:\users\qt\downloads\libclang.7z
      Verifying checksum of c:\users\qt\downloads\libclang.7z
      Caught System.Management.Automation.RuntimeException
      Checksum verification failed, got: 'F8AC4223086D541DEDCEFC6AC7E5B5FFD6F53D80' expected: '6c9300051533d5648ffe3e8ae1eb00decae8e6bf' 

      The SHAs differ with the failed checksums. This makes me think that Windows runs the verification script on an incomplete libclang.7z file that has not yet finished downloading / writing the complete file on disk.

      The most simple fix is to retry the verification if the SHA doesn't match (2-3 attempts). This may give more room for VM to finalize the file and get the correct checksum consistently.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTQAINFRA-6185
          # Subject Branch Project Status CR V

          Activity

            People

              eltoivol Elias Toivola
              eltoivol Elias Toivola
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There is 1 open Gerrit change