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

Image loading over HTTP/2 stops working after a while, only recovers after restart.

    XMLWordPrintable

Details

    • macOS

    Description

      A GridView in QML is used to display a list of items, each with an image loaded from Azure Blob Storage (behind Azure Front Door). Everything works fine at first — the images load and scroll smoothly — but after a while, image loading completely stops. No new images appear, and the only way to recover is by restarting the app. This seems to occur more frequently when scrolling quickly. Cache is not disabled, and asynchronous loading hasn't been changed.

      In the console, errors like the following are consistently seen:

      qt.network.http2: stream XXXX error: “HEADERS on invalid stream”
      qt.network.http2: stream XXXX finished with error: “HTTP/2 protocol error”

      After these errors appear, no further image content is loaded.
      This issue didn't occur in earlier versions of Qt, or at least it wasn't this severe. It is suspected that something may have changed in Qt’s HTTP/2 handling, possibly causing the connection to get into an unrecoverable state.

      Additional context:
      Nothing unusual is done in the delegate — just using a standard Image element with its source bound to a URL.
      The same image URLs load fine in a browser.
      Restarting the app resolves the issue immediately, but only temporarily.
      The images load perfectly fine as long as scrolling isn't done too quickly or for too long in the GridView.
      A C++ QAbstractItemModel is used to load the model.

      The attached example project could help reproducing the issue.

      Attachments

        1. image-loading.zip
          4 kB
          Mehdi Belila
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            manordheim Mårten Nordheim
            mahdi.belila Mehdi Belila
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes