Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flutter android app crash with libc.so(abort+164) #100104

Closed
Howard2595 opened this issue Mar 15, 2022 · 13 comments
Closed

Flutter android app crash with libc.so(abort+164) #100104

Howard2595 opened this issue Mar 15, 2022 · 13 comments
Labels
a: production Issues experienced in live production apps c: crash Stack traces logged to the console engine flutter/engine repository. See also e: labels. needs repro info Automated crash report whose cause isn't yet known platform-android Android applications specifically r: invalid Issue is closed as not valid

Comments

@Howard2595
Copy link

Howard2595 commented Mar 15, 2022

I can not reproduce the crash because it never happens on my device.
but we are getting crashes from play console logs.

This problem is the same as #98271.

Devices seem to be mostly Samsung devices: Samsung Galaxy S21+ 5G, Samsung Galaxy S21 5G, Samsung Galaxy S21 Ultra 5G, Android versions are all 12(SDK 31).

Flutter version: 2.10.0
Engine version: 776efd2

Here are the stack traces:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.***.***** <<<

backtrace:
  #00  pc 0000000000051010  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
  #00  pc 0000000000052db4  /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+124)
  #00  pc 00000000000b4004  /apex/com.android.runtime/lib64/bionic/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*, char const*)+60)
  #00  pc 00000000000b3e2c  /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+176)
  #00  pc 00000000002fc424  /data/app/~~nJfR6osn8_HqYmdiOCwFxA==/com.***.*****-6np4PYTzTjVPV7GJ_a1nQQ==/split_config.arm64_v8a.apk!libflutter.so
  #00  pc 0000000000300ae0  /data/app/~~nJfR6osn8_HqYmdiOCwFxA==/com.***.*****-6np4PYTzTjVPV7GJ_a1nQQ==/split_config.arm64_v8a.apk!libflutter.so
  #00  pc 00000000006113c8  /data/app/~~nJfR6osn8_HqYmdiOCwFxA==/com.***.*****-6np4PYTzTjVPV7GJ_a1nQQ==/split_config.arm64_v8a.apk!libflutter.so
  #00  pc 0000000000560724  /data/app/~~nJfR6osn8_HqYmdiOCwFxA==/com.***.*****-6np4PYTzTjVPV7GJ_a1nQQ==/split_config.arm64_v8a.apk!libflutter.so
  #00  pc 00000000006bfaf0  /data/app/~~nJfR6osn8_HqYmdiOCwFxA==/com.***.*****-6np4PYTzTjVPV7GJ_a1nQQ==/split_config.arm64_v8a.apk!libflutter.so
  #00  pc 0000000000795c70  /data/app/~~nJfR6osn8_HqYmdiOCwFxA==/com.***.*****-6np4PYTzTjVPV7GJ_a1nQQ==/split_config.arm64_v8a.apk!libflutter.so
  #00  pc 00000000005daecc  /data/app/~~nJfR6osn8_HqYmdiOCwFxA==/com.***.*****-6np4PYTzTjVPV7GJ_a1nQQ==/split_config.arm64_v8a.apk!libflutter.so
  #00  pc 000000000060f114  /data/app/~~nJfR6osn8_HqYmdiOCwFxA==/com.***.*****-6np4PYTzTjVPV7GJ_a1nQQ==/split_config.arm64_v8a.apk!libflutter.so
  #00  pc 00000000000b2fd0  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
  #00  pc 0000000000052834  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.***.***** <<<

