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

Compilation Units are not completely released on engine destruction

XMLWordPrintable

    • 76ce5e479 (dev), f8cdbfc3a (6.8), 1faa47150 (6.8.0), 0abdcda8f (dev), 7f58f05a4 (dev), 5893b9851 (dev), b248d2818 (dev), 336f86daa (dev)

      The log seen in QTBUG-129052 proves that some compilation units sometimes survive the engine destruction performed as part of the test cleanup by the QtQuickTest. This shouldn't happen. When the (last) engine is gone, nothing should be able to hold on to any of its CUs anymore. The difficulty is in finding a reliable reproducer.

      In particular, the AOT-compiled C++ code holds on to dynamic QMetaTypeInterface pointers from other compilation units that do get released. This is because we generate static variables of QMetaType into the C++ code. This leads to heap-use-after-free when the CU (or even only the AOT-compiled code) is re-used.

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

            ulherman Ulf Hermann
            ulherman Ulf Hermann
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: