On 2/4/26 10:16 AM, Ben Cooksley wrote:
On Wed, Feb 4, 2026 at 10:05 PM Vlad Zahorodnii <[email protected]> wrote:

    On 2/4/26 10:26 AM, Ben Cooksley wrote:
    On Wed, Feb 4, 2026 at 9:07 PM Ben Cooksley <[email protected]>
    wrote:

        On Wed, Feb 4, 2026 at 8:25 PM Vlad Zahorodnii
        <[email protected]> wrote:

            Hello,


        HI Vlad,


            Over approximately the past weekend something happened in
            our CI and now
            it takes quite long time for tests to run. For example,
            in kwin, we have
            a test that used to run for about 20 seconds, and now it
            takes about 5
            or so minutes to finish running. Speaking for kwin, there
            were no
            changes that could increase test run times so dramatically.

            January 26th:

                     Start  61: kwin-testOutputChanges
              61/158 Test  #61: kwin-testOutputChanges
            .............................   Passed  19.36 sec

            January 29th:

                     Start  61: kwin-testOutputChanges
              61/158 Test  #61: kwin-testOutputChanges
            .............................   Passed  43.93 sec

            January 30th:

                     Start  61: kwin-testOutputChanges
              61/158 Test  #61: kwin-testOutputChanges
            .............................   Passed  45.91 sec

            Februrary 3rd:

                     Start  61: kwin-testOutputChanges
              61/158 Test  #61: kwin-testOutputChanges
            .............................   Passed 254.19 sec

            FreeBSD appears to be fine.

            We suspect that test run times blew up due to enabling
            LSAN in various
            libraries (kwin itself has no LSAN enabled yet). The
            issue doesn't
            appear to be specific to only kwin, people reported that
            they've seen
            similar issues in other projects too. Maybe something
            else happened to
            CI that sysadmins will be able to clarify.


        Nothing else happened to CI recently aside from the
        enablement of LSAN.

        The underlying SUSE images were for Qt 6.10 at least last
        rebuilt on January 25th, which is well before your "last
        good" date.

        The only change to CI between January 30th and February 3rd
        was fast_unwind_on_malloc=0 being added by default, even
        though it is primarily for the benefit of LSAN.
        I've now made changes to only set fast_unwind_on_malloc=0 if
        LSAN is explicitly enabled for a repository - hard to tell if
        that will fix the issue though as KWin takes a while to build.


    For the record, as per
    https://invent.kde.org/plasma/kwin/-/jobs/3958895 which completed
    moments ago:

    That branch contained some other things that could interfere with
    test results. I started
    https://invent.kde.org/plasma/kwin/-/jobs/3959078 and yeah it
    looks like test run times are back to the Jan 29-30th level.

    So, it seems like fast_unwind_on_malloc=0 is the culprit then?


Yes, quoting from https://source.android.com/docs/security/test/asan

[quote]
ASan uses a fast, frame-pointer-based unwinder to record a stack trace for every memory allocation and deallocation event in the program. Most of Android is built without frame pointers. As a result, you often get only one or two meaningful frames. To fix this, either rebuild the library with ASan (recommended!), or with:

LOCAL_CFLAGS:=-fno-omit-frame-pointer
LOCAL_ARM_MODE:=arm

Or set ASAN_OPTIONS=fast_unwind_on_malloc=0 in the process environment. The latter can be very CPU-intensive, depending on the load.
[/quote]

That would align with what we're seeing here

Hi,

thanks for investigating this.

I'm a bit surprised that fast_unwind_on_malloc seems to have an effect when LSAN is disabled. That said, we still should have the problem when LSAN *is* enabled, no?

The reason I added fast_unwind_on_malloc=0 is because otherwise we would sometimes get unusable backtraces from LSAN, so I would not want to lose that.

A possible remedy could be to build Qt with ASAN support. That's one additional flag in the buildsystem invokation. fast_unwind_on_malloc still would make sense to cover system libraries, but maybe it would be okay to do without that.

Cheers

Nico

Reply via email to