backtrace:
  #00  pc 0000000000051b20  /apex/com.android.runtime/lib64/bionic/libc.so (abort+168)
  #00  pc 0000000000053a68  /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+128)
  #00  pc 00000000000b7f5c  /apex/com.android.runtime/lib64/bionic/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*, char const*)+68)
  #00  pc 00000000000b7d70  /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+188)
  #00  pc 0000000000095728  /apex/com.android.art/lib64/libc++.so (std::__1::mutex::lock()+8)
  #00  pc 0000000000001144  /apex/com.android.art/lib64/libandroidio.so (async_close_monitor_create+36)
  #00  pc 000000000002f098  /apex/com.android.art/lib64/libjavacore.so (Linux_writeBytes(_JNIEnv*, _jobject*, _jobject*, _jobject*, int, int)+144)
  #00  pc 0000000000012224  /apex/com.android.art/javalib/arm64/boot-core-libart.oat (art_jni_trampoline+148)
  #00  pc 000000000004fba4  /apex/com.android.art/javalib/arm64/boot-core-libart.oat (libcore.io.ForwardingOs.write+660)
  #00  pc 0000000000029430  /apex/com.android.art/javalib/arm64/boot-core-libart.oat (libcore.io.IoBridge.write+192)
  #00  pc 0000000000325354  /apex/com.android.art/javalib/arm64/boot.oat (java.io.FileOutputStream.write+164)
  #00  pc 0000000000b5faec  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (com.android.internal.util.FastXmlSerializer.flush+652)
  #00  pc 0000000000b6e288  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (com.android.internal.util.XmlUtils.writeMapXml+616)
  #00  pc 00000000005b1664  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.app.SharedPreferencesImpl.writeToFile+1188)
  #00  pc 0000000000462d5c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.app.SharedPreferencesImpl$2.run+140)
  #00  pc 000000000045227c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.app.QueuedWork.processPendingWork+588)
  #00  pc 00000000005aaa18  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.app.QueuedWork$QueuedWorkHandler.handleMessage+56)
  #00  pc 00000000007e400c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.Handler.dispatchMessage+188)
  #00  pc 00000000007e726c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.Looper.loopOnce+1036)
  #00  pc 00000000007e6dc4  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.Looper.loop+516)
  #00  pc 00000000007e6050  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.HandlerThread.run+560)
  #00  pc 00000000002cdd64  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
  #00  pc 0000000000317fb0  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156)
  #00  pc 00000000003cc480  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+380)
  #00  pc 000000000045eff0  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+992)
  #00  pc 00000000000b6e44  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
  #00  pc 0000000000053454  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68)

I tried symbolizing these stack traces using the 776efd2 android_arm64_release engine binaries from the 2.10.0 branch, but I still can't parse these stack traces.

The output of flutter doctor -v:

[✓] Flutter (Channel stable, 2.10.0, on macOS 11.6 20G165 darwin-x64, locale zh-Hans-CN)
    • Flutter version 2.10.0 at /Users/venus/fvm/versions/2.10.0
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 5f105a6ca7 (6 weeks ago), 2022-02-01 14:15:42 -0800
    • Engine revision 776efd2034
    • Dart version 2.16.0
    • DevTools version 2.9.2
    • Pub download mirror https://pub.flutter-io.cn/
    • Flutter download mirror https://storage.flutter-io.cn/

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/venus/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

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

[✓] Android Studio (version 2020.3)
    • 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 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.62.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 99.0.4844.51
    ! Error: iPhone is not connected. Xcode will continue when iPhone is connected. (code -13)
    ! Error: iPhone8😍 is not connected. Xcode will continue when iPhone8😍 is connected. (code -13)
    ! Error: iphoneX😂 is not connected. Xcode will continue when iphoneX😂 is connected. (code -13)

[!] HTTP Host Availability
    ✗ HTTP host https://maven.google.com/ is not reachable. Reason: An error occurred while checking the HTTP host: Operation timed out

! Doctor found issues in 2 categories.
@Howard2595
Copy link
Author

@flutter-symbolizer-bot android arm64 release

@flutter-symbolizer-bot
Copy link

@Howard2595 Sorry, only public members of Flutter org can trigger my services.

Check your privacy settings as described here.

@darshankawar darshankawar added the in triage Presently being triaged by the triage team label Mar 15, 2022
@darshankawar
Copy link
Member

@Howard2595
Looking at the stack trace, it seems to be same as #98354 and original issue seems to be #98155 which was fixed as part of this PR: flutter/engine#31390
The fix seems to be cherry picked in 2.10 version. You are on 2.10.0 but current latest is 2.10.3. Upgrading to latest stable should hopefully fix the issue for you.

I am going ahead and closing this as already fixed. After upgrading if you still get same error, write in comments and I'll reopen it.

@darshankawar darshankawar added r: fixed Issue is closed as already fixed in a newer version and removed in triage Presently being triaged by the triage team labels Mar 15, 2022
@Howard2595
Copy link
Author

Howard2595 commented Mar 15, 2022

Hi @darshankawar, Thanks for your reply. Regarding this issue, I will try to upgrade the flutter version to 2.10.3, but I have a curious question:

I tried symbolizing these stack traces using the 776efd2 android_arm64_release engine binaries from the 2.10.0 branch, but I still can't parse these stack traces.

What's the reason for this?

Thanks again for your reply.

@mraleph
Copy link
Member

mraleph commented Mar 15, 2022

@Howard2595 some android versions have bugs in libunwindstack which result in slightly incorrect addresses printed in stack traces. Try to offset all PC values by 0x1000 and symbolize again.

@mraleph
Copy link
Member

mraleph commented Mar 15, 2022

@flutter-symbolizer-bot android arm64 release

@flutter-symbolizer-bot
Copy link

crash from #100104 (comment) symbolized using symbols for 776efd2034d50af73e2876d703213601df384e88 android-arm64-release

#00 0000000000051010 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
#01 0000000000052db4 /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+124)
#02 00000000000b4004 /apex/com.android.runtime/lib64/bionic/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*, char const*)+60)
#03 00000000000b3e2c /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+176)
#04 00000000002fc424 <...>/split_config.arm64_v8a.apk!libflutter.so 
                                                                    std::__1::__libcpp_mutex_lock(pthread_mutex_t*)
                                                                    third_party/libcxx/include/__threading_support:257:10
                                                                    std::__1::mutex::lock()
                                                                    third_party/libcxx/src/mutex.cpp:33:14
#05 0000000000300ae0 <...>/split_config.arm64_v8a.apk!libflutter.so 
                                                                    std::__1::scoped_lock<std::__1::mutex>::scoped_lock(std::__1::mutex&)
                                                                    third_party/libcxx/include/mutex:499:27
                                                                    fml::MessageLoopTaskQueues::GetInstance()
                                                                    flutter/fml/message_loop_task_queues.cc:51:20
#06 00000000006113c8 <...>/split_config.arm64_v8a.apk!libflutter.so 
                                                                    flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3::operator()(std::__1::function<void ()>) const
                                                                    flutter/runtime/dart_isolate.cc:415:24
                                                                    decltype(std::__1::forward<flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3&>(fp)(std::__1::forward<std::__1::function<void ()> >(fp0))) std::__1::__invoke<flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3&, std::__1::function<void ()> >(flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3&, std::__1::function<void ()>&&)
                                                                    third_party/libcxx/include/type_traits:3530:1
                                                                    void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3&, std::__1::function<void ()> >(flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3&, std::__1::function<void ()>&&)
                                                                    third_party/libcxx/include/__functional_base:348:9
                                                                    std::__1::__function::__alloc_func<flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3, std::__1::allocator<flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3>, void (std::__1::function<void ()>)>::operator()(std::__1::function<void ()>&&)
                                                                    third_party/libcxx/include/functional:1533:16
                                                                    std::__1::__function::__func<flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3, std::__1::allocator<flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3>, void (std::__1::function<void ()>)>::operator()(std::__1::function<void ()>&&)
                                                                    third_party/libcxx/include/functional:1707:12
#07 0000000000560724 <...>/split_config.arm64_v8a.apk!libflutter.so 
                                                                    std::__1::function<void (std::__1::function<void ()>)>::operator()(std::__1::function<void ()>) const
                                                                    third_party/libcxx/include/functional:2419:12
                                                                    tonic::DartMessageHandler::OnMessage(tonic::DartState*)
                                                                    flutter/third_party/tonic/dart_message_handler.cc:40:3
                                                                    tonic::DartMessageHandler::MessageNotifyCallback(_Dart_Isolate*)
                                                                    flutter/third_party/tonic/dart_message_handler.cc:146:33
#08 00000000006bfaf0 <...>/split_config.arm64_v8a.apk!libflutter.so 
                                                                    dart::PortMap::PostMessage(std::__1::unique_ptr<dart::Message, std::__1::default_delete<dart::Message> >, bool)
                                                                    third_party/dart/runtime/vm/port.cc:219:12
#09 0000000000795c70 <...>/split_config.arm64_v8a.apk!libflutter.so 
                                                                    dart::PostCObjectHelper(long, _Dart_CObject*)
                                                                    third_party/dart/runtime/vm/native_api_impl.cc:56:10
                                                                    Dart_PostCObject
                                                                    third_party/dart/runtime/vm/native_api_impl.cc:60:10
#10 00000000005daecc <...>/split_config.arm64_v8a.apk!libflutter.so 
                                                                    dart::bin::DartUtils::PostNull(long)
                                                                    third_party/dart/runtime/bin/dartutils.cc:639:10
                                                                    dart::bin::EventHandlerImplementation::HandleTimeout()
                                                                    third_party/dart/runtime/bin/eventhandler_android.cc:371:7
                                                                    dart::bin::EventHandlerImplementation::Poll(unsigned long)
                                                                    third_party/dart/runtime/bin/eventhandler_android.cc:399:21
#11 000000000060f114 <...>/split_config.arm64_v8a.apk!libflutter.so 
                                                                    dart::bin::ThreadStart(void*)
                                                                    third_party/dart/runtime/bin/thread_android.cc:96:3
#12 00000000000b2fd0 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
#13 0000000000052834 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

crash from #100104 (comment) symbolized using symbols for 776efd2034d50af73e2876d703213601df384e88 android-arm64-release

#00 0000000000051b20 /apex/com.android.runtime/lib64/bionic/libc.so (abort+168)
#01 0000000000053a68 /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+128)
#02 00000000000b7f5c /apex/com.android.runtime/lib64/bionic/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*, char const*)+68)
#03 00000000000b7d70 /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+188)
#04 0000000000095728 /apex/com.android.art/lib64/libc++.so (std::__1::mutex::lock()+8)
#05 0000000000001144 /apex/com.android.art/lib64/libandroidio.so (async_close_monitor_create+36)
#06 000000000002f098 /apex/com.android.art/lib64/libjavacore.so (Linux_writeBytes(_JNIEnv*, _jobject*, _jobject*, _jobject*, int, int)+144)
#07 0000000000012224 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (art_jni_trampoline+148)
#08 000000000004fba4 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (libcore.io.ForwardingOs.write+660)
#09 0000000000029430 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (libcore.io.IoBridge.write+192)
#10 0000000000325354 /apex/com.android.art/javalib/arm64/boot.oat (java.io.FileOutputStream.write+164)
#11 0000000000b5faec /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (com.android.internal.util.FastXmlSerializer.flush+652)
#12 0000000000b6e288 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (com.android.internal.util.XmlUtils.writeMapXml+616)
#13 00000000005b1664 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.app.SharedPreferencesImpl.writeToFile+1188)
#14 0000000000462d5c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.app.SharedPreferencesImpl$2.run+140)
#15 000000000045227c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.app.QueuedWork.processPendingWork+588)
#16 00000000005aaa18 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.app.QueuedWork$QueuedWorkHandler.handleMessage+56)
#17 00000000007e400c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.Handler.dispatchMessage+188)
#18 00000000007e726c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.Looper.loopOnce+1036)
#19 00000000007e6dc4 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.Looper.loop+516)
#20 00000000007e6050 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.HandlerThread.run+560)
#21 00000000002cdd64 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#22 0000000000317fb0 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156)
#23 00000000003cc480 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+380)
#24 000000000045eff0 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+992)
#25 00000000000b6e44 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
#26 0000000000053454 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68)

@mraleph
Copy link
Member

mraleph commented Mar 15, 2022

@Howard2595 the bot seems to symbolize it correctly into something meaningful.

you can see the comment here which explains why manual symbolization might produce nonsense results.

@Howard2595
Copy link
Author

Hi @mraleph, Thanks for your reply.
I'm very sorry that I won't calculate the offset of the 'PC value', But can I understand it this way. There is an offset in the printed PC value of Android 12, which makes it impossible to symbolize something meaningful.

Thanks again for your reply.

@github-actions
Copy link

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.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 29, 2022
@eggfly eggfly reopened this May 11, 2022
@eggfly
Copy link
Member

eggfly commented May 11, 2022

We are also facing this crash problem.
If there's a exit() in flutter code, and all static variables will be destroyed when calling at_exit() hook function which I think it's generated by compiler.

A static lock variable called creation_mutex_ will be acquired in MessageLoopQueue::GetInstance(), this lock is only used to create the MessageLoopQueue singleton.
origin_img_v2_c5b21d75-53c1-46d3-8bc6-a4c12f9e026g

r7cYcWC5W6

I think we can use c++ 11 double-checked-locking and remove this global lock:
double-checked-locking

image

@houhuayong

@darshankawar darshankawar added in triage Presently being triaged by the triage team and removed r: fixed Issue is closed as already fixed in a newer version labels May 12, 2022
@darshankawar
Copy link
Member

Labeling it for further investigation based on above report and symbolicated crash log.

@darshankawar darshankawar added c: crash Stack traces logged to the console platform-android Android applications specifically a: production Issues experienced in live production apps needs repro info Automated crash report whose cause isn't yet known engine flutter/engine repository. See also e: labels. and removed in triage Presently being triaged by the triage team labels May 12, 2022
@chinmaygarde
Copy link
Member

AFAIK, there is no exit in Flutter code. But if there is one in native components or a plugin, there is nothing Flutter can do to sidestep this. The double checked locking (which may still be the right thing to do) will not remove the need for the mutex.

@darshankawar darshankawar added the r: invalid Issue is closed as not valid label May 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a: production Issues experienced in live production apps c: crash Stack traces logged to the console engine flutter/engine repository. See also e: labels. needs repro info Automated crash report whose cause isn't yet known platform-android Android applications specifically r: invalid Issue is closed as not valid
Projects
None yet
Development

No branches or pull requests

6 participants