Crash: TermSBPTUIModule(Cmm::ICmmMessageQueueClient*)

Description
We have had a number of crashes coming from the MobileRTC SDK since we integrated it about a month ago. We’ve had a few slightly different stack traces which can be found below.

Occurrences: 9
Devices: 56% iPhone, 44% iPad
OS: 100% iOS 13
Device States: 89% background

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000
Crashed: NSOperationQueue 0x13fe32dd0 (QOS: UNSPECIFIED)
0  libsystem_platform.dylib       0x194580518 _platform_memmove + 40
1  MobileRTC                      0x10708bd8c TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 9992088
2  MobileRTC                      0x10708c228 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 9993268
3  MobileRTC                      0x106a1e3a8 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3251636
4  MobileRTC                      0x106a1e4fc TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3251976
5  MobileRTC                      0x1069e9700 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3035404
6  MobileRTC                      0x1069e3cec TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3012344
7  MobileRTC                      0x106a05a8c TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3151000
8  MobileRTC                      0x106c8ead8 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 5809380
9  MobileRTC                      0x1066d3848 ios_getpid() + 858380
10 MobileRTC                      0x1065c08dc (Missing)
11 CoreMotion                     0x1a163a77c CLClientCreateIso6709Notation + 30844

Occurrences: 3
Devices: 33% iPhone, 67% iPad
OS: 100% iOS 13
Device States: 67% background

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x016a4f0001440188
Crashed: NSOperationQueue 0x10a48f420 (QOS: UNSPECIFIED)
0  MobileRTC                      0x105dcbf48 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 9992532
1  MobileRTC                      0x105dcc240 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 9993292
2  MobileRTC                      0x10575e528 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3252020
3  MobileRTC                      0x105729700 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3035404
4  MobileRTC                      0x105723cec TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3012344
5  MobileRTC                      0x105745a8c TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3151000
6  MobileRTC                      0x1059cead8 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 5809380
7  MobileRTC                      0x105413848 ios_getpid() + 858380
8  MobileRTC                      0x1053008dc (Missing)
9  CoreMotion                     0x1cce08824 CLClientCreateIso6709Notation + 30844

Occurrences: 1
Devices: 100% iPhone
OS: 100% iOS 13
Device States: 100% background

EXC_BAD_ACCESS 0x006974656c706d6f
Crashed: NSOperationQueue 0x11d04d920 (QOS: UNSPECIFIED)
0  ???                            0x6974656c706d70 (Missing)
1  MobileRTC                      0x10763c110 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 9992988
2  MobileRTC                      0x10763c240 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 9993292
3  MobileRTC                      0x106fce528 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3252020
4  MobileRTC                      0x106f99700 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3035404
5  MobileRTC                      0x106f93cec TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3012344
6  MobileRTC                      0x106fb5a8c TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3151000
7  MobileRTC                      0x10723ead8 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 5809380
8  MobileRTC                      0x106c83848 ios_getpid() + 858380
9  MobileRTC                      0x106b708dc (Missing)
10 Foundation                     0x1bc5ff3a0 __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 16
11 Foundation                     0x1bc5090c8 -[NSBlockOperation main] + 100
12 Foundation                     0x1bc601628 __NSOPERATION_IS_INVOKING_MAIN__ + 20
13 Foundation                     0x1bc508d60 -[NSOperation start] + 732
14 Foundation                     0x1bc602020 __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 20
15 Foundation                     0x1bc601aec __NSOQSchedule_f + 180
16 libdispatch.dylib              0x1bbeea998 _dispatch_block_async_invoke2 + 104
17 libdispatch.dylib              0x1bbf07184 _dispatch_client_callout + 16
18 libdispatch.dylib              0x1bbee0e8c _dispatch_continuation_pop$VARIANT$armv81 + 404
19 libdispatch.dylib              0x1bbee0600 _dispatch_async_redirect_invoke + 592
20 libdispatch.dylib              0x1bbeed110 _dispatch_root_queue_drain + 344
21 libdispatch.dylib              0x1bbeed8b0 _dispatch_worker_thread2 + 116
22 libsystem_pthread.dylib        0x1bbf56b48 _pthread_wqthread + 212
23 libsystem_pthread.dylib        0x1bbf59760 start_wqthread + 8

Occurrences: 1
Devices: 100% iPhone
OS: 100% iOS 13
Device States: 100% background

SIGSEGV 0x3630390035303ae0
Crashed: NSOperationQueue 0x108559990 (QOS: UNSPECIFIED)
0  MobileRTC                      0x103240100 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 9992972
1  MobileRTC                      0x103240240 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 9993292
2  MobileRTC                      0x102bd2528 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3252020
3  MobileRTC                      0x102b9d700 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3035404
4  MobileRTC                      0x102b97cec TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3012344
5  MobileRTC                      0x102bb9a8c TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3151000
6  MobileRTC                      0x102e42ad8 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 5809380
7  MobileRTC                      0x102887848 ios_getpid() + 858380
8  MobileRTC                      0x1027748dc (Missing)
9  CoreMotion                     0x1ae73477c CLClientCreateIso6709Notation + 30844

Occurrences: 1
Devices: 100% iPad
OS: 100% iOS 13
Device States: 0% background

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000
Crashed: NSOperationQueue 0x108227780 (QOS: UNSPECIFIED)
0  libsystem_platform.dylib       0x19d929928 _platform_memmove + 40
1  MobileRTC                      0x103b2bd38 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 9992004
2  MobileRTC                      0x103b2c228 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 9993268
3  MobileRTC                      0x1034be3a8 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3251636
4  MobileRTC                      0x1034be4fc TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3251976
5  MobileRTC                      0x103489700 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3035404
6  MobileRTC                      0x103483cec TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3012344
7  MobileRTC                      0x1034a5a8c TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 3151000
8  MobileRTC                      0x10372ead8 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 5809380
9  MobileRTC                      0x103173848 ios_getpid() + 858380
10 MobileRTC                      0x1030608dc (Missing)
11 Foundation                     0x19dfe13a0 __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 16
12 Foundation                     0x19deeb0c8 -[NSBlockOperation main] + 100
13 Foundation                     0x19dfe3628 __NSOPERATION_IS_INVOKING_MAIN__ + 20
14 Foundation                     0x19deead60 -[NSOperation start] + 732
15 Foundation                     0x19dfe4020 __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 20
16 Foundation                     0x19dfe3aec __NSOQSchedule_f + 180
17 libdispatch.dylib              0x19d89b7dc _dispatch_block_async_invoke2 + 104
18 libdispatch.dylib              0x19d8e9184 _dispatch_client_callout + 16
19 libdispatch.dylib              0x19d891a3c _dispatch_continuation_pop$VARIANT$mp + 412
20 libdispatch.dylib              0x19d891190 _dispatch_async_redirect_invoke + 600
21 libdispatch.dylib              0x19d89dfa4 _dispatch_root_queue_drain + 376
22 libdispatch.dylib              0x19d89e770 _dispatch_worker_thread2 + 128
23 libsystem_pthread.dylib        0x19d938b48 _pthread_wqthread + 212
24 libsystem_pthread.dylib        0x19d93b760 start_wqthread + 8

Which version?
We’ve only released with version 4.6.15084.0206 so far. We will be releasing a new version of our app with version 4.6.21666.0428 within the next week. We’ll report back here if we do or do not see this crash using this version.

To Reproduce(If applicable)
We haven’t found a way to reproduce this issue, but it does appear to happen either while the app is in the background state, or right after moving from the background state to the foreground state.

Hi lgauthier,

Thanks for using Zoom SDK and thanks for the info. This issue has been fixed in the latest version of the SDK. Please have a try.

Thanks!

Hi,

I have the same problem, but it occurs in 100% of cases on devices with iOS version 12.4. We are using version v4.6.21666.0428

Crashed: Thread
0 libGPUSupportMercury.dylib 0x1ebb6bfe4 gpus_ReturnNotPermittedKillClient
1 AGXGLDriver 0x1f0219ed8 gldUpdateDispatch
2 libGPUSupportMercury.dylib 0x1ebb6cfac gpusSubmitDataBuffers
3 AGXGLDriver 0x1f021b404 gldUpdateDispatch
4 AGXGLDriver 0x1f021c160 gldUpdateDispatch
5 AGXGLDriver 0x1f0219bf0 gldUpdateDispatch
6 GLEngine 0x1f1202078 glClear_Exec
7 MobileRTC 0x102a10448 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15712500
8 MobileRTC 0x102a1029c TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15712072
9 MobileRTC 0x102a0a068 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15686932
10 MobileRTC 0x102a0a0c0 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15687020
11 MobileRTC 0x102a0d654 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15700736
12 MobileRTC 0x102a4edf4 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15968928
13 MobileRTC 0x102a0d654 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15700736
14 MobileRTC 0x102a7b1fc TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 16150184
15 MobileRTC 0x102a7b524 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 16150992
16 MobileRTC 0x102a0a068 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15686932
17 MobileRTC 0x102a0a0c0 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15687020
18 MobileRTC 0x102a0d654 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15700736
19 MobileRTC 0x1029c8038 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15416548
20 MobileRTC 0x1029ba4cc TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 15360376
21 libsystem_pthread.dylib 0x1cf7792c0 _pthread_body + 128
22 libsystem_pthread.dylib 0x1cf779220 _pthread_start + 44
23 libsystem_pthread.dylib 0x1cf77ccdc thread_start + 4

1 Like

Hi @guedes.rj.1976,

Thanks for the post. What is the Xcode version you are using? Could you provide the full .crash log? Could you also provide the steps to reproduce this crash?

Thanks!

Hi,
this error occurs in the apple store. Xcode is 11.5 and this is the complete crash provided by Firebase. We updated the sdk to version 5.0.24433.0616 and it only worsened or opened the meeting for the other versions of iOS.

I made a test application with version 5.0.24433.0616 and just keep an alert waiting, below the source of the example.

import UIKit
import MobileRTC

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
}

@IBAction func pressButton(_ sender: Any) {

    let context: MobileRTCSDKInitContext = MobileRTCSDKInitContext()
    context.domain = "####"
    context.enableLog = true
    context.locale = .default
    context.appGroupId = ""
    
    let initSuccess = MobileRTC.shared().initialize(context)
    if (!initSuccess) {
        return
    }
    
    MobileRTC.shared().getMeetingSettings()?.autoConnectInternetAudio()
    
    let authService = MobileRTC.shared().getAuthService()
    if ((authService) == nil) {
        return
    }
    authService!.delegate = self
    authService!.clientKey = "####"
    authService!.clientSecret = "####"
    authService!.sdkAuth()
    
    guard let meetingService = MobileRTC.shared().getMeetingService() else { return }
    
    meetingService.delegate = self

    let param: MobileRTCMeetingJoinParam = MobileRTCMeetingJoinParam()
    param.meetingNumber = "####"
    param.password = "####"
    
    let returnValue = meetingService.joinMeeting(with: param)
    
    guard returnValue == MobileRTCMeetError_Success else {
        return
    }
}

}

extension ViewController: MobileRTCAuthDelegate {

func onMobileRTCAuthReturn(_ returnValue: MobileRTCAuthError) {
    print("")
}

}

extension ViewController: MobileRTCMeetingServiceDelegate {

func onMeetingError(_ error: MobileRTCMeetError, message: String?) {
    print("")
}

}

Hi @guedes.rj.1976,

Thanks for the reply. Based on the code snippet, it seems like you are trying to join a meeting right after the attempt to perform SDK auth. The SDK authentication is an asychronized action. You must wait until the onMobileRTCAuthReturn is triggered and return the auth success status before you would join a meeting.

Thanks!

Thanks for the answer.
In my production application I already do that. And in this example I made the change and it didn’t work.

Hi @guedes.rj.1976,

Thanks for the reply. I tried to follow the code snippet you have provided above and implement it in our demo app and I did not encounter any issues. Could you provide the steps to reproduce this issue with our demo app? Any chance you could provide an SDK log for us to further investigate?

Thanks!

Would it be a meeting id?

If you are looking for the way to enable and to retrieve the SDK log, you could follow the instruction here: https://marketplace.zoom.us/docs/sdk/native-sdks/iOS/mastering-zoom-sdk/sdk-initialization#log-feature

Thanks!

Hi,

Several other people are having this same problem at the link above

Hi @guedes.rj.1976,

Thanks for the reply. Please see my response in that post for the answer to your question.

Hope this helps. Thanks!