[Bug]: Android app crash after subscribing to voicemail event bug
Closed this issue · 1 comments
Context
Issue has been created in linphone repository (BelledonneCommunications/linphone-sdk#216), but no feedback. Creating here again hoping to get some feedback. Thanks.
I use the Linphone Android app to connect to my client's SIP server
General information
- Device: Samsung Galaxy A01
- OS: Android 11
- Version of the App: Linphone Android 4.6.0-beta.100+13261f78f (tags/4.6.0~29, debug)
- Version of the SDK: Linphone SDK 5.1.18 (tags/5.1.18^0, release)
Expected behaviour
We want to subscribe to the voicemail updates so that the app can show when receiving voicemail. I added the following code to add the subscription in fun start(isPush: Boolean = false)
of CoreContext
core.defaultAccount?.params?.identityAddress?.let { core.subscribe(it, "message-summary", 3600, null) }
message-summary
is the event name. After that, I can correctly receive the SIP NOTIFY that contains the voicemail update, and Linphone Android app can show the voicemail on the top right corner of the keypad page.
However, after that, app will run into random native crash if the app is opened, and quit, and open again. It's not guaranteed to replicate, but it happens quite often.
Here's the crash log
2022-04-01 11:32:47.084 28778-28778/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2022-04-01 11:32:47.084 28778-28778/? A/DEBUG: Build fingerprint: 'samsung/a01qtfn/a01q:11/RP1A.200720.012/S111DLUDS8BVB1:user/release-keys'
2022-04-01 11:32:47.084 28778-28778/? A/DEBUG: Revision: '0'
2022-04-01 11:32:47.084 28778-28778/? A/DEBUG: ABI: 'arm'
2022-04-01 11:32:47.085 28778-28778/? A/DEBUG: Timestamp: 2022-04-01 11:32:47+0800
2022-04-01 11:32:47.086 28778-28778/? A/DEBUG: pid: 25900, tid: 28072, name: FinalizerDaemon >>> org.linphone.debug <<<
2022-04-01 11:32:47.086 28778-28778/? A/DEBUG: uid: 10283
2022-04-01 11:32:47.086 28778-28778/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x42a60008
2022-04-01 11:32:47.086 28778-28778/? A/DEBUG: r0 42a60000 r1 ef5ae280 r2 00000001 r3 42a60000
2022-04-01 11:32:47.086 28778-28778/? A/DEBUG: r4 42a60000 r5 c5815a00 r6 00000573 r7 c6c55388
2022-04-01 11:32:47.086 28778-28778/? A/DEBUG: r8 f2459f40 r9 f1e67a00 r10 c6c554c0 r11 f1e67a00
2022-04-01 11:32:47.086 28778-28778/? A/DEBUG: ip c4d39000 sp c6c55380 lr c3fdc235 pc c4ca66b0
2022-04-01 11:32:47.430 28778-28778/? A/DEBUG: backtrace:
2022-04-01 11:32:47.430 28778-28778/? A/DEBUG: #00 pc 000246b0 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/libbctoolbox.so (_bctbx_list_remove+10) (BuildId: fd97f8c6317ea8582583fcf45d8c49f012fe8db9)
2022-04-01 11:32:47.430 28778-28778/? A/DEBUG: #01 pc 007ab231 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (belle_sip_provider_remove_internal_sip_listener+8) (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.430 28778-28778/? A/DEBUG: #02 pc 007adc49 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.430 28778-28778/? A/DEBUG: #03 pc 007920c1 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (belle_sip_object_uninit+56) (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.430 28778-28778/? A/DEBUG: #04 pc 00791f29 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (belle_sip_object_delete+48) (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.430 28778-28778/? A/DEBUG: #05 pc 00791e37 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (belle_sip_object_unref_2+138) (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #06 pc 006509bd /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (LinphonePrivate::SalSubscribeOp::releaseCb(LinphonePrivate::SalOp*)+20) (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #07 pc 00652349 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (LinphonePrivate::SalOp::release()+112) (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #08 pc 0070dab7 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #09 pc 007920c1 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (belle_sip_object_uninit+56) (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #10 pc 00791f29 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (belle_sip_object_delete+48) (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #11 pc 00791e37 /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (belle_sip_object_unref_2+138) (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #12 pc 0074b4bd /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/lib/arm/liblinphone.so (Java_org_linphone_core_EventImpl_unref+76) (BuildId: 09fa2fb21431a055efb2c0a27d78bd95052ef088)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #13 pc 000d94dd /apex/com.android.art/lib/libart.so (art_quick_generic_jni_trampoline+44) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #14 pc 000d49d5 /apex/com.android.art/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #15 pc 004bd3d3 /apex/com.android.art/lib/libart.so (art_quick_invoke_stub+294) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #16 pc 00123631 /apex/com.android.art/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+148) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #17 pc 0023789f /apex/com.android.art/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+254) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.431 28778-28778/? A/DEBUG: #18 pc 0023302d /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*)+724) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #19 pc 004b309b /apex/com.android.art/lib/libart.so (MterpInvokeDirect+546) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #20 pc 000cf514 /apex/com.android.art/lib/libart.so (mterp_op_invoke_direct+20) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #21 pc 001a4e6c [anon:dalvik-classes18.dex extracted in memory from /data/app/~~8CR4oLV5n6TdBOLG7KZieg==/org.linphone.debug-GCRNzhA8hio1ejezpqXa6Q==/base.apk!classes18.dex] (org.linphone.core.EventImpl.finalize+20)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #22 pc 004b11c1 /apex/com.android.art/lib/libart.so (MterpInvokeVirtual+1312) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #23 pc 000cf414 /apex/com.android.art/lib/libart.so (mterp_op_invoke_virtual+20) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #24 pc 0002d0e6 /apex/com.android.art/javalib/core-libart.jar (java.lang.Daemons$FinalizerDaemon.doFinalize+22)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #25 pc 004b3293 /apex/com.android.art/lib/libart.so (MterpInvokeDirect+1050) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #26 pc 000cf514 /apex/com.android.art/lib/libart.so (mterp_op_invoke_direct+20) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #27 pc 0002d1d8 /apex/com.android.art/javalib/core-libart.jar (java.lang.Daemons$FinalizerDaemon.runInternal+164)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #28 pc 004b11c1 /apex/com.android.art/lib/libart.so (MterpInvokeVirtual+1312) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #29 pc 000cf414 /apex/com.android.art/lib/libart.so (mterp_op_invoke_virtual+20) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #30 pc 0002cede /apex/com.android.art/javalib/core-libart.jar (java.lang.Daemons$Daemon.run+50)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #31 pc 004b27ff /apex/com.android.art/lib/libart.so (MterpInvokeInterface+1578) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #32 pc 000cf614 /apex/com.android.art/lib/libart.so (mterp_op_invoke_interface+20) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.432 28778-28778/? A/DEBUG: #33 pc 000eb8c8 /apex/com.android.art/javalib/core-oj.jar (java.lang.Thread.run+8)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #34 pc 0022c48f /apex/com.android.art/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.12569139320450087573)+254) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #35 pc 002327cd /apex/com.android.art/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+120) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #36 pc 004a246d /apex/com.android.art/lib/libart.so (artQuickToInterpreterBridge+712) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #37 pc 000d9561 /apex/com.android.art/lib/libart.so (art_quick_to_interpreter_bridge+32) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #38 pc 000d49d5 /apex/com.android.art/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #39 pc 004bd3d3 /apex/com.android.art/lib/libart.so (art_quick_invoke_stub+294) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #40 pc 00123631 /apex/com.android.art/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+148) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #41 pc 003e261f /apex/com.android.art/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+54) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #42 pc 003e3411 /apex/com.android.art/lib/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+356) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #43 pc 003e359f /apex/com.android.art/lib/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+42) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #44 pc 0042311f /apex/com.android.art/lib/libart.so (art::Thread::CreateCallback(void*)+1066) (BuildId: 65332f2a54c425c886e2babb8c7a8d1f)
2022-04-01 11:32:47.433 28778-28778/? A/DEBUG: #45 pc 000b0547 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+40) (BuildId: 25671fc300e72247ccaaf22111af90f6)
2022-04-01 11:32:47.434 28778-28778/? A/DEBUG: #46 pc 00066b17 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30) (BuildId: 25671fc300e72247ccaaf22111af90f6)
To Reproduce
- Open app
- Open the side menu, and press "Quit"
- Open app again.
- Crash
Sometimes the crash won't happen immediately after the app is opened again in #3, but after waiting for a while, it will crash.
Hi,
Your issue is you don't terminate the event before destroying the Core, and when the app is kill the Event object of the app is destroyed and will attempt to properly close the subscription but without a Core it will crash.
I'm currently merging a fix for that on 5.1 & 5.2 branches, but it will still create a small leak, you really should terminate your event before your app is killed.
Cheers,