Maps: [Android] Crash on zoom / moving on Android 5.1.1

Created on 17 Sep 2019  Â·  13Comments  Â·  Source: react-native-mapbox-gl/maps

Describe the bug
The app crashes (in native) while using pinch zoom by fingers or flyTo with Camera component.

To Reproduce

  1. Clone this repo.
  2. Launch the app on Xiaomi Redmi 3 ( Android 5.1.1 Lollipop, SDK 22 )
  3. Open screen with a map
  4. Try to zoom.

device-2019-09-17-165654

Expected behavior
Map shouldn't cause crash.

Versions:

  • Platfrom: Android
  • Device: Xiaomi Redmi 3
  • OS: Android 5.1.1 Lollipop
  • SDK Version: 22
  • React Native Version: 0.60.5

    • react-native-mapbox-gl/maps version: 7.0.4

Additional context
Android Studio logs

09-17 15:36:44.348 32434-514/** v A/libc: invalid address or address of corrupt block 0x559185f770 passed to dlfree
09-17 15:36:44.348 32434-514/88 A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xdeadbaad in tid 514 (Thread-3535)


09-17 15:53:48.698 380-380/? I/DEBUG: Build fingerprint: 'Xiaomi/ido/ido:5.1.1/LMY47V/V9.6.2.0.LAIMIFD:user/release-keys'
09-17 15:53:48.698 380-380/? I/DEBUG: Revision: '0'
09-17 15:53:48.698 380-380/? I/DEBUG: ABI: 'arm64'
09-17 15:53:48.708 380-380/? I/DEBUG: pid: 2030, tid: 2814, name: Thread-3650  >>>  <<<
09-17 15:53:48.708 380-380/? I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xdeadbaad
09-17 15:53:48.768 380-380/? I/DEBUG: Abort message: 'invalid address or address of corrupt block 0x55940ebd20 passed to dlfree'
09-17 15:53:48.768 380-380/? I/DEBUG:     x0   10d72f25d67642ad  x1   0000007f82505668  x2   0000000000000000  x3   00000000007f7441
09-17 15:53:48.768 380-380/? I/DEBUG:     x4   0000000000000000  x5   00000000deadbaad  x6   0000000000000000  x7   0000000000000010
09-17 15:53:48.768 380-380/? I/DEBUG:     x8   7f7f7f7f7f7f7f7f  x9   6471656b631f6e73  x10  7f7f7f7f7f7f7f7f  x11  10d72f25d67642ad
09-17 15:53:48.768 380-380/? I/DEBUG:     x12  0000000000000001  x13  10d72f25d67642ad  x14  00000000ffffffd8  x15  00000000000003c7
09-17 15:53:48.768 380-380/? I/DEBUG:     x16  0000007f491df290  x17  0000000000000001  x18  0000000000000000  x19  00000055940ebd20
09-17 15:53:48.768 380-380/? I/DEBUG:     x20  0000007f822ba000  x21  00000055940ebd30  x22  0000007f822baed0  x23  0000005594950610
09-17 15:53:48.768 380-380/? I/DEBUG:     x24  00000000080100fc  x25  0000000000000000  x26  0000000000000000  x27  0000000000002240
09-17 15:53:48.768 380-380/? I/DEBUG:     x28  000000559352b878  x29  0000007f491df290  x30  0000007f82259aa0
09-17 15:53:48.768 380-380/? I/DEBUG:     sp   0000007f491df290  pc   0000007f82259aa8  pstate 0000000060000000
09-17 15:53:48.768 380-380/? I/DEBUG: backtrace:
09-17 15:53:48.768 380-380/? I/DEBUG:     #00 pc 0000000000040aa8  /system/lib64/libc.so (dlfree+408)
09-17 15:53:48.768 380-380/? I/DEBUG:     #01 pc 0000000000013380  /system/lib64/libc.so (free+20)
09-17 15:53:48.768 380-380/? I/DEBUG:     #02 pc 00000000000d9d50  /system/vendor/lib64/egl/libGLESv2_adreno.so (rb_delete_detach_vbo_list+96)
09-17 15:53:48.768 380-380/? I/DEBUG:     #03 pc 00000000000e0008  /system/vendor/lib64/egl/libGLESv2_adreno.so (rb_perform_resolve+384)
09-17 15:53:48.768 380-380/? I/DEBUG:     #04 pc 00000000000e0488  /system/vendor/lib64/egl/libGLESv2_adreno.so (rb_resolve+524)
09-17 15:53:48.768 380-380/? I/DEBUG:     #05 pc 00000000000e91e4  /system/vendor/lib64/egl/libGLESv2_adreno.so (rb_surface_swap+204)
09-17 15:53:48.768 380-380/? I/DEBUG:     #06 pc 00000000000b4af0  /system/vendor/lib64/egl/libGLESv2_adreno.so (gl2_surface_swap+144)
09-17 15:53:48.768 380-380/? I/DEBUG:     #07 pc 000000000009c000  /system/vendor/lib64/egl/libGLESv2_adreno.so (oglSwapBuffer+148)
09-17 15:53:48.768 380-380/? I/DEBUG:     #08 pc 00000000000148c0  /system/vendor/lib64/egl/libEGL_adreno.so (qeglDrvAPI_eglSwapBuffers+1864)
09-17 15:53:48.768 380-380/? I/DEBUG:     #09 pc 00000000000098a8  /system/vendor/lib64/egl/libEGL_adreno.so (eglSwapBuffers+16)
09-17 15:53:48.768 380-380/? I/DEBUG:     #10 pc 0000000000027af8  /system/lib64/libEGL.so (eglSwapBuffers+168)
09-17 15:53:48.768 380-380/? I/DEBUG:     #11 pc 0000000000093dec  /system/lib64/libandroid_runtime.so
09-17 15:53:48.778 380-380/? I/DEBUG:     #12 pc 0000000000d46160  /data/dalvik-cache/arm64/system@[email protected]
09-17 15:53:49.248 390-390/? V/WLAN_PSA: NL MSG, len[4093], NL type[0x1C] WNI type[0x5900] len[58639]
09-17 15:53:49.248 390-390/? V/WLAN_PSA: NL MSG, PID: 390
09-17 15:53:49.338 4020-4020/? I/ServiceManager: Waiting for service goodix.fp...
09-17 15:53:50.338 4020-4020/? D/FingerGoodix: go into while FingerPrint,getFingerPrintService()
09-17 15:53:50.778 2347-3345/? E/NativeCrashListener: Exception dealing with report
    android.system.ErrnoException: read failed: EAGAIN (Try again)
        at libcore.io.Posix.readBytes(Native Method)
        at libcore.io.Posix.read(Posix.java:165)
        at libcore.io.BlockGuardOs.read(BlockGuardOs.java:230)
        at android.system.Os.read(Os.java:350)
        at com.android.server.am.NativeCrashListener.consumeNativeCrashData(NativeCrashListener.java:240)
        at com.android.server.am.NativeCrashListener.run(NativeCrashListener.java:138)
wontfix

Most helpful comment

Great. Keeping this ticket open so we can monitor upstream status. Once a release is available with a fix, we’ll grab the updated versions and publish here as well.

All 13 comments

Can you repro in the example app or build a new example that forces this crash?

Can you repro in the example app or build a new example that forces this crash?

@kristfal Sure! Repo with a clean project is attached. Also I've added gif with the steps to reproduce.
Unfortunately I didn't manage to get the crash on emulator. Just on real device.

Thanks, I gave this a go. My steps:

1) Clone repo
2) npm install
3) cd android/app && keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 && cd ../../
4) react-native run-android
5) Pinch zoom and navigate around the map for a few minutes

I was unable to generate any crashes on a range of Samsung and Motorola devices.

I also have a feeling that this issue may be an underlying GL issue in the native android SDK, given the stacktrace (eglSwapBuffers, gl2_surface_swap) and not an issue with the react native wrapper itself. As such, I suggest you do the following:

1) File the bug report upstream with a link back to this issue
2) Also add a comment here with a link to this issue and the new issue created at the upstream repo

Thanks @kristfal!
I've followed to your suggestions!

Great. Keeping this ticket open so we can monitor upstream status. Once a release is available with a fix, we’ll grab the updated versions and publish here as well.

I've same issue, hope for a fix :(

Versions:

Platfrom: Android
Device: Honor 5X
OS: Android 5.1.1 Lollipop
SDK Version: 28
React Native Version: 0.59.10
react-native-mapbox-gl/maps version: 7.0.5 (tested with 7.0.3/7.0.4/7.0.5/7.0.6)

Please post full crash logs in the upstream tickets. This is an issue with
the core android SDK and not the RN wrapper.

On Thu, 3 Oct 2019 at 10:22, Index Languedoc notifications@github.com
wrote:

I've same issue, hope for a fix :(

Versions:

Platfrom: Android
Device: Honor 5X
OS: Android 5.1.1 Lollipop
SDK Version: 28
React Native Version: 0.59.10
react-native-mapbox-gl/maps version: 7.0.5 (tested with
7.0.3/7.0.4/7.0.5/7.0.6)

—
You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub
https://github.com/react-native-mapbox-gl/maps/issues/388?email_source=notifications&email_token=ABLAPW2EFPIENDIOT4S34RTQMWTSLA5CNFSM4IXPSOUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAHM7UA#issuecomment-537841616,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLAPW7IOUJVIEQLQEXZAGDQMWTSLANCNFSM4IXPSOUA
.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Not stale.

Hello, @kristfal!

Fixed in https://github.com/mapbox/mapbox-gl-native/pull/15978.
Could we update dependencies?

Hello, @kristfal!

Fixed in mapbox/mapbox-gl-native#1597.
Could we update dependencies?

@tr3v3r Is 1597 the correct issue ?!
The title says: Move addition of "events=true" parameter to FileSource implementation

Hello, @kristfal!
Fixed in mapbox/mapbox-gl-native#1597.
Could we update dependencies?

@tr3v3r Is 1597 the correct issue ?!
The title says: Move addition of "events=true" parameter to FileSource implementation

Sorry, I've missed "8" at the end ;) Corrected

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dorthwein picture dorthwein  Â·  3Comments

arnaudambro picture arnaudambro  Â·  5Comments

MariaSyed picture MariaSyed  Â·  4Comments

atomheartother picture atomheartother  Â·  3Comments

calypsow777 picture calypsow777  Â·  5Comments