Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

MonkeyRunner native crash #10439

Closed
tobrun opened this issue Nov 10, 2017 · 7 comments
Closed

MonkeyRunner native crash #10439

tobrun opened this issue Nov 10, 2017 · 7 comments
Labels
Android Mapbox Maps SDK for Android

Comments

@tobrun
Copy link
Member

tobrun commented Nov 10, 2017

Was able to hit the following (symbolicated) native crash:

********** Crash dump: **********
Build fingerprint: 'samsung/j3xltejt/j3xlte:5.1.1/LMY47V/J320FXXU0AQG2:user/release-keys'
pid: 21835, tid: 22640, name: GLThread 6265  >>> com.mapbox.mapboxsdk.testapp <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3fc00a78
Stack frame #00 pc 001d0094  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine std::__ndk1::__bucket_list_deallocator<std::__ndk1::allocator<std::__ndk1::__hash_node_base<std::__ndk1::__hash_node<std::__ndk1::__hash_value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::experimental::fundamentals_v1::optional<mbgl::style::conversion::Error> (*)(mbgl::style::Layer&, mbgl::android::Value const&)>, void*>*>*> >::size() const at /usr/local/opt/android-sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/include/__hash_table:815
Stack frame #01 pc 0033df21  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine std::__ndk1::unordered_map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::unique_ptr<mbgl::RenderLayer, std::__ndk1::default_delete<mbgl::RenderLayer> >, std::__ndk1::hash<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::equal_to<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::unique_ptr<mbgl::RenderLayer, std::__ndk1::default_delete<mbgl::RenderLayer> > > > >::find(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&) const at /usr/local/opt/android-sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/include/unordered_map:1104
Stack frame #02 pc 0033dbed  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine mbgl::Renderer::Impl::queryRenderedFeatures(mapbox::geometry::line_string<double, std::__ndk1::vector> const&, mbgl::RenderedQueryOptions const&) const at /Users/Nurbot/mapbox-gl-native/src/mbgl/renderer/renderer_impl.cpp:622
Stack frame #03 pc 0032f739  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine mbgl::Renderer::queryRenderedFeatures(mapbox::geometry::box<double> const&, mbgl::RenderedQueryOptions const&) const at /Users/Nurbot/mapbox-gl-native/src/mbgl/renderer/renderer.cpp:44
Stack frame #04 pc 0032fb41  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine mbgl::Renderer::queryPointAnnotations(mapbox::geometry::box<double> const&) const at /Users/Nurbot/mapbox-gl-native/src/mbgl/renderer/renderer.cpp:59
Stack frame #05 pc 004af579  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine std::__ndk1::vector<unsigned int, std::__ndk1::allocator<unsigned int> > mbgl::AskMessageImpl<std::__ndk1::vector<unsigned int, std::__ndk1::allocator<unsigned int> >, mbgl::Renderer, std::__ndk1::vector<unsigned int, std::__ndk1::allocator<unsigned int> > (mbgl::Renderer::*)(mapbox::geometry::box<double> const&) const, std::__ndk1::tuple<mapbox::geometry::box<double> > >::ask<0u>(std::__ndk1::integer_sequence<unsigned int, 0u>) at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../include/mbgl/actor/message.hpp:58
Stack frame #06 pc 004af4d1  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine mbgl::AskMessageImpl<std::__ndk1::vector<unsigned int, std::__ndk1::allocator<unsigned int> >, mbgl::Renderer, std::__ndk1::vector<unsigned int, std::__ndk1::allocator<unsigned int> > (mbgl::Renderer::*)(mapbox::geometry::box<double> const&) const, std::__ndk1::tuple<mapbox::geometry::box<double> > >::operator()() at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../include/mbgl/actor/message.hpp:53
Stack frame #07 pc 0031ed93  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine mbgl::Mailbox::receive() at /Users/Nurbot/mapbox-gl-native/src/mbgl/actor/mailbox.cpp:58
Stack frame #08 pc 0031efbf  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine mbgl::Mailbox::maybeReceive(std::__ndk1::weak_ptr<mbgl::Mailbox>) at /Users/Nurbot/mapbox-gl-native/src/mbgl/actor/mailbox.cpp:67
Stack frame #09 pc 00114e81  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine mbgl::android::MapRendererRunnable::run(_JNIEnv&) at /Users/Nurbot/mapbox-gl-native/platform/android/src/map_renderer_runnable.cpp:21
Stack frame #10 pc 00116553  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine operator() at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:245
Stack frame #11 pc 001164e9  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine operator() at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:112
Stack frame #12 pc 001164b1  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine __invoke at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:110
Stack frame #13 pc 001165dd  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine operator()<jni::jobject *> at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:59
Stack frame #14 pc 0011659d  /data/app/com.mapbox.mapboxsdk.testapp-3/lib/arm/libmapbox-gl.so: Routine __invoke<jni::jobject *> at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:55
Stack frame #15 pc 0023ac87  /data/dalvik-cache/arm/data@[email protected]@[email protected]

cc @ivovandongen

@tobrun tobrun added the Android Mapbox Maps SDK for Android label Nov 10, 2017
@tobrun
Copy link
Member Author

tobrun commented Nov 10, 2017

Another crash, this time not queryRenderedFeatures but queryShapeAnnotations:

********** Crash dump: **********
Build fingerprint: 'samsung/j3xltejt/j3xlte:5.1.1/LMY47V/J320FXXU0AQG2:user/release-keys'
pid: 13843, tid: 14408, name: GLThread 2512  >>> com.mapbox.mapboxsdk.testapp <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xee1dcf70
Stack frame #00 pc 0033fa6a  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine std::__ndk1::vector<mbgl::Immutable<mbgl::style::Layer::Impl>, std::__ndk1::allocator<mbgl::Immutable<mbgl::style::Layer::Impl> > >::begin() const at /usr/local/opt/android-sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/include/vector:1468
Stack frame #01 pc 0033025d  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine mbgl::Renderer::queryShapeAnnotations(mapbox::geometry::box<double> const&) const at /Users/Nurbot/mapbox-gl-native/src/mbgl/renderer/renderer.cpp:64
Stack frame #02 pc 004af579  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine std::__ndk1::vector<unsigned int, std::__ndk1::allocator<unsigned int> > mbgl::AskMessageImpl<std::__ndk1::vector<unsigned int, std::__ndk1::allocator<unsigned int> >, mbgl::Renderer, std::__ndk1::vector<unsigned int, std::__ndk1::allocator<unsigned int> > (mbgl::Renderer::*)(mapbox::geometry::box<double> const&) const, std::__ndk1::tuple<mapbox::geometry::box<double> > >::ask<0u>(std::__ndk1::integer_sequence<unsigned int, 0u>) at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../include/mbgl/actor/message.hpp:58
Stack frame #03 pc 004af4d1  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine mbgl::AskMessageImpl<std::__ndk1::vector<unsigned int, std::__ndk1::allocator<unsigned int> >, mbgl::Renderer, std::__ndk1::vector<unsigned int, std::__ndk1::allocator<unsigned int> > (mbgl::Renderer::*)(mapbox::geometry::box<double> const&) const, std::__ndk1::tuple<mapbox::geometry::box<double> > >::operator()() at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../include/mbgl/actor/message.hpp:53
Stack frame #04 pc 0031ed93  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine mbgl::Mailbox::receive() at /Users/Nurbot/mapbox-gl-native/src/mbgl/actor/mailbox.cpp:58
Stack frame #05 pc 0031efbf  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine mbgl::Mailbox::maybeReceive(std::__ndk1::weak_ptr<mbgl::Mailbox>) at /Users/Nurbot/mapbox-gl-native/src/mbgl/actor/mailbox.cpp:67
Stack frame #06 pc 00114e81  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine mbgl::android::MapRendererRunnable::run(_JNIEnv&) at /Users/Nurbot/mapbox-gl-native/platform/android/src/map_renderer_runnable.cpp:21
Stack frame #07 pc 00116553  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine operator() at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:245
Stack frame #08 pc 001164e9  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine operator() at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:112
Stack frame #09 pc 001164b1  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine __invoke at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:110
Stack frame #10 pc 001165dd  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine operator()<jni::jobject *> at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:59
Stack frame #11 pc 0011659d  /data/app/com.mapbox.mapboxsdk.testapp-1/lib/arm/libmapbox-gl.so: Routine __invoke<jni::jobject *> at /Users/Nurbot/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:55
Stack frame #12 pc 0023ac67  /data/dalvik-cache/arm/data@[email protected]@[email protected]

update: hit this twice

@ivovandongen
Copy link
Contributor

@tobrun Did the logs leave you with a little more context as to when did happened? Did executing again with the same seeds lead to the same outcome?

@tobrun
Copy link
Member Author

tobrun commented Nov 10, 2017

Here is a log that lead up to a crash. It shows just before crashing that the network information changed. re. seed: been trying to reproduce with: 1510658755384. Sometimes it crashes after 8770 events, sometimes after 15959 events.

Update: another log, no indication of network changes there.

@lilykaiser
Copy link

Can this be closed?

@tobrun
Copy link
Member Author

tobrun commented Nov 20, 2017

this issue hasn't been resolved yet

@tobrun
Copy link
Member Author

tobrun commented Nov 30, 2017

Been doing some additional monkey tests, my current theory is that this crash shows when we are querying the map and at the same time are destroying the MapView.

eg. we are waiting for result as below while the map is being destroyed:

    // Waits for the result from the orchestration thread and returns
    return mapRenderer.actor().ask(&Renderer::queryPointAnnotations, box).get();

When I disable integration of queryPointAnnotations and queryShapeAnnotations, I'm unable to reproduce the crash (we are currently hooking into these api's as part of a motion up event to determine if a annotation is clicked).

@ivovandongen does above make any sense? would there be a way to handle this more cleanly?

@tobrun
Copy link
Member Author

tobrun commented Mar 14, 2018

Been running additional tests on release-boba, not able to reproduce anymore.

@tobrun tobrun closed this as completed Mar 14, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Android Mapbox Maps SDK for Android
Projects
None yet
Development

No branches or pull requests

3 participants