Skip to content

[android] App crash on exit (back button press) when showing animated WEBP image #166410

Closed

Description

@cu-kha

Steps to reproduce

  1. Make app that shows animated WEBP file from local assets
  2. Open app
  3. Press Android device back button. App will crash 1 out of 3 times.

Also sometimes the OS will display a message asking if you want to clear cache for the app because it keeps crashing.

Happens both in debug and release mode.

Expected results

No app crash when exiting.

Actual results

App crashes.

Code sample

Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        appBar: AppBar(title: Text('Demo')),
        body: SizedBox(
          height: 250,
          width: 250,
          child: Image.asset('assets/nyan.webp'),
        ),
      ),
    );
  }
}

The file I used is this one but I managed to reproduce with other animated WEBP files too: https://mathiasbynens.be/demo/animated-webp-supported.webp

To reproduce bug download it and place it in assets directory.
Using Image.network does not seem to trigger the bug.

Screenshots or Video

Screenshots / Video demonstration

[Upload media here]

Logs

Logs
I/ViewRootImpl@1e6a54e[MainActivity](13256): ViewPostIme key 0
D/Activity(13256): onKeyDown(KEYCODE_BACK)
I/ViewRootImpl@1e6a54e[MainActivity](13256): ViewPostIme key 1
D/Activity(13256): onKeyUp(KEYCODE_BACK) isTracking()=true isCanceled()=false hasCallback=false
I/ViewRootImpl@1e6a54e[MainActivity](13256): handleWindowFocusChanged: 0 0 call from android.view.ViewRootImpl.-$$Nest$mhandleWindowFocusChanged:0
I/ImeFocusController(13256): onPreWindowFocus: skipped, hasWindowFocus=false mHasImeFocus=true
I/ImeFocusController(13256): onPostWindowFocus: skipped, hasWindowFocus=false mHasImeFocus=true
D/InputTransport(13256): Input channel destroyed: 'ClientS', fd=148
I/ViewRootImpl@1e6a54e[MainActivity](13256): handleAppVisibility mAppVisible = true visible = false
I/ViewRootImpl@1e6a54e[MainActivity](13256): stopped(true) old = false
D/ViewRootImpl@1e6a54e[MainActivity](13256): WindowStopped on com.example.appexitbug/com.example.appexitbug.MainActivity set to true
D/OpenGLRenderer(13256): CacheManager::trimMemory(20)
D/SurfaceView(13256): 166526462 windowPositionLost, frameNr = 0
I/SurfaceView@fb6d811(13256): aOrMT: ViewRootImpl@1e6a54e[MainActivity] t = android.view.SurfaceControl$Transaction@fbfb95f fN = 0 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionLost:1697 android.graphics.RenderNode$CompositePositionUpdateListener.positionLost:376
I/ViewRootImpl@1e6a54e[MainActivity](13256): mWNT: t=0xb40000738593e990 mBlastBufferQueue=0xb4000073e5957110 fn= 0 mRenderHdrSdrRatio=1.0 caller= android.view.SurfaceView.applyOrMergeTransaction:1599 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionLost:1697
I/SurfaceView@fb6d811(13256): windowStopped(true) false io.flutter.embedding.android.FlutterSurfaceView{fb6d811 V.E...... ........ 0,0-1080,2196} of ViewRootImpl@1e6a54e[MainActivity]
I/SurfaceView(13256): 263641105 Changes: creating=false format=false size=false visible=true alpha=false hint=false visible=true left=false top=false z=false attached=true lifecycleStrategy=false
I/SurfaceView@fb6d811(13256): 263641105 Cur surface: Surface(name=null)/@0x6ab6768
I/SurfaceView(13256): 263641105 surfaceDestroyed
I/SurfaceView@fb6d811(13256): surfaceDestroyed callback.size 1 #1 io.flutter.embedding.android.FlutterSurfaceView{fb6d811 V.E...... ........ 0,0-1080,2196}
I/SurfaceView@fb6d811(13256): updateSurface: mVisible = false mSurface.isValid() = true
I/SurfaceView@fb6d811(13256): releaseSurfaces: viewRoot = ViewRootImpl@1e6a54e[MainActivity]
V/SurfaceView@fb6d811(13256): Layout: x=0 y=0 w=1080 h=2196, frame=Rect(0, 0 - 1080, 2196)
D/SurfaceView@fb6d811(13256): updateSurface: surface is not valid
I/SurfaceView@fb6d811(13256): releaseSurfaces: viewRoot = ViewRootImpl@1e6a54e[MainActivity]
D/SurfaceView@fb6d811(13256): 263641105 setAlpha: alpha=0.0
D/SurfaceView@fb6d811(13256): updateSurface: surface is not valid
I/SurfaceView@fb6d811(13256): releaseSurfaces: viewRoot = ViewRootImpl@1e6a54e[MainActivity]
W/WindowOnBackDispatcher(13256): sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda19@2bea8b
I/SurfaceView@fb6d811(13256): onWindowVisibilityChanged(8) false io.flutter.embedding.android.FlutterSurfaceView{fb6d811 G.E...... ......I. 0,0-1080,2196} of ViewRootImpl@1e6a54e[MainActivity]
D/SurfaceView@fb6d811(13256): updateSurface: surface is not valid
I/SurfaceView@fb6d811(13256): releaseSurfaces: viewRoot = ViewRootImpl@1e6a54e[MainActivity]
I/SurfaceView(13256): 263641105 Detaching SV
D/SurfaceView@fb6d811(13256): updateSurface: surface is not valid
I/SurfaceView@fb6d811(13256): releaseSurfaces: viewRoot = ViewRootImpl@1e6a54e[MainActivity]
I/SurfaceView@fb6d811(13256): onDetachedFromWindow: tryReleaseSurfaces()
I/SurfaceView@fb6d811(13256): releaseSurfaces: viewRoot = ViewRootImpl@1e6a54e[MainActivity]
D/OpenGLRenderer(13256): CacheManager::trimMemory(20)
I/ViewRootImpl@1e6a54e[MainActivity](13256): dispatchDetachedFromWindow
D/InputTransport(13256): Input channel destroyed: 'a927e9e', fd=121
F/libc    (13256): Fatal signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x43006500630061 in tid 13256 (mple.appexitbug), pid 13256 (mple.appexitbug)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/r0qksx/r0q:14/UP1A.231005.007/S901NKSS7EYB3:user/release-keys'
Revision: '16'
ABI: 'arm64'
Processor: '0'
Timestamp: 2025-04-02 19:22:19.370855039+0900
Process uptime: 28s
Cmdline: com.example.appexitbug
pid: 13256, tid: 13256, name: mple.appexitbug  >>> com.example.appexitbug <<<
uid: 10314
tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x0043006500630061
    x0  002e00640069006f  x1  b400007415adaf90  x2  0000000000000000  x3  00000075614a3794
    x4  0000000000000004  x5  0000000000000004  x6  00000000140297c8  x7  00000000001d8e38
    x8  00000000006e0061  x9  0000007118225566  x10 000000711832929c  x11 000000000000000a
    x12 0000000000005243  x13 000000007fffffff  x14 0000000000000000  x15 000012f0e3a5822e
    x16 0043006500630061  x17 000000758bcfde70  x18 000000758fbec000  x19 0000000000000000
    x20 b400007415adaf90  x21 b4000074859f6430  x22 0000000000000000  x23 00000075614be020
    x24 0000000000000000  x25 b400007325918598  x26 000000758f3e4000  x27 0000000000000002
    x28 0000007fe308ba40  x29 0000007fe308b7a0
    lr  0000007118497554  sp  0000007fe308b760  pc  0043006500630061  pst 0000000080001400
60 total frames
backtrace:
      #00 pc 0000006500630061  <unknown>
      #01 pc 0000000000286550  /vendor/lib64/hw/vulkan.adreno.so (qglinternal::vkDestroyImageView(VkDevice_T*, VkImageView_T*, VkAllocationCallbacks const*)+72) (BuildId: 9658e965533c502845097e16b987d3c8)
      #02 pc 000000000002381c  /system/lib64/libvulkan.so (vulkan::api::(anonymous namespace)::DestroyImageView(VkDevice_T*, VkImageView_T*, VkAllocationCallbacks const*)+136) (BuildId: 9b06a1f4deaf795678bf690c75f1f9af)
      #03 pc 000000000210d1ac  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #04 pc 000000000210d3f8  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #05 pc 000000000210d330  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #06 pc 000000000210d494  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #07 pc 000000000210d1ec  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #08 pc 0000000001cdb62c  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #09 pc 0000000002132a84  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #10 pc 0000000001cdb62c  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #11 pc 00000000020bcfd4  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #12 pc 00000000020bcfec  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #13 pc 000000000216e2c0  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #14 pc 00000000021639e4  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #15 pc 0000000002176890  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #16 pc 0000000002176864  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #17 pc 0000000002177038  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #18 pc 0000000001d07b9c  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #19 pc 0000000001d07b18  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #20 pc 0000000001d07a70  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #21 pc 0000000001d0d610  /data/app/~~YCgszt7Xiqfzt2XF5IWIXg==/com.example.appexitbug-RaSS49V7dgUfl9x5Jlwnxg==/base.apk!libflutter.so (offset 0xf1c000) (BuildId: 231568c2bc519fbb1b96e1ed2e68a8abcdf9ee25)
      #22 pc 0000000000018b70  /system/lib64/libutils.so (android::Looper::pollInner(int)+1252) (BuildId: a0e0ad47138267db6c479fc556e32d00)
      #23 pc 0000000000018628  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+124) (BuildId: a0e0ad47138267db6c479fc556e32d00)
      #24 pc 00000000001904d0  /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+48) (BuildId: 48c986354b8fd6a648640756f15e7db5)
      #25 pc 000000000233473c  /memfd:jit-cache (deleted) (offset 0x2000000) (art_jni_trampoline+140)
      #26 pc 000000000206a464  /memfd:jit-cache (deleted) (offset 0x2000000) (android.os.MessageQueue.next+356)
      #27 pc 0000000002069854  /memfd:jit-cache (deleted) (offset 0x2000000) (android.os.Looper.loopOnce+164)
      #28 pc 000000000036d840  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #29 pc 0000000000366af8  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2048) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #30 pc 000000000076e870  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+12208) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #31 pc 00000000003863d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #32 pc 00000000002416d8  /system/framework/framework.jar (android.os.Looper.loop+0)
      #33 pc 0000000000358eec  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238.llvm.17771861963221910393)+428) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #34 pc 0000000000367314  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+4124) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #35 pc 000000000076e870  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+12208) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #36 pc 00000000003863d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #37 pc 00000000001d2f1c  /system/framework/framework.jar (android.app.ActivityThread.main+0)
      #38 pc 0000000000358278  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+1932) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #39 pc 0000000000383e98  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #40 pc 000000000036d840  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #41 pc 0000000000369190  /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+732) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #42 pc 00000000006c9134  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #43 pc 0000000000383d70  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #44 pc 000000000036d574  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #45 pc 0000000000366a80  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+1928) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #46 pc 000000000076e870  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+12208) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #47 pc 00000000003863d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #48 pc 000000000026b8a0  /system/framework/framework.jar (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+0)
      #49 pc 0000000000358278  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+1932) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #50 pc 0000000000383e98  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #51 pc 0000000000cb03e4  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3396)
      #52 pc 000000000036d840  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #53 pc 0000000000358c08  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #54 pc 0000000000356bbc  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+512) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #55 pc 000000000073cefc  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+104) (BuildId: c35c9ebf7bb06435e4b31977d87bd5d5)
      #56 pc 00000000000e4be8  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+108) (BuildId: 48c986354b8fd6a648640756f15e7db5)
      #57 pc 00000000000f15bc  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+856) (BuildId: 48c986354b8fd6a648640756f15e7db5)
      #58 pc 0000000000002558  /system/bin/app_process64 (main+1280) (BuildId: 26457af26875f94d5dfa717e22a87e7c)
      #59 pc 0000000000053e50  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: edc1b601d9f8344c1eccd3d77a458f65)
Lost connection to device.

Exited.

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.29.2, on macOS 15.3.1 24D70 darwin-arm64, locale en-GB) [2.4s]
    • Flutter version 3.29.2 on channel stable at /Users/joey/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c236373904 (3 weeks ago), 2025-03-13 16:17:06 -0400
    • Engine revision 18b71d647a
    • Dart version 3.7.2
    • DevTools version 2.42.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) [2.1s]
    • Android SDK at /Users/joey/Library/Android/sdk
    • Platform android-35, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.2) [1,305ms]
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16C5032a
    • CocoaPods version 1.16.2

[✓] Chrome - develop for the web [11ms]
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.1) [11ms]
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] VS Code (version 1.98.2) [10ms]
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.108.0

[✓] Network resources [845ms]
    • All expected network resources are available.

• No issues found!

