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

[Bug] Fatal signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x74ff2c183d in tid 3613 (mqt_js), pid 3455 #88

Closed
NguyenPhatBG opened this issue Jun 30, 2021 · 21 comments · Fixed by #108

Comments

@NguyenPhatBG
Copy link

NguyenPhatBG commented Jun 30, 2021

Describe the bug
Crash on Android devices

To Reproduce
Steps to reproduce the behavior:
iOS build and archive fine, but android crash

Platform Information:
"react": "17.0.2",
"react-native": "0.64.2",
"react-native-reanimated": "^2.2.0",
"@react-navigation/native": "^5.9.4",
"react-native-mmkv": "^1.1.6",

I get same issue in here: ammarahm-ed/react-native-mmkv-storage#129

@sauldom102
Copy link

sauldom102 commented Jul 8, 2021

Happening to me as well, I'm using reanimated too

@mrousavy
Copy link
Owner

mrousavy commented Jul 8, 2021

Did you guys follow the installation guide with the steps mentioned in "With react-native-reanimated"?

@mrousavy
Copy link
Owner

mrousavy commented Jul 8, 2021

Also please paste the full logs from Logcat.

@sauldom102
Copy link

sauldom102 commented Jul 8, 2021

Yeah @mrousavy, I can confirm I follow it, here's the log:

2021-07-08 16:51:32.366 10900-10949/com.[appname]A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x2 in tid 10949 (create_react_co), pid 10900 (com.[appname])
2021-07-08 16:51:32.430 10964-10964/? I/crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
2021-07-08 16:51:32.435 294-294/? I/tombstoned: received crash request for pid 10949
2021-07-08 16:51:32.436 10964-10964/? I/crash_dump32: performing dump of process 10900 (target tid = 10949)
2021-07-08 17:02:45.836 11233-11233/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2021-07-08 17:02:45.837 11233-11233/? A/DEBUG: Build fingerprint: 'google/sdk_gphone_x86/generic_x86_arm:11/RSR1.201013.001/6903271:user/release-keys'
2021-07-08 17:02:45.837 11233-11233/? A/DEBUG: Revision: '0'
2021-07-08 17:02:45.837 11233-11233/? A/DEBUG: ABI: 'x86'
2021-07-08 17:02:45.838 11233-11233/? A/DEBUG: Timestamp: 2021-07-08 17:02:45+0200
2021-07-08 17:02:45.838 11233-11233/? A/DEBUG: pid: 11150, tid: 11219, name: create_react_co  >>> com.[appname]<<<
2021-07-08 17:02:45.838 11233-11233/? A/DEBUG: uid: 10154
2021-07-08 17:02:45.838 11233-11233/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x2
2021-07-08 17:02:45.838 11233-11233/? A/DEBUG: Cause: null pointer dereference
2021-07-08 17:02:45.838 11233-11233/? A/DEBUG:     eax 00000002  ebx b93be7a4  ecx b4e48080  edx cbb05cb0
2021-07-08 17:02:45.838 11233-11233/? A/DEBUG:     edi b8ee1f48  esi b8ee1df8
2021-07-08 17:02:45.838 11233-11233/? A/DEBUG:     ebp b8ee1d78  esp b8ee1cf0  eip b9395530
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG: backtrace:
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #00 pc 00029530  /data/app/~~xuyjjJh9B-XqWQKxJKVnfg==/com.[appname]-RNkEpkNGzWHcWH_WgEfosQ==/lib/x86/libjscexecutor.so (facebook::jsc::JSCRuntime::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned int)+64) (BuildId: 9936fd5c341ebf5342246989b2b034b4ffd6d3c0)
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #01 pc 0004171e  /data/app/~~xuyjjJh9B-XqWQKxJKVnfg==/com.[appname]-RNkEpkNGzWHcWH_WgEfosQ==/lib/x86/libmmkvnative.so (facebook::jsi::Function::createFromHostFunction(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&, unsigned int, std::__ndk1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned int)>)+190) (BuildId: 97965e4d43a9f318f740dbd6d2008c7e204ffec4)
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #02 pc 0004099b  /data/app/~~xuyjjJh9B-XqWQKxJKVnfg==/com.[appname]-RNkEpkNGzWHcWH_WgEfosQ==/lib/x86/libmmkvnative.so (install(facebook::jsi::Runtime&)+171) (BuildId: 97965e4d43a9f318f740dbd6d2008c7e204ffec4)
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #03 pc 000426e0  /data/app/~~xuyjjJh9B-XqWQKxJKVnfg==/com.[appname]-RNkEpkNGzWHcWH_WgEfosQ==/lib/x86/libmmkvnative.so (Java_com_reactnativemmkv_MmkvModule_nativeInstall+208) (BuildId: 97965e4d43a9f318f740dbd6d2008c7e204ffec4)
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #04 pc 00142132  /apex/com.android.art/lib/libart.so (art_quick_generic_jni_trampoline+82) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #05 pc 0013baf2  /apex/com.android.art/lib/libart.so (art_quick_invoke_static_stub+418) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #06 pc 001d0392  /apex/com.android.art/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+258) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #07 pc 00386701  /apex/com.android.art/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+385) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #08 pc 0037aa3e  /apex/com.android.art/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1070) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #09 pc 007a4d2d  /apex/com.android.art/lib/libart.so (MterpInvokeStatic+637) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.001 11233-11233/? A/DEBUG:       #10 pc 00135921  /apex/com.android.art/lib/libart.so (mterp_op_invoke_static+33) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #11 pc 00000508  [anon:dalvik-classes22.dex extracted in memory from /data/app/~~xuyjjJh9B-XqWQKxJKVnfg==/com.[appname]-RNkEpkNGzWHcWH_WgEfosQ==/base.apk!classes22.dex] (com.reactnativemmkv.MmkvModule.install+8)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #12 pc 0036fb02  /apex/com.android.art/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16375758241455872412)+370) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #13 pc 00379c1f  /apex/com.android.art/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+207) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #14 pc 0037aa20  /apex/com.android.art/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1040) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #15 pc 007a4d2d  /apex/com.android.art/lib/libart.so (MterpInvokeStatic+637) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #16 pc 00135921  /apex/com.android.art/lib/libart.so (mterp_op_invoke_static+33) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #17 pc 000a42e4  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~xuyjjJh9B-XqWQKxJKVnfg==/com.[appname]-RNkEpkNGzWHcWH_WgEfosQ==/base.apk!classes2.dex] (com.[appname].[appname].getJSIModules+60)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #18 pc 007a355e  /apex/com.android.art/lib/libart.so (MterpInvokeInterface+2126) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #19 pc 001359a1  /apex/com.android.art/lib/libart.so (mterp_op_invoke_interface+33) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #20 pc 00377fc4  [anon:dalvik-classes.dex extracted in memory from /data/app/~~xuyjjJh9B-XqWQKxJKVnfg==/com.[appname]-RNkEpkNGzWHcWH_WgEfosQ==/base.apk] (com.facebook.react.ReactInstanceManager.createReactContext+212)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #21 pc 007a44ae  /apex/com.android.art/lib/libart.so (MterpInvokeDirect+1454) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #22 pc 001358a1  /apex/com.android.art/lib/libart.so (mterp_op_invoke_direct+33) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #23 pc 00377ed4  [anon:dalvik-classes.dex extracted in memory from /data/app/~~xuyjjJh9B-XqWQKxJKVnfg==/com.[appname]-RNkEpkNGzWHcWH_WgEfosQ==/base.apk] (com.facebook.react.ReactInstanceManager.access$1100)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #24 pc 007a505e  /apex/com.android.art/lib/libart.so (MterpInvokeStatic+1454) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.002 11233-11233/? A/DEBUG:       #25 pc 00135921  /apex/com.android.art/lib/libart.so (mterp_op_invoke_static+33) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #26 pc 003775f0  [anon:dalvik-classes.dex extracted in memory from /data/app/~~xuyjjJh9B-XqWQKxJKVnfg==/com.[appname]-RNkEpkNGzWHcWH_WgEfosQ==/base.apk] (com.facebook.react.ReactInstanceManager$5.run+140)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #27 pc 007a355e  /apex/com.android.art/lib/libart.so (MterpInvokeInterface+2126) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #28 pc 001359a1  /apex/com.android.art/lib/libart.so (mterp_op_invoke_interface+33) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #29 pc 000eb7d0  /apex/com.android.art/javalib/core-oj.jar (java.lang.Thread.run+8)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #30 pc 0036fb02  /apex/com.android.art/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16375758241455872412)+370) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #31 pc 00379b00  /apex/com.android.art/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+176) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #32 pc 0078b325  /apex/com.android.art/lib/libart.so (artQuickToInterpreterBridge+1061) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #33 pc 0014220d  /apex/com.android.art/lib/libart.so (art_quick_to_interpreter_bridge+77) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #34 pc 0013b922  /apex/com.android.art/lib/libart.so (art_quick_invoke_stub+338) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #35 pc 001d0381  /apex/com.android.art/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+241) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #36 pc 0062f37c  /apex/com.android.art/lib/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+620) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #37 pc 0062f595  /apex/com.android.art/lib/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+85) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #38 pc 00697701  /apex/com.android.art/lib/libart.so (art::Thread::CreateCallback(void*)+1537) (BuildId: 8191579dfafff37a5cbca70f9a73020f)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #39 pc 000e6974  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100) (BuildId: 6e3a0180fa6637b68c0d181c343e6806)
2021-07-08 17:02:46.003 11233-11233/? A/DEBUG:       #40 pc 00078567  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71) (BuildId: 6e3a0180fa6637b68c0d181c343e6806)
2021-07-08 17:02:46.469 294-294/? E/tombstoned: Tombstone written to: /data/tombstones/tombstone_08

@sauldom102
Copy link

Also, I added what you suggested here #37 which is key and missing in the docs

@NguyenPhatBG
Copy link
Author

@sauldom102 Did you successful now? I had try but not success =(

@mrousavy
Copy link
Owner

Can you guys confirm that react-native-mmkv v1.2.1 fixes the issue for you?

@dan-lee
Copy link

dan-lee commented Aug 2, 2021

@mrousavy Unfortunately it's not fixed in v1.2.1

@jbrodriguez
Copy link

I'm using reanimated 1.x, so I'm following the without reanimated instructions (https://github.com/mrousavy/react-native-mmkv/blob/master/INSTALL.md), also followed #37 (otherwise it didn't compile), but I'm still getting the error.

react-native-mmkv: 1.2.1

Build fingerprint: 'google/sdk_gphone_x86_arm/generic_x86_arm:11/RSR1.200819.001.A1/6823625:userdebug/dev-keys'
Revision: '0'
ABI: 'x86'
Timestamp: 2021-08-02 16:54:08-0500
pid: 13312, tid: 13501, name: create_react_co  >>> mx.com.topup <<<
uid: 10158
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x2
Cause: null pointer dereference
    eax 00000002  ebx b27ab7a4  ecx ae6a4000  edx c95a72b0
    edi b5d1bf48  esi b5d1bdf8
    ebp b5d1bd78  esp b5d1bcf0  eip b2782530

@mrousavy mrousavy reopened this Aug 3, 2021
@mrousavy
Copy link
Owner

mrousavy commented Aug 3, 2021

That's so weird. I reverted the MMKV bump commits, so it has to be one of those changes:

Reverting one of those must fix the issue 🤨

@jbrodriguez
Copy link

@mrousavy is there any way to test this ? did you publish a beta or similar ?

@mrousavy
Copy link
Owner

mrousavy commented Aug 5, 2021

Not yet, I'm very busy with work + RNEU right now. You can test this change yourself by cloning the repo and running the Example app, then revert those commits and see if it works

@jbrodriguez
Copy link

jbrodriguez commented Aug 5, 2021

@mrousavy I ran the Example app from the repo (after some hacking 😄) as you suggested and it works on android !!

So, I created a clean RN project, importing only react-native-mmkv and react-native-async-storage, to replicate the Example app and it crashes !!

This leads me to believe that there's something odd with the build process ??

I'm using 0.64.1 in this repro project, without reanimated, but I have another project running 0.64.1 with reanimated 2, react-native-mmkv 1.1.6 and it works 🤷‍♂️

This is the repro repo https://github.com/jbrodriguez/rnmmkv

Hopefully this helps figure out this issue ?

This lib is running in prod in my other project and it works awesomely, I'd love to use it in my new project as well.

If you have any other suggestions, let me know.

@jbrodriguez
Copy link

UPDATE: I downgraded to 1.1.6 in the repro project and it works.
So it definitely looks like one of the commits you mentioned is causing the issue.
I'll downgrade to 1.1.6 and apply this patch #108
Unfortunately, I won't be able to use the updated MMKV submodule.
I'll post back if I find any issue while doing the above

@mrousavy
Copy link
Owner

mrousavy commented Aug 6, 2021

Tried cleaning and rebuilding everything, does v1.2.2 work for you guys?

@jbrodriguez
Copy link

@mrousavy there's no android folder with this build

08:47 rnmmkv on  master [!] via  v16.5.0 took 2s 
❯ l node_modules/react-native-mmkv/
drwxr-xr-x    - jbrodriguez staff  6 Aug 08:47 -I ios
drwxr-xr-x    - jbrodriguez staff  6 Aug 08:38 -I lib
drwxr-xr-x    - jbrodriguez staff  6 Aug 08:47 -I node_modules
.rw-r--r--  22k jbrodriguez staff  6 Aug 08:38 -I LICENSE
.rw-r--r-- 3.8k jbrodriguez staff  6 Aug 08:38 -I package.json
.rw-r--r-- 1.0k jbrodriguez staff  6 Aug 08:38 -I react-native-mmkv.podspec
.rw-r--r-- 5.1k jbrodriguez staff  6 Aug 08:38 -I README.md

@mrousavy
Copy link
Owner

mrousavy commented Aug 9, 2021

Okay so sorry guys I had to publish a few version before I finally got it right. Take a look at v1.2.5 and let me know if that builds for you now.

@jbrodriguez
Copy link

@mrousavy thanks for working on this.

v1.2.5 does build for me, but it crashes at startup on Android as v1.2.1 did.

The crash log seems similar to before (attached)

Perhaps it does work for somebody else, and my crash is something about my setup

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

Cannot figure out the cause

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

Build fingerprint: 'google/sdk_gphone_x86_arm/generic_x86_arm:11/RSR1.200819.001.A1/6823625:userdebug/dev-keys'
Revision: '0'
ABI: 'x86'
Timestamp: 2021-08-09 12:49:35-0500
pid: 7782, tid: 7836, name: create_react_co  >>> com.rnmmkv <<<
uid: 10160
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x2
Cause: null pointer dereference
    eax 00000002  ebx b86e67a4  ecx e2702f80  edx e81ff010
    edi b6afb1f0  esi e569cde0
    ebp b6afb0d8  esp b6afb050  eip b86bd530
backtrace:
      #00 pc 00029530  /data/app/~~u6YxpbtX4TW60UQ21_DydA==/com.rnmmkv-xNiJDM2lAC-fkhFwXR4vOA==/lib/x86/libjscexecutor.so (facebook::jsc::JSCRuntime::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned int)+64) (BuildId: 9936fd5c341ebf5342246989b2b034b4ffd6d3c0)
      #01 pc 00021482  /data/app/~~u6YxpbtX4TW60UQ21_DydA==/com.rnmmkv-xNiJDM2lAC-fkhFwXR4vOA==/lib/x86/libmmkvnative.so (install(facebook::jsi::Runtime&)+178) (BuildId: 635056dc81c4d31412df0972e6b94478e4f7f502)
      #02 pc 00022562  /data/app/~~u6YxpbtX4TW60UQ21_DydA==/com.rnmmkv-xNiJDM2lAC-fkhFwXR4vOA==/lib/x86/libmmkvnative.so (Java_com_reactnativemmkv_MmkvModule_nativeInstall+114) (BuildId: 635056dc81c4d31412df0972e6b94478e4f7f502)
      #03 pc 00142132  /apex/com.android.art/lib/libart.so (art_quick_generic_jni_trampoline+82) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #04 pc 0013baf2  /apex/com.android.art/lib/libart.so (art_quick_invoke_static_stub+418) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #05 pc 001d0392  /apex/com.android.art/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+258) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #06 pc 003866e1  /apex/com.android.art/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+385) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #07 pc 0037aa1e  /apex/com.android.art/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1070) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #08 pc 007a4d0d  /apex/com.android.art/lib/libart.so (MterpInvokeStatic+637) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #09 pc 00135921  /apex/com.android.art/lib/libart.so (mterp_op_invoke_static+33) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #10 pc 000004b0  [anon:dalvik-classes4.dex extracted in memory from /data/app/~~u6YxpbtX4TW60UQ21_DydA==/com.rnmmkv-xNiJDM2lAC-fkhFwXR4vOA==/base.apk!classes4.dex] (com.reactnativemmkv.MmkvModule.install+8)
      #11 pc 007a503e  /apex/com.android.art/lib/libart.so (MterpInvokeStatic+1454) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #12 pc 00135921  /apex/com.android.art/lib/libart.so (mterp_op_invoke_static+33) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #13 pc 00000422  [anon:dalvik-classes4.dex extracted in memory from /data/app/~~u6YxpbtX4TW60UQ21_DydA==/com.rnmmkv-xNiJDM2lAC-fkhFwXR4vOA==/base.apk!classes4.dex] (com.reactnativemmkv.MmkvModulePackage.getJSIModules+50)
      #14 pc 007a353e  /apex/com.android.art/lib/libart.so (MterpInvokeInterface+2126) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #15 pc 001359a1  /apex/com.android.art/lib/libart.so (mterp_op_invoke_interface+33) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #16 pc 001cc500  [anon:dalvik-classes.dex extracted in memory from /data/app/~~u6YxpbtX4TW60UQ21_DydA==/com.rnmmkv-xNiJDM2lAC-fkhFwXR4vOA==/base.apk] (com.facebook.react.ReactInstanceManager.createReactContext+212)
      #17 pc 007a448e  /apex/com.android.art/lib/libart.so (MterpInvokeDirect+1454) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #18 pc 001358a1  /apex/com.android.art/lib/libart.so (mterp_op_invoke_direct+33) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #19 pc 001cc410  [anon:dalvik-classes.dex extracted in memory from /data/app/~~u6YxpbtX4TW60UQ21_DydA==/com.rnmmkv-xNiJDM2lAC-fkhFwXR4vOA==/base.apk] (com.facebook.react.ReactInstanceManager.access$1100)
      #20 pc 007a503e  /apex/com.android.art/lib/libart.so (MterpInvokeStatic+1454) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #21 pc 00135921  /apex/com.android.art/lib/libart.so (mterp_op_invoke_static+33) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #22 pc 001cbb30  [anon:dalvik-classes.dex extracted in memory from /data/app/~~u6YxpbtX4TW60UQ21_DydA==/com.rnmmkv-xNiJDM2lAC-fkhFwXR4vOA==/base.apk] (com.facebook.react.ReactInstanceManager$5.run+140)
      #23 pc 007a353e  /apex/com.android.art/lib/libart.so (MterpInvokeInterface+2126) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #24 pc 001359a1  /apex/com.android.art/lib/libart.so (mterp_op_invoke_interface+33) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #25 pc 000eb7d0  /apex/com.android.art/javalib/core-oj.jar (java.lang.Thread.run+8)
      #26 pc 0036fae2  /apex/com.android.art/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.12175385690420896393)+370) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #27 pc 00379ae0  /apex/com.android.art/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+176) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #28 pc 0078b305  /apex/com.android.art/lib/libart.so (artQuickToInterpreterBridge+1061) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #29 pc 0014220d  /apex/com.android.art/lib/libart.so (art_quick_to_interpreter_bridge+77) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #30 pc 0013b922  /apex/com.android.art/lib/libart.so (art_quick_invoke_stub+338) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #31 pc 001d0381  /apex/com.android.art/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+241) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #32 pc 0062f35c  /apex/com.android.art/lib/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+620) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #33 pc 0062f575  /apex/com.android.art/lib/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+85) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #34 pc 006976e1  /apex/com.android.art/lib/libart.so (art::Thread::CreateCallback(void*)+1537) (BuildId: 123e60096a46399e6f56e4eb5c70759a)
      #35 pc 000e6964  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+100) (BuildId: a690ed60a8b6a282b41dd991389b5fdb)
      #36 pc 00078567  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+71) (BuildId: a690ed60a8b6a282b41dd991389b5fdb)

@mrousavy
Copy link
Owner

mrousavy commented Sep 4, 2021

I just released 1.3.0 (yay 🎉), can you test if that works for you guys? It does work fine in the Example App (which is on RN 0.65.1)

@mrousavy
Copy link
Owner

mrousavy commented Sep 7, 2021

While I already spent way too much of my free time on this issue to fix the crash for random people on the internet, I spent some more time on this yesterday and finally fixed it. Check out 1.3.1. 🎉🎉🎉🎉

If you appreciate my efforts, please consider buying me a coffee for my next late-night debug session: ❤️ GitHub sponsors

@mrousavy mrousavy closed this as completed Sep 7, 2021
@jbrodriguez
Copy link

just wanted to add, that android is no longer crashing on start, I have another error (attached image) but it's due to the api change

Screen Shot 2021-09-18 at 17 07 30

Thanks a lot for fixing this !

Oh, btw, if compiles a bunch of stuff now

Build reactnativemmkv_armeabi-v7a
ninja: Entering directory `/Users/unknown/tmp/rnmmkv/node_modules/react-native-mmkv/android/.cxx/cmake/debug/armeabi-v7a'
[1/38] Building CXX object core/CMakeFiles/core.dir/MMKV_OSX.cpp.o
[2/38] Building CXX object core/CMakeFiles/core.dir/CodedInputDataCrypt_OSX.cpp.o
[3/38] Building CXX object core/CMakeFiles/core.dir/MMKVLog.cpp.o
[4/38] Building CXX object core/CMakeFiles/core.dir/PBUtility.cpp.o
[5/38] Building CXX object core/CMakeFiles/core.dir/CodedInputData_OSX.cpp.o
[6/38] Building CXX object core/CMakeFiles/core.dir/MiniPBCoder_OSX.cpp.o
[7/38] Building CXX object core/CMakeFiles/core.dir/MMBuffer.cpp.o
[8/38] Building CXX object core/CMakeFiles/core.dir/KeyValueHolder.cpp.o
[9/38] Building CXX object core/CMakeFiles/core.dir/MMKVLog_Android.cpp.o
[10/38] Building CXX object core/CMakeFiles/core.dir/CodedOutputData.cpp.o
[11/38] Building CXX object core/CMakeFiles/core.dir/CodedInputData.cpp.o
[12/38] Building CXX object core/CMakeFiles/core.dir/CodedInputDataCrypt.cpp.o
[13/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock_Win32.cpp.o
[14/38] Building CXX object CMakeFiles/reactnativemmkv.dir/src/main/cpp/cpp-adapter.cpp.o
[15/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock.cpp.o
[16/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_Win32.cpp.o
[17/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock_Android.cpp.o
[18/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_OSX.cpp.o
[19/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_md5_one.cpp.o
[20/38] Building CXX object core/CMakeFiles/core.dir/ThreadLock.cpp.o
[21/38] Building ASM object core/CMakeFiles/core.dir/aes/openssl/openssl_aesv8-armx.S.o
[22/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_md5_dgst.cpp.o
[23/38] Building ASM object core/CMakeFiles/core.dir/aes/openssl/openssl_aes-armv4.S.o
[24/38] Building CXX object core/CMakeFiles/core.dir/ThreadLock_Win32.cpp.o
[25/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile.cpp.o
[26/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_cfb128.cpp.o
[27/38] Building CXX object core/CMakeFiles/core.dir/aes/AESCrypt.cpp.o
[28/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_aes_core.cpp.o
[29/38] Building CXX object core/CMakeFiles/core.dir/MMKV_Android.cpp.o
[30/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_Android.cpp.o
[31/38] Building CXX object core/CMakeFiles/core.dir/MiniPBCoder.cpp.o
[32/38] Building CXX object core/CMakeFiles/core.dir/MMKV.cpp.o
[33/38] Building CXX object core/CMakeFiles/core.dir/crc32/crc32_armv8.cpp.o
[34/38] Building CXX object core/CMakeFiles/core.dir/crc32/zlib/crc32.cpp.o
[35/38] Building CXX object core/CMakeFiles/core.dir/MMKV_IO.cpp.o
[36/38] Building CXX object CMakeFiles/reactnativemmkv.dir/src/main/cpp/MmkvHostObject.cpp.o
[37/38] Linking CXX static library core/libcore.a
[38/38] Linking CXX shared library ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libreactnativemmkv.so
Build reactnativemmkv_arm64-v8a
ninja: Entering directory `/Users/unknown/tmp/rnmmkv/node_modules/react-native-mmkv/android/.cxx/cmake/debug/arm64-v8a'
[1/38] Building CXX object core/CMakeFiles/core.dir/MMKV_OSX.cpp.o
[2/38] Building CXX object core/CMakeFiles/core.dir/MMKVLog.cpp.o
[3/38] Building CXX object core/CMakeFiles/core.dir/PBUtility.cpp.o
[4/38] Building CXX object core/CMakeFiles/core.dir/MiniPBCoder_OSX.cpp.o
[5/38] Building CXX object core/CMakeFiles/core.dir/CodedInputDataCrypt_OSX.cpp.o
[6/38] Building CXX object core/CMakeFiles/core.dir/CodedInputData_OSX.cpp.o
[7/38] Building CXX object core/CMakeFiles/core.dir/MMBuffer.cpp.o
[8/38] Building CXX object core/CMakeFiles/core.dir/KeyValueHolder.cpp.o
[9/38] Building CXX object core/CMakeFiles/core.dir/MMKVLog_Android.cpp.o
[10/38] Building CXX object core/CMakeFiles/core.dir/CodedOutputData.cpp.o
[11/38] Building CXX object core/CMakeFiles/core.dir/CodedInputData.cpp.o
[12/38] Building CXX object core/CMakeFiles/core.dir/CodedInputDataCrypt.cpp.o
[13/38] Building CXX object CMakeFiles/reactnativemmkv.dir/src/main/cpp/cpp-adapter.cpp.o
[14/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock_Win32.cpp.o
[15/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_Win32.cpp.o
[16/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock_Android.cpp.o
[17/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock.cpp.o
[18/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_OSX.cpp.o
[19/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_md5_one.cpp.o
[20/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_md5_dgst.cpp.o
[21/38] Building CXX object core/CMakeFiles/core.dir/ThreadLock.cpp.o
[22/38] Building ASM object core/CMakeFiles/core.dir/aes/openssl/openssl_aesv8-armx.S.o
[23/38] Building ASM object core/CMakeFiles/core.dir/aes/openssl/openssl_aes-armv4.S.o
[24/38] Building CXX object core/CMakeFiles/core.dir/ThreadLock_Win32.cpp.o
[25/38] Building CXX object core/CMakeFiles/core.dir/MMKV_Android.cpp.o
[26/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile.cpp.o
[27/38] Building CXX object core/CMakeFiles/core.dir/aes/AESCrypt.cpp.o
[28/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_aes_core.cpp.o
[29/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_Android.cpp.o
[30/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_cfb128.cpp.o
[31/38] Building CXX object core/CMakeFiles/core.dir/MiniPBCoder.cpp.o
[32/38] Building CXX object core/CMakeFiles/core.dir/MMKV.cpp.o
[33/38] Building CXX object core/CMakeFiles/core.dir/crc32/zlib/crc32.cpp.o
[34/38] Building CXX object core/CMakeFiles/core.dir/crc32/crc32_armv8.cpp.o
[35/38] Building CXX object core/CMakeFiles/core.dir/MMKV_IO.cpp.o
[36/38] Building CXX object CMakeFiles/reactnativemmkv.dir/src/main/cpp/MmkvHostObject.cpp.o
[37/38] Linking CXX static library core/libcore.a
[38/38] Linking CXX shared library ../../../../build/intermediates/cmake/debug/obj/arm64-v8a/libreactnativemmkv.so
Build reactnativemmkv_x86
ninja: Entering directory `/Users/unknown/tmp/rnmmkv/node_modules/react-native-mmkv/android/.cxx/cmake/debug/x86'
[1/38] Building CXX object core/CMakeFiles/core.dir/MMKV_OSX.cpp.o
[2/38] Building CXX object core/CMakeFiles/core.dir/MMKVLog.cpp.o
[3/38] Building CXX object core/CMakeFiles/core.dir/PBUtility.cpp.o
[4/38] Building CXX object core/CMakeFiles/core.dir/CodedInputDataCrypt_OSX.cpp.o
[5/38] Building CXX object core/CMakeFiles/core.dir/CodedInputData_OSX.cpp.o
[6/38] Building CXX object core/CMakeFiles/core.dir/MiniPBCoder_OSX.cpp.o
[7/38] Building CXX object core/CMakeFiles/core.dir/MMBuffer.cpp.o
[8/38] Building CXX object core/CMakeFiles/core.dir/KeyValueHolder.cpp.o
[9/38] Building CXX object core/CMakeFiles/core.dir/MMKVLog_Android.cpp.o
[10/38] Building CXX object core/CMakeFiles/core.dir/CodedOutputData.cpp.o
[11/38] Building CXX object core/CMakeFiles/core.dir/CodedInputDataCrypt.cpp.o
[12/38] Building CXX object core/CMakeFiles/core.dir/CodedInputData.cpp.o
[13/38] Building CXX object CMakeFiles/reactnativemmkv.dir/src/main/cpp/cpp-adapter.cpp.o
[14/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock_Win32.cpp.o
[15/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock.cpp.o
[16/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_Win32.cpp.o
[17/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock_Android.cpp.o
[18/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_OSX.cpp.o
[19/38] Building CXX object core/CMakeFiles/core.dir/ThreadLock.cpp.o
[20/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_md5_one.cpp.o
[21/38] Building ASM object core/CMakeFiles/core.dir/aes/openssl/openssl_aesv8-armx.S.o
[22/38] Building ASM object core/CMakeFiles/core.dir/aes/openssl/openssl_aes-armv4.S.o
[23/38] Building CXX object core/CMakeFiles/core.dir/MMKV_Android.cpp.o
[24/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_md5_dgst.cpp.o
[25/38] Building CXX object core/CMakeFiles/core.dir/ThreadLock_Win32.cpp.o
[26/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile.cpp.o
[27/38] Building CXX object core/CMakeFiles/core.dir/aes/AESCrypt.cpp.o
[28/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_cfb128.cpp.o
[29/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_Android.cpp.o
[30/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_aes_core.cpp.o
[31/38] Building CXX object core/CMakeFiles/core.dir/MiniPBCoder.cpp.o
[32/38] Building CXX object core/CMakeFiles/core.dir/MMKV.cpp.o
[33/38] Building CXX object core/CMakeFiles/core.dir/crc32/zlib/crc32.cpp.o
[34/38] Building CXX object core/CMakeFiles/core.dir/crc32/crc32_armv8.cpp.o
[35/38] Building CXX object core/CMakeFiles/core.dir/MMKV_IO.cpp.o
[36/38] Building CXX object CMakeFiles/reactnativemmkv.dir/src/main/cpp/MmkvHostObject.cpp.o
[37/38] Linking CXX static library core/libcore.a
[38/38] Linking CXX shared library ../../../../build/intermediates/cmake/debug/obj/x86/libreactnativemmkv.so
Build reactnativemmkv_x86_64
ninja: Entering directory `/Users/unknown/tmp/rnmmkv/node_modules/react-native-mmkv/android/.cxx/cmake/debug/x86_64'
[1/38] Building CXX object core/CMakeFiles/core.dir/MMKV_OSX.cpp.o
[2/38] Building CXX object core/CMakeFiles/core.dir/PBUtility.cpp.o
[3/38] Building CXX object core/CMakeFiles/core.dir/MMKVLog.cpp.o
[4/38] Building CXX object core/CMakeFiles/core.dir/CodedInputData_OSX.cpp.o
[5/38] Building CXX object core/CMakeFiles/core.dir/CodedInputDataCrypt_OSX.cpp.o
[6/38] Building CXX object core/CMakeFiles/core.dir/MiniPBCoder_OSX.cpp.o
[7/38] Building CXX object core/CMakeFiles/core.dir/KeyValueHolder.cpp.o
[8/38] Building CXX object core/CMakeFiles/core.dir/MMBuffer.cpp.o
[9/38] Building CXX object core/CMakeFiles/core.dir/MMKVLog_Android.cpp.o
[10/38] Building CXX object core/CMakeFiles/core.dir/CodedOutputData.cpp.o
[11/38] Building CXX object core/CMakeFiles/core.dir/CodedInputData.cpp.o
[12/38] Building CXX object core/CMakeFiles/core.dir/CodedInputDataCrypt.cpp.o
[13/38] Building CXX object CMakeFiles/reactnativemmkv.dir/src/main/cpp/cpp-adapter.cpp.o
[14/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock_Win32.cpp.o
[15/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_Win32.cpp.o
[16/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock_Android.cpp.o
[17/38] Building CXX object core/CMakeFiles/core.dir/MMKV_Android.cpp.o
[18/38] Building CXX object core/CMakeFiles/core.dir/InterProcessLock.cpp.o
[19/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_md5_dgst.cpp.o
[20/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_OSX.cpp.o
[21/38] Building CXX object core/CMakeFiles/core.dir/ThreadLock_Win32.cpp.o
[22/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_md5_one.cpp.o
[23/38] Building CXX object core/CMakeFiles/core.dir/ThreadLock.cpp.o
[24/38] Building ASM object core/CMakeFiles/core.dir/aes/openssl/openssl_aesv8-armx.S.o
[25/38] Building ASM object core/CMakeFiles/core.dir/aes/openssl/openssl_aes-armv4.S.o
[26/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile.cpp.o
[27/38] Building CXX object core/CMakeFiles/core.dir/aes/AESCrypt.cpp.o
[28/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_cfb128.cpp.o
[29/38] Building CXX object core/CMakeFiles/core.dir/MemoryFile_Android.cpp.o
[30/38] Building CXX object core/CMakeFiles/core.dir/aes/openssl/openssl_aes_core.cpp.o
[31/38] Building CXX object core/CMakeFiles/core.dir/MiniPBCoder.cpp.o
[32/38] Building CXX object core/CMakeFiles/core.dir/MMKV.cpp.o
[33/38] Building CXX object core/CMakeFiles/core.dir/crc32/crc32_armv8.cpp.o
[34/38] Building CXX object core/CMakeFiles/core.dir/crc32/zlib/crc32.cpp.o
[35/38] Building CXX object core/CMakeFiles/core.dir/MMKV_IO.cpp.o
[36/38] Building CXX object CMakeFiles/reactnativemmkv.dir/src/main/cpp/MmkvHostObject.cpp.o
[37/38] Linking CXX static library core/libcore.a
[38/38] Linking CXX shared library ../../../../build/intermediates/cmake/debug/obj/x86_64/libreactnativemmkv.so

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants