BelledonneCommunications/liblinphone

[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

  1. Open app
  2. Open the side menu, and press "Quit"
  3. Open app again.
  4. 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.

Viish commented

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,