Activity

  1. changed the title [-]App crash on exit (back button press) on Android when showing animated WEBP image[/-] [+][android] App crash on exit (back button press) when showing animated WEBP image[/+] on Apr 2, 2025
  2. maheshj01 commented on Apr 3, 2025

    @maheshj01
    Member

    Hey @cu-kha, Thanks for filing the issue. I am able to reproduce the issue on Pixel 7 Android 15 While the app is being closed with back button the app crashes. Reproduces on stable and the master channel.

    Note it may take 3-5 tries, run the app and press back button

    I tried disabling impeller and I was not able to reproduce the crash.

    logs
    (.venv) mahesh@MacBook-Pro-10 sample_app % flutterm run
    Could not load custom device from config index 0: Expected enabled to be a
    boolean.
    Resolving dependencies... 
    Downloading packages... 
    > async 2.13.0 (was 2.12.0)
    > fake_async 1.3.3 (was 1.3.2)
    > leak_tracker 10.0.9 (was 10.0.8)
      material_color_utilities 0.11.1 (0.12.0 available)
    > vm_service 15.0.0 (was 14.3.1)
    > webdriver 3.1.0 (was 3.0.4)
      webview_flutter_wkwebview 3.18.4 (3.18.5 available)
    Changed 5 dependencies!
    2 packages have newer versions incompatible with dependency constraints.
    Try `flutter pub outdated` for more information.
    Launching lib/main.dart on Pixel 7 in debug mode...
    Your project is configured with Android NDK 26.3.11579264, but the following plugin(s) depend on a different Android NDK version:
    - camera_android_camerax requires Android NDK 27.0.12077973
    - flutter_plugin_android_lifecycle requires Android NDK 27.0.12077973
    - image_picker_android requires Android NDK 27.0.12077973
    - local_auth_android requires Android NDK 27.0.12077973
    - video_player_android requires Android NDK 27.0.12077973
    - webview_flutter_android requires Android NDK 27.0.12077973
    Fix this issue by using the highest Android NDK version (they are backward compatible).
    Add the following to /Users/mahesh/Development/Triage/sample_app/android/app/build.gradle.kts:
    
        android {
            ndkVersion = "27.0.12077973"
            ...
        }
    Running Gradle task 'assembleDebug'...                             27.5s
    ✓ Built build/app/outputs/flutter-apk/app-debug.apk
    Installing build/app/outputs/flutter-apk/app-debug.apk...           7.0s
    I/flutter (27584): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
    Syncing files to device Pixel 7...                                  64ms
    
    Flutter run key commands.
    r Hot reload. 🔥🔥🔥
    R Hot restart.
    h List all available interactive commands.
    d Detach (terminate "flutter run" but leave application running).
    c Clear the screen
    q Quit (terminate the application on the device).
    
    A Dart VM Service on Pixel 7 is available at: http://127.0.0.1:63984/WPulS5z5mYo=/
    The Flutter DevTools debugger and profiler on Pixel 7 is available at:
    http://127.0.0.1:9101?uri=http://127.0.0.1:63984/WPulS5z5mYo=/
    I/Choreographer(27584): Skipped 125 frames!  The application may be doing too much work on its main thread.
    D/CompatChangeReporter(27584): Compat change id reported: 306666082; UID 10349; state: ENABLED
    I/WindowExtensionsImpl(27584): Initializing Window Extensions, vendor API level=8, activity embedding enabled=true
    I/mple.sample_app(27584): Compiler allocated 5341KB to compile void android.view.ViewRootImpl.performTraversals()
    D/WindowLayoutComponentImpl(27584): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@ca74ca4, of which baseContext=android.app.ContextImpl@e83a81b
    D/InsetsController(27584): hide(ime(), fromIme=false)
    I/ImeTracker(27584): com.example.sample_app:22d81c3f: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](27584): visibilityChanged oldVisibility=true newVisibility=false
    D/ProfileInstaller(27584): Installing profile for com.example.sample_app
    W/WindowOnBackDispatcher(27584): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@f87016e
    D/ViewRootImpl(27584): Skipping stats log for color mode
    I/flutter (27584): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
    I/ContentCaptureHelper(27584): Setting logging level to OFF
    I/Choreographer(27584): Skipped 47 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(27584): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@40449e1, of which baseContext=android.app.ContextImpl@80fc890
    D/InsetsController(27584): hide(ime(), fromIme=false)
    I/ImeTracker(27584): com.example.sample_app:cf792b45: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](27584): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(27584): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@d4bc760
    D/ViewRootImpl(27584): Skipping stats log for color mode
    I/flutter (27584): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
    I/ContentCaptureHelper(27584): Setting logging level to OFF
    I/Choreographer(27584): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(27584): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@a7e0987, of which baseContext=android.app.ContextImpl@20ed8b
    D/InsetsController(27584): hide(ime(), fromIme=false)
    I/ImeTracker(27584): com.example.sample_app:cd8b84f0: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](27584): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(27584): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@62d579e
    D/ViewRootImpl(27584): Skipping stats log for color mode
    I/flutter (27584): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
    I/ContentCaptureHelper(27584): Setting logging level to OFF
    I/Choreographer(27584): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(27584): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@49b869d, of which baseContext=android.app.ContextImpl@695b841
    D/InsetsController(27584): hide(ime(), fromIme=false)
    I/ImeTracker(27584): com.example.sample_app:94fd94b6: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](27584): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(27584): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@fdceb0c
    D/ViewRootImpl(27584): Skipping stats log for color mode
    I/Choreographer(27584): Skipped 32 frames!  The application may be doing too much work on its main thread.
    I/flutter (27584): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
    I/ContentCaptureHelper(27584): Setting logging level to OFF
    I/Choreographer(27584): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(27584): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@37b86a3, of which baseContext=android.app.ContextImpl@21fe782
    D/InsetsController(27584): hide(ime(), fromIme=false)
    I/ImeTracker(27584): com.example.sample_app:79893815: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](27584): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(27584): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@d7cdd2a
    D/ViewRootImpl(27584): Skipping stats log for color mode
    F/libc    (27584): FORTIFY: pthread_mutex_lock called on a destroyed mutex (0xb4000075aed11bd8)
    F/libc    (27584): Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 27584 (mple.sample_app), pid 27584 (mple.sample_app)
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    Build fingerprint: 'google/panther/panther:15/BP1A.250305.019/13003188:user/release-keys'
    Revision: 'MP1.0'
    ABI: 'arm64'
    Timestamp: 2025-04-02 20:41:53.736951381-0400
    Process uptime: 28s
    Cmdline: com.example.sample_app
    pid: 27584, tid: 27584, name: mple.sample_app  >>> com.example.sample_app <<<
    uid: 10349
    tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
    signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
    Abort message: 'FORTIFY: pthread_mutex_lock called on a destroyed mutex (0xb4000075aed11bd8)'
        x0  0000000000000000  x1  0000000000006bc0  x2  0000000000000006  x3  0000007feb59c7d0
        x4  6b6b60621f6a626e  x5  6b6b60621f6a626e  x6  6b6b60621f6a626e  x7  7f7f7f7f7f7f7f7f
        x8  00000000000000f0  x9  71f9e30f2c6d7288  x10 0000000000000001  x11 000000783decda30
        x12 0000000067edd951  x13 000000007fffffff  x14 00000000015532ca  x15 0000044f25e2cef2
        x16 000000783df37048  x17 000000783df213c0  x18 0000007866974000  x19 0000000000006bc0
        x20 0000000000006bc0  x21 00000000ffffffff  x22 0000000000000000  x23 000000786601ba40
        x24 0000000000000000  x25 000000786601ba40  x26 b4000076cec7b2e8  x27 b4000076cec7b308
        x28 0000000000000001  x29 0000007feb59c850
        lr  000000783deb7518  sp  0000007feb59c7d0  pc  000000783deb753c  pst 0000000000001000
    62 total frames
    backtrace:
          #00 pc 000000000005e53c  /apex/com.android.runtime/lib64/bionic/libc.so (abort+156) (BuildId: f0cc3fe16b52af6fc8d4e5b18105de09)
          #01 pc 0000000000061c3c  /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+124) (BuildId: f0cc3fe16b52af6fc8d4e5b18105de09)
          #02 pc 0000000000070e4c  /apex/com.android.runtime/lib64/bionic/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*, char const*)+60) (BuildId: f0cc3fe16b52af6fc8d4e5b18105de09)
          #03 pc 0000000000070c88  /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+136) (BuildId: f0cc3fe16b52af6fc8d4e5b18105de09)
          #04 pc 00000000008fe80c  /vendor/lib64/egl/libGLES_mali.so (vulkan::device::remove_slot_data(unsigned long)+28) (BuildId: bce38a6ad4d98daa)
          #05 pc 000000000090d120  /vendor/lib64/egl/libGLES_mali.so (vkDestroyImageView+80) (BuildId: bce38a6ad4d98daa)
          #06 pc 00000000021946d8  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #07 pc 0000000002194924  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #08 pc 000000000219485c  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #09 pc 00000000021949c0  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #10 pc 0000000002194718  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #11 pc 0000000001d55498  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #12 pc 00000000021ba9fc  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #13 pc 0000000001d55498  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #14 pc 000000000213f914  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #15 pc 000000000213f92c  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #16 pc 00000000021f7738  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #17 pc 00000000021ec9b8  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #18 pc 00000000021fffbc  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #19 pc 00000000021fff90  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #20 pc 00000000022008a4  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #21 pc 0000000001d84208  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #22 pc 0000000001d84184  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #23 pc 0000000001d840dc  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #24 pc 0000000001d89bec  /data/app/~~FYOY3RXUkakQO-m-eJp0-A==/com.example.sample_app-Zz3YoGrL5GwgX3V0NT7AeA==/lib/arm64/libflutter.so (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #25 pc 0000000000010a08  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+1704) (BuildId: da198daaf3ac5b24502b90e10d2d974f)
          #26 pc 00000000001bce5c  /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: 82375058951c59013a131ae9c5726af8)
          #27 pc 00000000021a52ac  /memfd:jit-cache (deleted) (offset 0x2000000) (art_jni_trampoline+140)
          #28 pc 0000000002079d2c  /memfd:jit-cache (deleted) (offset 0x2000000) (android.os.MessageQueue.next+332)
          #29 pc 0000000002079118  /memfd:jit-cache (deleted) (offset 0x2000000) (android.os.Looper.loopOnce+168)
          #30 pc 0000000000368a40  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #31 pc 0000000000361e5c  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2048) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #32 pc 000000000076f734  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+12208) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #33 pc 00000000003815d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #34 pc 0000000000279bec  /system/framework/framework.jar (android.os.Looper.loop+0)
          #35 pc 0000000000354250  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238.llvm.16344227474899595276)+428) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #36 pc 0000000000362678  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+4124) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #37 pc 000000000076f734  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+12208) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #38 pc 00000000003815d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #39 pc 00000000001f3b60  /system/framework/framework.jar (android.app.ActivityThread.main+0)
          #40 pc 00000000003535dc  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+1932) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #41 pc 000000000037f098  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #42 pc 0000000000368a40  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #43 pc 00000000003644f4  /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+732) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #44 pc 00000000006c8834  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #45 pc 000000000037ef70  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #46 pc 0000000000368774  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #47 pc 0000000000361de4  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+1928) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #48 pc 000000000076f734  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+12208) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #49 pc 00000000003815d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #50 pc 0000000000246af8  /system/framework/framework.jar (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+0)
          #51 pc 00000000003535dc  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+1932) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #52 pc 000000000037f098  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #53 pc 0000000000be3794  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3188)
          #54 pc 0000000000368a40  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #55 pc 0000000000353f6c  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #56 pc 0000000000351f20  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+512) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #57 pc 000000000073d468  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+104) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #58 pc 00000000000f46f8  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+104) (BuildId: 82375058951c59013a131ae9c5726af8)
          #59 pc 0000000000118f4c  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+908) (BuildId: 82375058951c59013a131ae9c5726af8)
          #60 pc 000000000000259c  /system/bin/app_process64 (main+1212) (BuildId: f8a0c359d43b767065e9bb65a2af0c53)
          #61 pc 0000000000057854  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+116) (BuildId: f0cc3fe16b52af6fc8d4e5b18105de09)
    Lost connection to device.
    
    (logs)Impeller disabled
    (.venv) mahesh@MacBook-Pro-10 sample_app % flutterm run --no-enable-impeller
    Could not load custom device from config index 0: Expected enabled to be a boolean.
    Launching lib/main.dart on Pixel 7 in debug mode...
    Your project is configured with Android NDK 26.3.11579264, but the following plugin(s) depend on a different Android NDK version:
    - camera_android_camerax requires Android NDK 27.0.12077973
    - flutter_plugin_android_lifecycle requires Android NDK 27.0.12077973
    - image_picker_android requires Android NDK 27.0.12077973
    - local_auth_android requires Android NDK 27.0.12077973
    - video_player_android requires Android NDK 27.0.12077973
    - webview_flutter_android requires Android NDK 27.0.12077973
    Fix this issue by using the highest Android NDK version (they are backward compatible).
    Add the following to /Users/mahesh/Development/Triage/sample_app/android/app/build.gradle.kts:
    
        android {
            ndkVersion = "27.0.12077973"
            ...
        }
    Running Gradle task 'assembleDebug'...                              7.7s
    ✓ Built build/app/outputs/flutter-apk/app-debug.apk
    Installing build/app/outputs/flutter-apk/app-debug.apk...           6.5s
    Syncing files to device Pixel 7...                                  27ms
    
    Flutter run key commands.
    r Hot reload. 🔥🔥🔥
    R Hot restart.
    h List all available interactive commands.
    d Detach (terminate "flutter run" but leave application running).
    c Clear the screen
    q Quit (terminate the application on the device).
    
    A Dart VM Service on Pixel 7 is available at: http://127.0.0.1:64193/MBRqZQiVVhQ=/
    The Flutter DevTools debugger and profiler on Pixel 7 is available at:
    http://127.0.0.1:9101?uri=http://127.0.0.1:64193/MBRqZQiVVhQ=/
    I/Choreographer(28225): Skipped 106 frames!  The application may be doing too much work on its main thread.
    D/CompatChangeReporter(28225): Compat change id reported: 306666082; UID 10349; state: ENABLED
    I/WindowExtensionsImpl(28225): Initializing Window Extensions, vendor API level=8, activity embedding enabled=true
    I/mple.sample_app(28225): Compiler allocated 5341KB to compile void android.view.ViewRootImpl.performTraversals()
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@ca74ca4, of which baseContext=android.app.ContextImpl@a532659
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:a279d49e: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/ProfileInstaller(28225): Installing profile for com.example.sample_app
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@f87016e
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/Choreographer(28225): Skipped 33 frames!  The application may be doing too much work on its main thread.
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@8437d3a, of which baseContext=android.app.ContextImpl@c2c18d5
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:9869983b: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@49aa31d
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@a7e0987, of which baseContext=android.app.ContextImpl@2ace44e
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:720dd162: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@62d579e
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 48 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@49b869d, of which baseContext=android.app.ContextImpl@695b841
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:80d8bf3c: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@fdceb0c
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 47 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@37b86a3, of which baseContext=android.app.ContextImpl@5460e85
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:fc025b55: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@d7cdd2a
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@f966c89, of which baseContext=android.app.ContextImpl@d4aeebb
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:acb9f2c: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@d2aeca8
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 48 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@eac786f, of which baseContext=android.app.ContextImpl@d7f11f3
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:5c302c44: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@712ba26
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@993fbc5, of which baseContext=android.app.ContextImpl@b5eb317
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:70ae8fd6: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@ffb2cd4
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@53d4c0b, of which baseContext=android.app.ContextImpl@21f49e2
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:7eea0e21: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@fce7032
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 47 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@fd7fac1, of which baseContext=android.app.ContextImpl@a113425
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:65fa9c21: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@926dbc0
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@3973567, of which baseContext=android.app.ContextImpl@30e43d6
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:d509ca3c: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@244d2fe
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 47 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@55d257d, of which baseContext=android.app.ContextImpl@7ef3604
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:45b8b337: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@e87a56c
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 47 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@2255083, of which baseContext=android.app.ContextImpl@c98cac7
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:6e8cb7c2: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@ea16e8a
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 47 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@ecc959f, of which baseContext=android.app.ContextImpl@b579423
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:851606d4: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@c19dc16
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@38f0475, of which baseContext=android.app.ContextImpl@5ef9499
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:9a83c500: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@2236844
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@dd16c3b, of which baseContext=android.app.ContextImpl@d3b327a
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:1bb96a44: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@b12a122
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 47 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@e0c95b6, of which baseContext=android.app.ContextImpl@e0e504a
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:8ea4d089: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity](28225): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher(28225): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@a245189
    D/ViewRootImpl(28225): Skipping stats log for color mode
    I/ContentCaptureHelper(28225): Setting logging level to OFF
    I/Choreographer(28225): Skipped 47 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl(28225): Register WindowLayoutInfoListener on Context=com.example.sample_app.MainActivity@a0f6ae4, of which baseContext=android.app.ContextImpl@9ef9367
    D/InsetsController(28225): hide(ime(), fromIme=false)
    I/ImeTracker(28225): com.example.sample_app:c82df59: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    
    flutter doctor -v

    master

    ✓] Flutter (Channel master, 3.31.0-1.0.pre.345, on macOS 15.1.1 24B2091 darwin-arm64, locale en-US) [2.6s]
        • Flutter version 3.31.0-1.0.pre.345 on channel master at /Users/mahesh/Development/flutter_master
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision 9ce60b743d (2 hours ago), 2025-03-31 23:50:27 +0300
        • Engine revision 9ce60b743d
        • Dart version 3.8.0 (build 3.8.0-245.0.dev)
        • DevTools version 2.45.0-dev.0
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0) [3.1s]
        • Android SDK at /Users/mahesh/Library/Android/sdk
        • Platform android-35, build-tools 35.0.0
        • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
        • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
          This is the JDK bundled with the latest Android Studio installation on this machine.
          To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
        • Java version OpenJDK Runtime Environment (build 21.0.5+-12932927-b750.29)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 16.0) [1,745ms]
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Build 16A242d
        • CocoaPods version 1.16.2
    
    [✓] Chrome - develop for the web [147ms]
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] Android Studio (version 2024.3) [146ms]
        • Android Studio at /Applications/Android Studio.app/Contents
        • Flutter plugin can be installed from:
          🔨 https://plugins.jetbrains.com/plugin/9212-flutter
        • Dart plugin can be installed from:
          🔨 https://plugins.jetbrains.com/plugin/6351-dart
        • Java version OpenJDK Runtime Environment (build 21.0.5+-12932927-b750.29)
    
    [✓] IntelliJ IDEA Community Edition (version 2021.2.1) [144ms]
        • IntelliJ at /Applications/IntelliJ IDEA CE.app
        • Flutter plugin version 61.2.4
        • Dart plugin version 212.5080.8
    
    [✓] VS Code (version 1.96.2) [19ms]
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.102.0
    
    [✓] Connected device (2 available) [7.0s]
        • macOS (desktop) • macos  • darwin-arm64   • macOS 15.1.1 24B2091 darwin-arm64
        • Chrome (web)    • chrome • web-javascript • Google Chrome 131.0.6778.265
    
    [✓] Network resources [688ms]
        • All expected network resources are available.
    
    • No issues found!

    stable

    [✓] Flutter (Channel stable, 3.29.2, on macOS 15.1.1 24B2091 darwin-arm64, locale en-US) [822ms]
        • Flutter version 3.29.2 on channel stable at /Users/mahesh/Development/flutter
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision c236373904 (2 weeks ago), 2025-03-13 16:17:06 -0400
        • Engine revision 18b71d647a
        • Dart version 3.7.2
        • DevTools version 2.42.3
    [✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0) [3.2s]
        • Android SDK at /Users/mahesh/Library/Android/sdk
        • Platform android-35, build-tools 35.0.0
        • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
        • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
          This is the JDK bundled with the latest Android Studio installation on this machine.
          To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
        • Java version OpenJDK Runtime Environment (build 21.0.5+-12932927-b750.29)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 16.0) [3.1s]
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Build 16A242d
        • CocoaPods version 1.16.2
    
    [✓] Chrome - develop for the web [136ms]
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] Android Studio (version 2024.3) [135ms]
        • Android Studio at /Applications/Android Studio.app/Contents
        • Flutter plugin can be installed from:
          🔨 https://plugins.jetbrains.com/plugin/9212-flutter
        • Dart plugin can be installed from:
          🔨 https://plugins.jetbrains.com/plugin/6351-dart
        • Java version OpenJDK Runtime Environment (build 21.0.5+-12932927-b750.29)
    
    [✓] IntelliJ IDEA Community Edition (version 2021.2.1) [134ms]
        • IntelliJ at /Applications/IntelliJ IDEA CE.app
        • Flutter plugin version 61.2.4
        • Dart plugin version 212.5080.8
    
    [✓] VS Code (version 1.96.2) [18ms]
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.102.0
    
    [✓] Connected device (4 available) [6.7s]
        • iPad Pro 11-inch (M4) (mobile)  • A97192B5-5CFD-4164-BF2A-A6E2972614FF • ios            • com.apple.CoreSimulator.SimRuntime.iOS-18-0
          (simulator)
        • macOS (desktop)                 • macos                                • darwin-arm64   • macOS 15.1.1 24B2091 darwin-arm64
        • Mac Designed for iPad (desktop) • mac-designed-for-ipad                • darwin         • macOS 15.1.1 24B2091 darwin-arm64
        • Chrome (web)                    • chrome                               • web-javascript • Google Chrome 131.0.6778.265
    
    [✓] Network resources [294ms]
        • All expected network resources are available.
    
    ! Doctor found issues in 1 category.
  3. added
    c: crashStack traces logged to the console
    engineflutter/engine related. See also e: labels.
    has reproducible stepsThe issue has been confirmed reproducible and is ready to work on
    e: impellerImpeller rendering backend issues and features requests
    and removed
    in triagePresently being triaged by the triage team
    on Apr 3, 2025
  4. jonahwilliams commented on Apr 3, 2025

    @jonahwilliams
    Contributor

    @maheshj01 I'm having a bit of trouble reproducing this (probably need a matching phone). It would help if you get a the full strack trace. If you make the following change to the project used to trigger the crash, the stack trace should be symbolized:

    diff --git a/examples/hello_world/android/app/build.gradle.kts b/examples/hello_world/android/app/build.gradle.kts
    index d0e5ec689c8..dcef9e10983 100644
    --- a/examples/hello_world/android/app/build.gradle.kts
    +++ b/examples/hello_world/android/app/build.gradle.kts
    @@ -40,6 +40,10 @@ android {
                 signingConfig = signingConfigs.getByName("debug")
             }
         }
    +
    +    packagingOptions {
    +        doNotStrip("**/*.so")
    +    }
     }
  5. maheshj01 commented on Apr 3, 2025

    @maheshj01
    Member

    @jonahwilliams here you go.

    stack trace (master)
    mahesh@MacBook-Pro-10 bug % flutterm run
    Could not load custom device from config index 0: Expected enabled to be a boolean.
    Resolving dependencies... 
    Downloading packages... 
    > async 2.13.0 (was 2.12.0)
    > fake_async 1.3.3 (was 1.3.2)
    > leak_tracker 10.0.9 (was 10.0.8)
      material_color_utilities 0.11.1 (0.12.0 available)
    > vm_service 15.0.0 (was 14.3.1)
    Changed 4 dependencies!
    1 package has newer versions incompatible with dependency constraints.
    Try `flutter pub outdated` for more information.
    Launching lib/main.dart on Pixel 7 in debug mode...
    Running Gradle task 'assembleDebug'...                              6.0s
    ✓ Built build/app/outputs/flutter-apk/app-debug.apk
    Installing build/app/outputs/flutter-apk/app-debug.apk...          14.7s
    I/flutter ( 7118): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
    Syncing files to device Pixel 7...                                  64ms
    
    Flutter run key commands.
    r Hot reload. 🔥🔥🔥
    R Hot restart.
    h List all available interactive commands.
    d Detach (terminate "flutter run" but leave application running).
    c Clear the screen
    q Quit (terminate the application on the device).
    
    A Dart VM Service on Pixel 7 is available at: http://127.0.0.1:52233/8utCn1dmrg4=/
    The Flutter DevTools debugger and profiler on Pixel 7 is available at:
    http://127.0.0.1:9101?uri=http://127.0.0.1:52233/8utCn1dmrg4=/
    I/Choreographer( 7118): Skipped 51 frames!  The application may be doing too much work on its main thread.
    D/CompatChangeReporter( 7118): Compat change id reported: 306666082; UID 10036; state: ENABLED
    I/WindowExtensionsImpl( 7118): Initializing Window Extensions, vendor API level=8, activity embedding enabled=true
    I/com.example.bug( 7118): Compiler allocated 5341KB to compile void android.view.ViewRootImpl.performTraversals()
    D/WindowLayoutComponentImpl( 7118): Register WindowLayoutInfoListener on Context=com.example.bug.MainActivity@e3ccfba, of which baseContext=android.app.ContextImpl@5ccd517
    D/InsetsController( 7118): hide(ime(), fromIme=false)
    I/ImeTracker( 7118): com.example.bug:ba6b0d63: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/ProfileInstaller( 7118): Installing profile for com.example.bug
    D/VRI[MainActivity]( 7118): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher( 7118): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@7ac9427
    D/ViewRootImpl( 7118): Skipping stats log for color mode
    I/flutter ( 7118): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
    I/ContentCaptureHelper( 7118): Setting logging level to OFF
    I/Choreographer( 7118): Skipped 47 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl( 7118): Register WindowLayoutInfoListener on Context=com.example.bug.MainActivity@241cbd0, of which baseContext=android.app.ContextImpl@647fa32
    D/InsetsController( 7118): hide(ime(), fromIme=false)
    I/ImeTracker( 7118): com.example.bug:caa7eae5: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity]( 7118): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher( 7118): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@72209da
    D/ViewRootImpl( 7118): Skipping stats log for color mode
    I/flutter ( 7118): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
    I/ContentCaptureHelper( 7118): Setting logging level to OFF
    I/Choreographer( 7118): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl( 7118): Register WindowLayoutInfoListener on Context=com.example.bug.MainActivity@fc26f63, of which baseContext=android.app.ContextImpl@cb1ac66
    D/InsetsController( 7118): hide(ime(), fromIme=false)
    I/ImeTracker( 7118): com.example.bug:b7dc8d76: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity]( 7118): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher( 7118): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@c2c18d5
    D/ViewRootImpl( 7118): Skipping stats log for color mode
    I/flutter ( 7118): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
    I/ContentCaptureHelper( 7118): Setting logging level to OFF
    I/Choreographer( 7118): Skipped 45 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl( 7118): Register WindowLayoutInfoListener on Context=com.example.bug.MainActivity@5acb2a2, of which baseContext=android.app.ContextImpl@3fb60b4
    D/InsetsController( 7118): hide(ime(), fromIme=false)
    I/ImeTracker( 7118): com.example.bug:b4eb11: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    W/WindowOnBackDispatcher( 7118): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@105ea1c
    D/ViewRootImpl( 7118): Skipping stats log for color mode
    I/flutter ( 7118): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
    I/ContentCaptureHelper( 7118): Setting logging level to OFF
    I/Choreographer( 7118): Skipped 46 frames!  The application may be doing too much work on its main thread.
    D/WindowLayoutComponentImpl( 7118): Register WindowLayoutInfoListener on Context=com.example.bug.MainActivity@75465bd, of which baseContext=android.app.ContextImpl@7866857
    D/InsetsController( 7118): hide(ime(), fromIme=false)
    I/ImeTracker( 7118): com.example.bug:c6ae9884: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
    D/VRI[MainActivity]( 7118): visibilityChanged oldVisibility=true newVisibility=false
    W/WindowOnBackDispatcher( 7118): sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda13@7354c5f
    D/ViewRootImpl( 7118): Skipping stats log for color mode
    F/libc    ( 7118): FORTIFY: pthread_mutex_lock called on a destroyed mutex (0xb4000075aec65258)
    F/libc    ( 7118): Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 7118 (com.example.bug), pid 7118 (com.example.bug)
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    Build fingerprint: 'google/panther/panther:15/BP1A.250305.019/13003188:user/release-keys'
    Revision: 'MP1.0'
    ABI: 'arm64'
    Timestamp: 2025-04-02 22:00:13.076499270-0400
    Process uptime: 24s
    Cmdline: com.example.bug
    pid: 7118, tid: 7118, name: com.example.bug  >>> com.example.bug <<<
    uid: 10036
    tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
    signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
    Abort message: 'FORTIFY: pthread_mutex_lock called on a destroyed mutex (0xb4000075aec65258)'
        x0  0000000000000000  x1  0000000000001bce  x2  0000000000000006  x3  0000007feb59c7d0
        x4  6b6b60621f6a626e  x5  6b6b60621f6a626e  x6  6b6b60621f6a626e  x7  7f7f7f7f7f7f7f7f
        x8  00000000000000f0  x9  4efc38eecf2b23db  x10 0000000000000001  x11 000000783decda30
        x12 0000000067edebac  x13 000000007fffffff  x14 00000000016b7bac  x15 0000046a0918ab45
        x16 000000783df37048  x17 000000783df213c0  x18 0000007866974000  x19 0000000000001bce
        x20 0000000000001bce  x21 00000000ffffffff  x22 0000000000000000  x23 000000786601ba40
        x24 0000000000000000  x25 000000786601ba40  x26 b4000076cec48228  x27 b4000076cec48248
        x28 0000000000000001  x29 0000007feb59c850
        lr  000000783deb7518  sp  0000007feb59c7d0  pc  000000783deb753c  pst 0000000000001000
    62 total frames
    backtrace:
          #00 pc 000000000005e53c  /apex/com.android.runtime/lib64/bionic/libc.so (abort+156) (BuildId: f0cc3fe16b52af6fc8d4e5b18105de09)
          #01 pc 0000000000061c3c  /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+124) (BuildId: f0cc3fe16b52af6fc8d4e5b18105de09)
          #02 pc 0000000000070e4c  /apex/com.android.runtime/lib64/bionic/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*, char const*)+60) (BuildId: f0cc3fe16b52af6fc8d4e5b18105de09)
          #03 pc 0000000000070c88  /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+136) (BuildId: f0cc3fe16b52af6fc8d4e5b18105de09)
          #04 pc 00000000008fe80c  /vendor/lib64/egl/libGLES_mali.so (vulkan::device::remove_slot_data(unsigned long)+28) (BuildId: bce38a6ad4d98daa)
          #05 pc 000000000090d120  /vendor/lib64/egl/libGLES_mali.so (vkDestroyImageView+80) (BuildId: bce38a6ad4d98daa)
          #06 pc 00000000021946d8  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (impeller::AllocatedTextureSourceVK::ImageResource::~ImageResource()+12) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #07 pc 0000000002194924  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (impeller::ResourceVKT<impeller::AllocatedTextureSourceVK::ImageResource>::~ResourceVKT()+8) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #08 pc 000000000219485c  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (impeller::UniqueResourceVKT<impeller::AllocatedTextureSourceVK::ImageResource>::Reset()+108) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #09 pc 00000000021949c0  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (impeller::UniqueResourceVKT<impeller::AllocatedTextureSourceVK::ImageResource>::~UniqueResourceVKT()+8) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #10 pc 0000000002194718  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (impeller::AllocatedTextureSourceVK::~AllocatedTextureSourceVK()+12) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #11 pc 0000000001d55498  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (std::_fl::__shared_weak_count::__release_shared[abi:nn210000]()+44) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #12 pc 00000000021ba9fc  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (impeller::TextureVK::~TextureVK()+12) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #13 pc 0000000001d55498  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (std::_fl::__shared_weak_count::__release_shared[abi:nn210000]()+44) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #14 pc 000000000213f914  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (impeller::DlImageImpeller::~DlImageImpeller()+12) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #15 pc 000000000213f92c  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (impeller::DlImageImpeller::~DlImageImpeller()+8) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #16 pc 00000000021f7738  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (flutter::CanvasImage::~CanvasImage()+12) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #17 pc 00000000021ec9b8  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (fml::RefCountedThreadSafe<flutter::CanvasImage>::Release() const+40) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #18 pc 00000000021fffbc  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (flutter::MultiFrameCodec::State::GetNextFrameAndInvokeCallback(std::_fl::unique_ptr<tonic::DartPersistentValue, std::_fl::default_delete<tonic::DartPersistentValue>>, fml::RefPtr<fml::TaskRunner> const&, fml::WeakPtr<GrDirectContext> const&, fml::RefPtr<flutter::UnrefQueue<GrDirectContext>> const&, std::_fl::shared_ptr<fml::SyncSwitch const> const&, unsigned long, std::_fl::shared_ptr<impeller::Context> const&)::$_0::~$_0()+20) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #19 pc 00000000021fff90  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (fml::internal::CopyableLambda<flutter::MultiFrameCodec::State::GetNextFrameAndInvokeCallback(std::_fl::unique_ptr<tonic::DartPersistentValue, std::_fl::default_delete<tonic::DartPersistentValue>>, fml::RefPtr<fml::TaskRunner> const&, fml::WeakPtr<GrDirectContext> const&, fml::RefPtr<flutter::UnrefQueue<GrDirectContext>> const&, std::_fl::shared_ptr<fml::SyncSwitch const> const&, unsigned long, std::_fl::shared_ptr<impeller::Context> const&)::$_0>::~CopyableLambda()+28) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #20 pc 00000000022008a4  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (std::_fl::__function::__func<fml::internal::CopyableLambda<flutter::MultiFrameCodec::State::GetNextFrameAndInvokeCallback(std::_fl::unique_ptr<tonic::DartPersistentValue, std::_fl::default_delete<tonic::DartPersistentValue>>, fml::RefPtr<fml::TaskRunner> const&, fml::WeakPtr<GrDirectContext> const&, fml::RefPtr<flutter::UnrefQueue<GrDirectContext>> const&, std::_fl::shared_ptr<fml::SyncSwitch const> const&, unsigned long, std::_fl::shared_ptr<impeller::Context> const&)::$_0>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::MultiFrameCodec::State::GetNextFrameAndInvokeCallback(std::_fl::unique_ptr<tonic::DartPersistentValue, std::_fl::default_delete<tonic::DartPersistentValue>>, fml::RefPtr<fml::TaskRunner> const&, fml::WeakPtr<GrDirectContext> const&, fml::RefPtr<flutter::UnrefQueue<GrDirectContext>> const&, std::_fl::shared_ptr<fml::SyncSwitch const> const&, unsigned long, std::_fl::shared_ptr<impeller::Context> const&)::$_0>>, void ()>::destroy_deallocate()+8) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #21 pc 0000000001d84208  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (std::_fl::__function::__value_func<void ()>::operator=[abi:nn210000](std::nullptr_t)+52) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #22 pc 0000000001d84184  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (std::_fl::__function::__value_func<void ()>::operator=[abi:nn210000](std::_fl::__function::__value_func<void ()>&&)+20) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #23 pc 0000000001d840dc  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (fml::MessageLoopImpl::FlushTasks(fml::FlushType)+76) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #24 pc 0000000001d89bec  /data/app/~~855hhnYsNAqhVKdF9RhmXA==/com.example.bug-HLJOCUdi8BvibG1J0OC1XA==/lib/arm64/libflutter.so (fml::MessageLoopAndroid::MessageLoopAndroid()::$_0::__invoke(int, int, void*)+12) (BuildId: dd03f427be53f7248c5896af5f43a82a1b6c127a)
          #25 pc 0000000000010a08  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+1704) (BuildId: da198daaf3ac5b24502b90e10d2d974f)
          #26 pc 00000000001bce5c  /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: 82375058951c59013a131ae9c5726af8)
          #27 pc 00000000021b055c  /memfd:jit-cache (deleted) (offset 0x2000000) (art_jni_trampoline+140)
          #28 pc 0000000002067d3c  /memfd:jit-cache (deleted) (offset 0x2000000) (android.os.MessageQueue.next+332)
          #29 pc 0000000002067128  /memfd:jit-cache (deleted) (offset 0x2000000) (android.os.Looper.loopOnce+168)
          #30 pc 0000000000368a40  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #31 pc 0000000000361e5c  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2048) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #32 pc 000000000076f734  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+12208) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #33 pc 00000000003815d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #34 pc 0000000000279bec  /system/framework/framework.jar (android.os.Looper.loop+0)
          #35 pc 0000000000354250  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238.llvm.16344227474899595276)+428) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #36 pc 0000000000362678  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+4124) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #37 pc 000000000076f734  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+12208) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #38 pc 00000000003815d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #39 pc 00000000001f3b60  /system/framework/framework.jar (android.app.ActivityThread.main+0)
          #40 pc 00000000003535dc  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+1932) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #41 pc 000000000037f098  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #42 pc 0000000000368a40  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #43 pc 00000000003644f4  /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+732) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #44 pc 00000000006c8834  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #45 pc 000000000037ef70  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #46 pc 0000000000368774  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #47 pc 0000000000361de4  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+1928) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #48 pc 000000000076f734  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+12208) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #49 pc 00000000003815d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #50 pc 0000000000246af8  /system/framework/framework.jar (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+0)
          #51 pc 00000000003535dc  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+1932) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #52 pc 000000000037f098  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #53 pc 0000000000be3794  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3188)
          #54 pc 0000000000368a40  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #55 pc 0000000000353f6c  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #56 pc 0000000000351f20  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+512) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #57 pc 000000000073d468  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+104) (BuildId: a0856b3dbc826e8cee9d66738ac739d8)
          #58 pc 00000000000f46f8  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+104) (BuildId: 82375058951c59013a131ae9c5726af8)
          #59 pc 0000000000118f4c  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+908) (BuildId: 82375058951c59013a131ae9c5726af8)
          #60 pc 000000000000259c  /system/bin/app_process64 (main+1212) (BuildId: f8a0c359d43b767065e9bb65a2af0c53)
          #61 pc 0000000000057854  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+116) (BuildId: f0cc3fe16b52af6fc8d4e5b18105de09)
    Lost connection to device.

    bug.zip

  6. jonahwilliams commented on Apr 3, 2025

    @jonahwilliams
    Contributor

    Perfect, thank you!

  7. cu-kha commented on Apr 3, 2025

    @cu-kha
    Author

    @jonahwilliams In case it helps, I've found this file triggers the bug more consistently
    qr.webp.zip

    @maheshj01 I noticed your crash log looks slightly different than mine (Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) vs Fatal signal 7 (SIGBUS), code 1 (BUS_ADRALN)

  8. jonahwilliams commented on Apr 3, 2025

    @jonahwilliams
    Contributor

    Thanks. I managed to reproduce this on a different device.

    The problem is that we're shutting down without considering pending image decode work. So once the decoding finishes we may end up trying to destroy the resulting image after tearing down some of the code used the manage the vulkan driver. The adreno drivers in particular can crash when this happens. We should be able to handle this by making sure any inprogress image deocdes are cancelled or waited for when shutting down.

  9. self-assigned this
    on Apr 3, 2025
  10. jason-simmons commented on Apr 3, 2025

    @jason-simmons
    Member

    One factor that complicates this is that the UI task runner is now running on the platform thread.

    Reproduced this on a Pixel 3. The sequence of events that I'm seeing is:

    • Shell shutdown starts executing on the platform thread.
    • The Shell dtor queues a task to the IO thread and waits for it to complete.
      • Any pending IO thread tasks run before the Shell dtor resumes execution on the platform thread.
    • A previously scheduled IO thread task decodes a frame.
      • This task constructs an Impeller texture and a CanvasImage, and it queues a lambda holding a reference to the CanvasImage onto the UI task runner.
    • The platform thread finishes waiting for the IO thread and continues Shell shutdown. The Shell dtor then deletes the platform view, including the Impeller ContextVK.
    • The ContextVK dtor deletes the Vulkan memory allocator. The VMA fails an assertion because the lambda is still inside the UI task runner's queue and the texture that it owns has not yet been freed.

    This issue was not seen when the UI task runner had its own thread. In that setup, the task queued by the IO thread would run promptly on the UI thread. The task would see that the Dart isolate has shut down, and it would exit and drop its reference to the texture. So deletion of the texture would likely win the race against the platform thread's destruction of the platform view and the VMA.

    Anything that queues tasks to the UI task runner may need to avoid capturing any real Vulkan objects. The task could instead hold some kind of handle representing an underlying object that can be safely deleted before the task executes.

  11. added
    P1High-priority issues at the top of the work list
    on Apr 7, 2025
  12. added
    r: fixedIssue is closed as already fixed in a newer version
    on Apr 9, 2025
  13. github-actions commented on Apr 23, 2025

    @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.

  14. locked as resolved and limited conversation to collaborators on Apr 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work listc: crashStack traces logged to the consolee: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.found in release: 3.29Found to occur in 3.29found in release: 3.31Found to occur in 3.31has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions