Skip to content

[Impeller] vulkan crash when deleting GPUSurfaceVulkanImpeller #128618

@gaaclarke

Description

@gaaclarke

description

Looks like we are having a thread creation assert when calling Rasterizer::Setup when deleting the old surface_.

steps to reproduce

  1. launch the wonderous app
  2. scroll down about halfway down the first page
  3. switch to the second tab on the bottom
  4. notice the crash (almost 100% of the time)

version

engine: 64d0cc34e7949bd6e5b3891670e124c5cb233fa0

stacktrace

06-09 14:00:25.392 25224 25224 F flutter : [FATAL:flutter/fml/memory/weak_ptr.h(282)] Check failed: (checker_.checker).IsCreationThreadCurrent(). 
06-09 14:00:25.392 25224 25224 F libc    : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 25224 (flutter.wonders), pid 25224 (flutter.wonders)
06-09 14:00:25.529 25707 25707 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstoneProto
06-09 14:00:25.530   874   874 I tombstoned: received crash request for pid 25224
06-09 14:00:25.530 25707 25707 I crash_dump64: performing dump of process 25224 (target tid = 25224)
06-09 14:00:25.828 25707 25707 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-09 14:00:25.828 25707 25707 F DEBUG   : Build fingerprint: 'google/sunfish/sunfish:13/TQ1A.230105.001/9292298:user/release-keys'
06-09 14:00:25.828 25707 25707 F DEBUG   : Revision: 'MP1.0'
06-09 14:00:25.828 25707 25707 F DEBUG   : ABI: 'arm64'
06-09 14:00:25.828 25707 25707 F DEBUG   : Timestamp: 2023-06-09 14:00:25.549649961-0700
06-09 14:00:25.828 25707 25707 F DEBUG   : Process uptime: 21s
06-09 14:00:25.828 25707 25707 F DEBUG   : Cmdline: com.gskinner.flutter.wonders
06-09 14:00:25.828 25707 25707 F DEBUG   : pid: 25224, tid: 25224, name: flutter.wonders  >>> com.gskinner.flutter.wonders <<<
06-09 14:00:25.828 25707 25707 F DEBUG   : uid: 10256
06-09 14:00:25.828 25707 25707 F DEBUG   : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
06-09 14:00:25.828 25707 25707 F DEBUG   : Abort message: '[FATAL:flutter/fml/memory/weak_ptr.h(282)] Check failed: (checker_.checker).IsCreationThreadCurrent(). '
06-09 14:00:25.828 25707 25707 F DEBUG   :     x0  0000000000000000  x1  0000000000006288  x2  0000000000000006  x3  0000007fc5baacc0
06-09 14:00:25.828 25707 25707 F DEBUG   :     x4  6f5e6a6064762e78  x5  6f5e6a6064762e78  x6  6f5e6a6064762e78  x7  7f7f7f7f7f7f7f7f
06-09 14:00:25.828 25707 25707 F DEBUG   :     x8  00000000000000f0  x9  00000076d3569a00  x10 0000000000000001  x11 00000076d35a7de4
06-09 14:00:25.828 25707 25707 F DEBUG   :     x12 000000000000d1e1  x13 0000000000000069  x14 0000007fc5ba9b90  x15 0000000001324666
06-09 14:00:25.828 25707 25707 F DEBUG   :     x16 00000076d360cd58  x17 00000076d35e9c70  x18 00000076ee304000  x19 0000000000006288
06-09 14:00:25.828 25707 25707 F DEBUG   :     x20 0000000000006288  x21 00000000ffffffff  x22 00000073c312c070  x23 00000073c343e5f1
06-09 14:00:25.828 25707 25707 F DEBUG   :     x24 0000007438e00880  x25 0000007fc5babce8  x26 0000007fc5babcf8  x27 0000007fc5babce8
06-09 14:00:25.828 25707 25707 F DEBUG   :     x28 0000007fc5babbe0  x29 0000007fc5baad40
06-09 14:00:25.828 25707 25707 F DEBUG   :     lr  00000076d3599968  sp  0000007fc5baaca0  pc  00000076d3599994  pst 0000000000000000
06-09 14:00:25.828 25707 25707 F DEBUG   : backtrace:
06-09 14:00:25.828 25707 25707 F DEBUG   :       #00 pc 0000000000051994  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: 4e07915368c859b1910c68c84a8de75f)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #01 pc 0000000001f1bce8  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #02 pc 0000000001fe4184  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #03 pc 00000000030c7bd4  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #04 pc 00000000030c6008  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #05 pc 0000000003369880  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #06 pc 00000000033698dc  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #07 pc 0000000001f1e7bc  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #08 pc 0000000001f1e770  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #09 pc 0000000001f2bdd0  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #10 pc 00000000030d51ac  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #11 pc 00000000030edd18  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #12 pc 00000000030e4828  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #13 pc 00000000030e4628  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #14 pc 00000000030d349c  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #15 pc 0000000001f3f604  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #16 pc 0000000001f46f3c  /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk!libflutter.so (BuildId: 015e6f22154bc0a78444a5f0089b021cf2497927)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #17 pc 000000000043dd54  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: a49c773ef6221a996ecea990e9753caa)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #18 pc 000000000020a910  /apex/com.android.art/lib64/libart.so (nterp_helper+5648) (BuildId: a49c773ef6221a996ecea990e9753caa)
06-09 14:00:25.828 25707 25707 F DEBUG   :       #19 pc 00000000001b6070  [anon:dalvik-classes.dex extracted in memory from /data/app/~~3tBAr_USkF0x7Q6ylK2p1w==/com.gskinner.flutter.wonders-GT2f0WE-JLPyuJJvP7vmGA==/base.apk] (io.flutter.embedding.engine.FlutterJNI.onSurfaceCreated+24)

I had to manually symbolicate this for some reason.

aaclarke-macbookpro3:flutter-wonderous-app aaclarke$ /Users/aaclarke/Library/Android//sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line -Cfe ~/dev/engine/src/out/android_debug_unopt_arm64/libflutter.so 0000000001f1bce8
std::__throw_bad_alloc()
/Users/aaclarke/dev/engine/src/out/android_debug_unopt_arm64/../../third_party/libcxx/include/optional:227

aaclarke-macbookpro3:flutter-wonderous-app aaclarke$ /Users/aaclarke/Library/Android//sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line -Cfe ~/dev/engine/src/out/android_debug_unopt_arm64/libflutter.so 0000000001fe4184
fml::LogMessage::~LogMessage()
/Users/aaclarke/dev/engine/src/out/android_debug_unopt_arm64/../../flutter/fml/logging.cc:132

aaclarke-macbookpro3:flutter-wonderous-app aaclarke$ /Users/aaclarke/Library/Android//sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line -Cfe ~/dev/engine/src/out/android_debug_unopt_arm64/libflutter.so 00000000030c7bd4
fml::WeakPtrFactory<flutter::GPUSurfaceVulkanImpeller>::CheckThreadSafety() const
/Users/aaclarke/dev/engine/src/out/android_debug_unopt_arm64/../../flutter/fml/memory/weak_ptr.h:282

aaclarke-macbookpro3:flutter-wonderous-app aaclarke$ /Users/aaclarke/Library/Android//sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line -Cfe ~/dev/engine/src/out/android_debug_unopt_arm64/libflutter.so 00000000030c6008
fml::WeakPtrFactory<flutter::GPUSurfaceVulkanImpeller>::~WeakPtrFactory()
/Users/aaclarke/dev/engine/src/out/android_debug_unopt_arm64/../../flutter/fml/memory/weak_ptr.h:265

aaclarke-macbookpro3:flutter-wonderous-app aaclarke$ /Users/aaclarke/Library/Android//sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line -Cfe ~/dev/engine/src/out/android_debug_unopt_arm64/libflutter.so 0000000003369880
flutter::GPUSurfaceVulkanImpeller::~GPUSurfaceVulkanImpeller()
/Users/aaclarke/dev/engine/src/out/android_debug_unopt_arm64/../../flutter/shell/gpu/gpu_surface_vulkan_impeller.cc:38

aaclarke-macbookpro3:flutter-wonderous-app aaclarke$ /Users/aaclarke/Library/Android//sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line -Cfe ~/dev/engine/src/out/android_debug_unopt_arm64/libflutter.so 00000000033698dc
flutter::GPUSurfaceVulkanImpeller::~GPUSurfaceVulkanImpeller()
/Users/aaclarke/dev/engine/src/out/android_debug_unopt_arm64/../../flutter/shell/gpu/gpu_surface_vulkan_impeller.cc:38

aaclarke-macbookpro3:flutter-wonderous-app aaclarke$ /Users/aaclarke/Library/Android//sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line -Cfe ~/dev/engine/src/out/android_debug_unopt_arm64/libflutter.so 0000000001f1e7bc
std::_LIBCPP_ABI_NAMESPACE::default_delete<flutter::DisplayListEmbedderViewSlice>::operator()[abi:v15000](flutter::DisplayListEmbedderViewSlice*) const
/Users/aaclarke/dev/engine/src/out/android_debug_unopt_arm64/../../third_party/libcxx/include/__memory/unique_ptr.h:48

ddr2line -Cfe ~/dev/engine/src/out/android_debug_unopt_arm64/libflutter.so 0000000001f1e770
std::_LIBCPP_ABI_NAMESPACE::unique_ptr<flutter::DisplayListEmbedderViewSlice, std::_LIBCPP_ABI_NAMESPACE::default_delete<flutter::DisplayListEmbedderViewSlice> >::reset[abi:v15000](flutter::DisplayListEmbedderViewSlice*)
/Users/aaclarke/dev/engine/src/out/android_debug_unopt_arm64/../../third_party/libcxx/include/__memory/unique_ptr.h:305

aaclarke-macbookpro3:flutter-wonderous-app aaclarke$ /Users/aaclarke/Library/Android//sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line -Cfe ~/dev/engine/src/out/android_debug_unopt_arm64/libflutter.so 0000000001f2bdd0
std::_LIBCPP_ABI_NAMESPACE::unique_ptr<flutter::EmbedderViewSlice, std::_LIBCPP_ABI_NAMESPACE::default_delete<flutter::EmbedderViewSlice> >::operator=[abi:v15000](std::_LIBCPP_ABI_NAMESPACE::unique_ptr<flutter::EmbedderViewSlice, std::_LIBCPP_ABI_NAMESPACE::default_delete<flutter::EmbedderViewSlice> >&&)
/Users/aaclarke/dev/engine/src/out/android_debug_unopt_arm64/../../third_party/libcxx/include/__memory/unique_ptr.h:225

aaclarke-macbookpro3:flutter-wonderous-app aaclarke$ /Users/aaclarke/Library/Android//sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line -Cfe ~/dev/engine/src/out/android_debug_unopt_arm64/libflutter.so 00000000030d51ac
flutter::Rasterizer::Setup(std::_LIBCPP_ABI_NAMESPACE::unique_ptr<flutter::Surface, std::_LIBCPP_ABI_NAMESPACE::default_delete<flutter::Surface> >)
/Users/aaclarke/dev/engine/src/out/android_debug_unopt_arm64/../../flutter/shell/common/rasterizer.cc:68

Metadata

Metadata

Assignees

Labels

e: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions