Skip to content

[Linux] Engine renders a mismatched framebuffer after "Timed out waiting for OpenGL frame", causing SIGSEGV in the GL driver #190059

Closed

Description

@werner-scholtz

Steps to reproduce

When the Linux embedder gives up waiting for a framebuffer matching the window's current size, it logs a warning and then renders with the wrong-sized framebuffer anyway. The driver's copy reads past the end of the allocation and the process dies with SIGSEGV.

This reproduces with the minimal sample in the Code sample field below, and also with dev/benchmarks/complex_layout from this repository with no changes to its application code.

1. Build the sample

flutter create bug
# replace lib/main.dart with the Code sample below
cd bug
flutter build linux --debug

2. Run it with software rendering

cd build/linux/x64/debug/bundle
LP_NUM_THREADS=1 LIBGL_ALWAYS_SOFTWARE=1 GALLIUM_DRIVER=llvmpipe \
__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.json \
__GLX_VENDOR_LIBRARY_NAME=mesa GDK_BACKEND=x11 \
taskset -c 0 ./bug

3. Drag the window outward in steps.

Frames are delivered normally until the window is large enough that rasterising one exceeds the deadline (around 2600x1500 on the machine in the Flutter Doctor output below). After that, any further resize step triggers the crash.

About the environment variables

They make an ordinary machine behave like one that has fallen back to software rendering. LP_NUM_THREADS=1 and taskset -c 0 starve llvmpipe so it cannot meet the frame deadline. On a machine already using llvmpipe none of this is needed, and an ordinary application triggers the crash during a normal resize. That is how this was originally found.

The relevant cost is per-frame rasterisation versus how fast the window grows. An unmodified flutter create counter app does not reproduce this even when starved, because its frames are cheap enough to keep up. The sample below uses stacked blurs purely to make each frame expensive.

Expected results

The late frame is dropped, or the present is skipped until a correctly sized framebuffer is available. A missed frame deadline should not become a memory error.

Actual results

The engine logs the mismatch and then renders with the wrong-sized framebuffer, and the process segfaults inside the GL driver.

** (com.example.complex_layout:565782): WARNING **: 09:12:03.249:
   Timed out waiting for OpenGL frame of size 6248x3410 (have 2560x1440)

Thread 1 "complex_layout" received signal SIGSEGV, Segmentation fault.
__memcpy_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:461

#0  __memcpy_avx_unaligned_erms ()
#1  0x00007fffe1858de6 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#2  0x00007fffe1ab1ce4 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#3  0x00007fffe214c908 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#4  0x00007fffe1407920 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#5  0x00007fffe1409019 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#6  0x00007fffe13dd4b6 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#7  0x00007fffe13df911 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#8  0x00007ffff717353b in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff71974d4 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff50a0601 in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007ffff5369ada in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007ffff499ecc9 in ??? () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0

At the moment the main thread faults, the raster thread is still building the new buffer:

Thread 29 "io.flutter.rast":
#0  __memset_avx2_unaligned_erms ()
#1  0x00007fffe1ba907e in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#2  0x00007fffe1ba93f4 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#3  0x00007fffe13c7689 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so

So the main thread is not merely presenting a stale frame, it is presenting one the raster thread has not finished writing.

The original production report

This was first seen in an unmodified production application that resizes its window once during startup, on a machine that renders with llvmpipe by default. None of the starving flags above were involved, and the window sizes are ordinary:

** (com.kdab.app:632503): WARNING **: 07:07:27.905: Timed out waiting for OpenGL frame of size 1700x1408 (have 1280x720)
[1]    632503 segmentation fault (core dumped)  ./app-latest.AppImage

Removing the startup resize from the application stopped the crash entirely on that machine. The same binary, same distribution and same Mesa version, differing only in whether the window is resized during startup. That isolates the resize as the trigger rather than something incidental to it.

Analysis

In engine/src/flutter/shell/platform/linux/fl_view_renderer_opengl.cc, wait_for_frame emits the warning and then breaks out of its wait loop:

if (g_get_monotonic_time() > expiry_time) {
  g_warning("Timed out waiting for OpenGL frame of size %zdx%zd (have %zdx%zd)",
            width, height, frame_width, frame_height);
  break;
}

fl_view_renderer_opengl_draw then proceeds to fl_compositor_opengl_render with a framebuffer whose dimensions do not match the window.

The mismatch does not need to be large. Four separate runs, all fatal:

Framebuffer available Window requested Overshoot
2560x1440 6248x3410 5.8x
2864x1690 3290x2072 1.41x
2960x1706 3208x1894 1.20x
2624x1508 2638x1528 1.02x

Any mismatch appears to be sufficient to cause the crash.

The absolute window size at which this begins is a property of the machine and the application rather than of the bug. It is whatever size makes a frame too expensive to deliver before the deadline. A slower renderer or a more expensive frame will miss it at correspondingly smaller window sizes.

Code sample

Code sample
import 'dart:ui';

import 'package:flutter/material.dart';

void main() => runApp(const ReproApp());

/// Draws several stacked full-screen blurs. Blur cost scales with pixel count,
/// so enlarging the window makes each frame dramatically more expensive and the
/// raster thread falls behind the resize.
class ReproApp extends StatelessWidget {
  const ReproApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Stack(
          children: [
            const DecoratedBox(
              decoration: BoxDecoration(
                gradient: LinearGradient(
                  begin: Alignment.topLeft,
                  end: Alignment.bottomRight,
                  colors: [Colors.red, Colors.green, Colors.blue],
                ),
              ),
              child: SizedBox.expand(),
            ),
            for (var i = 0; i < 8; i++)
              BackdropFilter(
                filter: ImageFilter.blur(sigmaX: 16, sigmaY: 16),
                child: const SizedBox.expand(),
              ),
            const Center(
              child: Text('resize me', style: TextStyle(fontSize: 48)),
            ),
          ],
        ),
      ),
    );
  }
}

The blurs exist only to make each frame expensive enough that the raster thread misses the deadline. They are not otherwise related to the bug: dev/benchmarks/complex_layout reproduces it identically with no code changes at all.

Logs

Full backtrace, all threads, from the complex_layout run above (gdb -batch -ex run -ex "thread apply all bt").

29 threads, full gdb output

Thread 48 (Thread 0x7fff6f67f6c0 (LWP 565913) "DartWorker"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93825163281796, a2=<optimized out>, a3=a3@entry=6, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=32767, futex_word=0x55555f874584, expected=6, op=32374, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x55555f874584, expected=6, clockid=0, abstime=0x0, private=32767, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55555f874584, expected=expected@entry=1, clockid=clockid@entry=1, abstime=abstime@entry=0x7fff6f67e330, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a3662 in __pthread_cond_wait_common (cond=0x55555f874560, mutex=0x555555759338, clockid=<optimized out>, abstime=0x7fff6f67e330) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_timedwait64 (cond=0x55555f874560, mutex=0x555555759338, abstime=0x7fff6f67e330) at ./nptl/pthread_cond_wait.c:478
#7  0x00007ffff7ac3112 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#8  0x00007ffff7c44db6 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff7c44f15 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff7beba66 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#11 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#12 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 44 (Thread 0x7fffd27f96c0 (LWP 565905) "blocking-6"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff3a861bb in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#2  0x00007ffff3970d31 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#3  0x00007ffff3971a68 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#4  0x00007ffff3a8de64 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#5  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#6  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 43 (Thread 0x7fffd2bfb6c0 (LWP 565864) "DartWorker"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93824993831872, a2=<optimized out>, a3=a3@entry=4157033688, a4=a4@entry=140737353362968, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5555556dabc0, expected=4157033688, op=8388233, abstime=0x7ffff7f42e18, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x5555556dabc0, expected=4157033688, clockid=32767, abstime=0x7ffff7f42e18, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5555556dabc0, expected=expected@entry=50, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffd2bfa330, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a3662 in __pthread_cond_wait_common (cond=0x5555556daba0, mutex=0x555555759338, clockid=<optimized out>, abstime=0x7fffd2bfa330) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_timedwait64 (cond=0x5555556daba0, mutex=0x555555759338, abstime=0x7fffd2bfa330) at ./nptl/pthread_cond_wait.c:478
#7  0x00007ffff7ac3112 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#8  0x00007ffff7c44db6 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff7c44f15 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff7beba66 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#11 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#12 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 42 (Thread 0x7fff5bfff6c0 (LWP 565845) "pool-1"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff489ec0b in g_cond_wait_until () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff4838f2d in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff483909d in g_async_queue_timeout_pop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff48a835f in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff48a7279 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#7  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 41 (Thread 0x7fff6cbf96c0 (LWP 565844) "pool-0"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff489ec0b in g_cond_wait_until () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff4838f2d in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff483909d in g_async_queue_timeout_pop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff48a835f in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff48a7279 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#7  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 40 (Thread 0x7fff6ef7f6c0 (LWP 565842) "DartWorker"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93825159219172, a2=<optimized out>, a3=a3@entry=1994914816, a4=a4@entry=140734429134848, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x55555f4947e4, expected=1994914816, op=5592201, abstime=0x7fff49a80000, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x55555f4947e4, expected=1994914816, clockid=21845, abstime=0x7fff49a80000, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55555f4947e4, expected=expected@entry=67, clockid=clockid@entry=1, abstime=abstime@entry=0x7fff6ef7e330, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a3662 in __pthread_cond_wait_common (cond=0x55555f4947c0, mutex=0x555555759338, clockid=<optimized out>, abstime=0x7fff6ef7e330) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_timedwait64 (cond=0x55555f4947c0, mutex=0x555555759338, abstime=0x7fff6ef7e330) at ./nptl/pthread_cond_wait.c:478
#7  0x00007ffff7ac3112 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#8  0x00007ffff7c44db6 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff7c44f15 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff7beba66 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#11 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#12 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 37 (Thread 0x7fff91f7f6c0 (LWP 565839) "DartWorker"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=140735341053408, a2=<optimized out>, a3=a3@entry=1431715136, a4=a4@entry=140737313192963, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=32767, futex_word=0x7fff8002c5e0, expected=1431715136, op=8356214, abstime=0x7ffff58f3c03, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x7fff8002c5e0, expected=1431715136, clockid=32767, abstime=0x7ffff58f3c03, private=32767, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fff8002c5e0, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fff91f7e2e0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a3662 in __pthread_cond_wait_common (cond=0x7fff8002c5c0, mutex=0x7fff80004ad8, clockid=<optimized out>, abstime=0x7fff91f7e2e0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_timedwait64 (cond=0x7fff8002c5c0, mutex=0x7fff80004ad8, abstime=0x7fff91f7e2e0) at ./nptl/pthread_cond_wait.c:478
#7  0x00007ffff7ac3112 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#8  0x00007ffff7b28074 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff7c44bf1 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff7c44f15 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#11 0x00007ffff7beba66 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#12 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#13 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 35 (Thread 0x7fff985e06c0 (LWP 565837) "dart:io EventHa"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a067c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=0, a6=0, nr=232) at ./nptl/cancellation.c:49
#2  __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=0, nr=232) at ./nptl/cancellation.c:75
#3  0x00007ffff4137a95 in epoll_wait (epfd=<optimized out>, events=<optimized out>, maxevents=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#4  0x00007ffff7a71e78 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#5  0x00007ffff7a91690 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#6  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#7  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 34 (Thread 0x7fff937fe6c0 (LWP 565836) "io.worker.4"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93825122032496, a2=<optimized out>, a3=a3@entry=4102675905, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x55555d11db70, expected=4102675905, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x55555d11db70, expected=4102675905, clockid=0, abstime=0x0, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55555d11db70, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a33a7 in __pthread_cond_wait_common (cond=<optimized out>, mutex=0x55555d11db28, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x55555d11db28) at ./nptl/pthread_cond_wait.c:453
#7  0x00007ffff713d25f in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#8  0x00007ffff719a1ae in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff719a89a in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#11 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 33 (Thread 0x7fff93fff6c0 (LWP 565835) "io.worker.3"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93825122032496, a2=<optimized out>, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x55555d11db70, expected=0, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x55555d11db70, expected=0, clockid=0, abstime=0x0, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55555d11db70, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a33a7 in __pthread_cond_wait_common (cond=<optimized out>, mutex=0x55555d11db28, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x55555d11db28) at ./nptl/pthread_cond_wait.c:453
#7  0x00007ffff713d25f in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#8  0x00007ffff719a1ae in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff719a89a in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#11 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 32 (Thread 0x7fff98de16c0 (LWP 565834) "io.worker.2"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93825122032496, a2=<optimized out>, a3=a3@entry=1879051184, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x55555d11db70, expected=1879051184, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x55555d11db70, expected=1879051184, clockid=0, abstime=0x0, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55555d11db70, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a33a7 in __pthread_cond_wait_common (cond=<optimized out>, mutex=0x55555d11db28, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x55555d11db28) at ./nptl/pthread_cond_wait.c:453
#7  0x00007ffff713d25f in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#8  0x00007ffff719a1ae in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff719a89a in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#11 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 31 (Thread 0x7fff995e26c0 (LWP 565833) "io.worker.1"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93825122032496, a2=<optimized out>, a3=a3@entry=4102675905, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x55555d11db70, expected=4102675905, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x55555d11db70, expected=4102675905, clockid=0, abstime=0x0, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55555d11db70, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a33a7 in __pthread_cond_wait_common (cond=<optimized out>, mutex=0x55555d11db28, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x55555d11db28) at ./nptl/pthread_cond_wait.c:453
#7  0x00007ffff713d25f in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#8  0x00007ffff719a1ae in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff719a89a in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#11 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 30 (Thread 0x7fffd21f66c0 (LWP 565832) "io.flutter.io"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a067c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=0, a6=0, nr=232) at ./nptl/cancellation.c:49
#2  __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=0, nr=232) at ./nptl/cancellation.c:75
#3  0x00007ffff4137a95 in epoll_wait (epfd=<optimized out>, events=<optimized out>, maxevents=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#4  0x00007ffff71a5a05 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#5  0x00007ffff719de33 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#6  0x00007ffff71a4361 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#7  0x00007ffff71a4013 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#8  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#9  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 29 (Thread 0x7fffd1ff56c0 (LWP 565831) "io.flutter.rast"):
#0  __memset_avx2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S:293
#1  0x00007fffe1ba907e in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#2  0x00007fffe1ba93f4 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#3  0x00007fffe13c7689 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#4  0x00007fffe13b2a02 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#5  0x00007fffe13b2ee6 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#6  0x00007ffff71798a5 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#7  0x00007ffff7175ecd in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#8  0x00007ffff7229f6a in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff723a368 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff7238984 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#11 0x00007ffff79f4cee in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#12 0x00007ffff79f44b2 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#13 0x00007ffff79f27bf in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#14 0x00007ffff79f3772 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#15 0x00007ffff79f68d7 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#16 0x00007ffff79f2f2c in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#17 0x00007ffff79f2afb in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#18 0x00007ffff7a0fda8 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#19 0x00007ffff719df75 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#20 0x00007ffff71a5a3a in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#21 0x00007ffff719de33 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#22 0x00007ffff71a4361 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#23 0x00007ffff71a4013 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#24 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#25 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 28 (Thread 0x7fffd09ff6c0 (LWP 565830) "complex:disk$0"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93825089766672, a2=<optimized out>, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x55555b258510, expected=0, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x55555b258510, expected=0, clockid=0, abstime=0x0, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55555b258510, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a33a7 in __pthread_cond_wait_common (cond=<optimized out>, mutex=0x55555b2584c0, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x55555b2584c0) at ./nptl/pthread_cond_wait.c:453
#7  0x00007fffe189dedd in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#8  0x00007fffe18538dc in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#9  0x00007fffe189de1c in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#10 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#11 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 27 (Thread 0x7fffd145d6c0 (LWP 565829) "complex_layout"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93824993659368, a2=<optimized out>, a3=a3@entry=3511011437, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5555556b09e8, expected=3511011437, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x5555556b09e8, expected=3511011437, clockid=0, abstime=0x0, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5555556b09e8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a33a7 in __pthread_cond_wait_common (cond=<optimized out>, mutex=0x5555556b09a0, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x5555556b09a0) at ./nptl/pthread_cond_wait.c:453
#7  0x00007fffe189dedd in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#8  0x00007fffe1baad8c in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#9  0x00007fffe189de1c in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#10 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#11 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 26 (Thread 0x7fffd1c5e6c0 (LWP 565828) "llvmpipe-0"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93825089775348, a2=<optimized out>, a3=a3@entry=273, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x55555b25a6f4, expected=273, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x55555b25a6f4, expected=273, clockid=0, abstime=0x0, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55555b25a6f4, expected=expected@entry=21, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a33a7 in __pthread_cond_wait_common (cond=<optimized out>, mutex=0x55555b25a6a8, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x55555b25a6a8) at ./nptl/pthread_cond_wait.c:453
#7  0x00007fffe189dedd in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#8  0x00007fffe1baf45f in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#9  0x00007fffe189de1c in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#10 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#11 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 16 (Thread 0x7fffd23f76c0 (LWP 565803) "gly-hdl-loader"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a067c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=0, a6=0, nr=61) at ./nptl/cancellation.c:49
#2  __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=0, nr=61) at ./nptl/cancellation.c:75
#3  0x00007ffff411cdcf in __GI___wait4 (pid=<optimized out>, stat_loc=<optimized out>, options=<optimized out>, usage=<optimized out>) at ../sysdeps/unix/sysv/linux/wait4.c:30
#4  0x00007ffff3a8e0db in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#5  0x00007ffff3891db7 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#6  0x00007ffff389a56f in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#7  0x00007ffff3a8de64 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#8  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#9  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 10 (Thread 0x7fffd2ffd6c0 (LWP 565794) "async-io"):
#0  0x00007ffff39618e3 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#1  0x00007ffff3960fa2 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#2  0x00007ffff3960dec in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#3  0x00007ffff3a8de64 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#4  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#5  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 9 (Thread 0x7fffd83806c0 (LWP 565793) "gly-global-exec"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff3a862a5 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#2  0x00007ffff3a0b61b in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#3  0x00007ffff395a420 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#4  0x00007ffff3958989 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#5  0x00007ffff3958891 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#6  0x00007ffff3a8de64 in ??? () at /usr/lib/x86_64-linux-gnu/libglycin-2.so.0
#7  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#8  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 8 (Thread 0x7fffd37fe6c0 (LWP 565791) "complex:disk$0"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93824994918448, a2=<optimized out>, a3=a3@entry=4096, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5555557e4030, expected=4096, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x5555557e4030, expected=4096, clockid=0, abstime=0x0, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5555557e4030, expected=expected@entry=12, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a33a7 in __pthread_cond_wait_common (cond=<optimized out>, mutex=0x5555557e3fe0, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x5555557e3fe0) at ./nptl/pthread_cond_wait.c:453
#7  0x00007fffe189dedd in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#8  0x00007fffe18538dc in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#9  0x00007fffe189de1c in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#10 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#11 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 7 (Thread 0x7fffd3fff6c0 (LWP 565790) "complex_layout"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93824993388456, a2=<optimized out>, a3=a3@entry=3556763757, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x55555566e7a8, expected=3556763757, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x55555566e7a8, expected=3556763757, clockid=0, abstime=0x0, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55555566e7a8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a33a7 in __pthread_cond_wait_common (cond=<optimized out>, mutex=0x55555566e760, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x55555566e760) at ./nptl/pthread_cond_wait.c:453
#7  0x00007fffe189dedd in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#8  0x00007fffe1baad8c in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#9  0x00007fffe189de1c in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#10 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#11 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 6 (Thread 0x7fffd8bff6c0 (LWP 565789) "llvmpipe-0"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a05ec in __internal_syscall_cancel (a1=a1@entry=93824994842852, a2=<optimized out>, a3=a3@entry=4293787648, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007ffff40a09c7 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5555557d18e4, expected=4293787648, op=393, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x5555557d18e4, expected=4293787648, clockid=0, abstime=0x0, private=0, cancel=true) at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5555557d18e4, expected=expected@entry=3, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x00007ffff40a33a7 in __pthread_cond_wait_common (cond=<optimized out>, mutex=0x5555557d1898, clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x5555557d1898) at ./nptl/pthread_cond_wait.c:453
#7  0x00007fffe189dedd in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#8  0x00007fffe1baf45f in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#9  0x00007fffe189de1c in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#10 0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#11 0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 5 (Thread 0x7ffff13ff6c0 (LWP 565788) "[pango] fontcon"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff489deab in g_cond_wait () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff4838f6c in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff4838fdc in g_async_queue_pop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff46b1dcb in ??? () at /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
#5  0x00007ffff48a7279 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#7  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 4 (Thread 0x7ffff231c6c0 (LWP 565787) "gdbus"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a067c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=8, a6=0, nr=271) at ./nptl/cancellation.c:49
#2  __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at ./nptl/cancellation.c:75
#3  0x00007ffff4128376 in __GI_ppoll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>, sigmask=<optimized out>) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#4  0x00007ffff48722f1 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff4872577 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007ffff4af1012 in ??? () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#7  0x00007ffff48a7279 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#9  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 3 (Thread 0x7ffff2b1d6c0 (LWP 565786) "gmain"):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff40a067c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=8, a6=0, nr=271) at ./nptl/cancellation.c:49
#2  __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at ./nptl/cancellation.c:75
#3  0x00007ffff4128376 in __GI_ppoll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>, sigmask=<optimized out>) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#4  0x00007ffff48722f1 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff48723c3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007ffff4872411 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007ffff48a7279 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#9  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 2 (Thread 0x7ffff331e6c0 (LWP 565785) "pool-spawner"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff489deab in g_cond_wait () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff4838f6c in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff48a7714 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff48a7279 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff40a40da in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:454
#6  0x00007ffff41377ac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 1 (Thread 0x7ffff3321d40 (LWP 565782) "complex_layout"):
#0  __memcpy_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:461
#1  0x00007fffe1858de6 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#2  0x00007fffe1ab1ce4 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#3  0x00007fffe214c908 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#4  0x00007fffe1407920 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#5  0x00007fffe1409019 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#6  0x00007fffe13dd4b6 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#7  0x00007fffe13df911 in ??? () at /usr/lib/x86_64-linux-gnu/libgallium-26.0.3-1ubuntu1.so
#8  0x00007ffff717353b in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#9  0x00007ffff71974d4 in ??? () at .../bundle/lib/libflutter_linux_gtk.so
#10 0x00007ffff50a0601 in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007ffff5369ada in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007ffff499ecc9 in ??? () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff499edc8 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff499ee83 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff5379cd9 in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#16 0x00007ffff512c39f in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#17 0x00007ffff512c4bc in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#18 0x00007ffff518d9b3 in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007ffff5379bbb in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007ffff512c39f in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007ffff512c4bc in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#22 0x00007ffff50cc101 in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#23 0x00007ffff512cbd5 in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x00007ffff5137542 in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00007ffff50cc6d5 in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#26 0x00007ffff5379bbb in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#27 0x00007ffff512c39f in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#28 0x00007ffff512c4bc in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#29 0x00007ffff5379bbb in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#30 0x00007ffff5387f90 in ??? () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#31 0x00007ffff52157c3 in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#32 0x00007ffff4f33db7 in ??? () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#33 0x00007ffff4f45ede in ??? () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#34 0x00007ffff4f4b854 in ??? () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#35 0x00007ffff4f4ba71 in ??? () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#36 0x00007ffff499ecc9 in ??? () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#37 0x00007ffff499edc8 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#38 0x00007ffff499ee83 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#39 0x00007ffff4f41828 in ??? () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#40 0x00007ffff4f2d69f in ??? () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#41 0x00007ffff48729f1 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007ffff4870b9b in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007ffff48721d7 in ??? () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007ffff48723c3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x00007ffff4ab7acd in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#46 0x00005555555564ae in main (argc=1, argv=0x7fffffffcff8) at /tmp/complex_layout/linux/runner/main.cc:5

Flutter Doctor output

flutter doctor -v
[✓] Flutter (Channel stable, 3.44.1, on Ubuntu 26.04 LTS 7.0.0-28-generic, locale en_ZA.UTF-8)
    • Flutter version 3.44.1 on channel stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 924134a44c (8 weeks ago), 2026-05-29 12:13:22 -0400
    • Engine revision c416acfeb8
    • Dart version 3.12.1
    • DevTools version 2.57.0

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 21.1.8 (6ubuntu1)
    • cmake version 4.2.3
    • ninja version 1.13.2
    • pkg-config version 2.5.1
    • OpenGL core renderer: NVIDIA GeForce RTX 5070 Ti/PCIe/SSE2
    • OpenGL core version: 4.6.0 NVIDIA 595.84
    • OpenGL core shading language version: 4.60 NVIDIA
    • OpenGL ES renderer: NVIDIA GeForce RTX 5070 Ti/PCIe/SSE2
    • OpenGL ES version: OpenGL ES 3.2 NVIDIA 595.84
    • OpenGL ES shading language version: OpenGL ES GLSL ES 3.20
    • GL_EXT_framebuffer_blit: yes
    • GL_EXT_texture_format_BGRA8888: yes

[✓] Connected device (2 available)
    • Linux (desktop) • linux • linux-x64 • Ubuntu 26.04 LTS 7.0.0-28-generic

Additional environment detail:

  • Ubuntu 26.04, GTK 3.24.52, glibc 2.43, Mesa 26.0.3
  • Reproduced under XWayland (GDK_BACKEND=x11 on a Wayland session). The original production report is from a native X11 session.

Note that flutter doctor reports an NVIDIA renderer, because that is the default on this machine. The reproduction deliberately forces Mesa and llvmpipe via the environment variables in the run command. The crash does not occur on the NVIDIA driver, which meets the frame deadline.

Activity

  1. werner-scholtz commented on Jul 27, 2026

    @werner-scholtz
    Author

    Ah this has been fixed already, #187589 but not on stable yet.

  2. github-actions commented on Aug 10, 2026

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  3. locked as resolved and limited conversation to collaborators on Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions