Skip to content

[BUG] Issue with call.hangUp(options: nil) Triggering Thread Performance Checker Warning #1832

@ShawnHuangS

Description

@ShawnHuangS

Describe the bug
When I call call.hangUp(options: nil), I always get the following warning:

Thread Performance Checker: Thread running at User-initiated quality-of-service class waiting on a thread without a QoS class specified (base priority 31). Investigate ways to avoid priority inversions.

Sometimes this causes my screen to freeze for several seconds, almost like a system crash.

Exception or Stack Trace

Thread Performance Checker: Thread running at User-initiated quality-of-service class waiting on a thread without a QoS class specified (base priority 31). Investigate ways to avoid priority inversions
PID: 1986, TID: 720870
Backtrace
============================
3 AzureCommunicationCalling 0x00000001085c448c _ZN3spl9eventWaitERPNS_8EventGCDE + 44
4 AzureCommunicationCalling 0x000000010863c130 _ZN25SplOpaqueUpperLayerThread8joinCoreENSt3__18optionalINS0_6chrono8durationIxNS0_5ratioILl1ELl1000000EEEEEEEPl + 164
5 AzureCommunicationCalling 0x000000010863c234 _ZN25SplOpaqueUpperLayerThread4stopENSt3__18optionalINS0_6chrono8durationIxNS0_5ratioILl1ELl1000000EEEEEEEPl + 72
6 AzureCommunicationCalling 0x000000010793e5f4 _ZN17HeartbeatReporter4StopEv + 124
7 AzureCommunicationCalling 0x00000001074ed4dc RtmCodecsHeartbeatReporterStop + 84
8 AzureCommunicationCalling 0x00000001073acf68 _ZN24CSlimStreamingEngineImpl37UpdateRunningConferenceAndHandleTimerE19ConferenceInfoStateS0_P23CSlimConferenceInfoImpl + 488
9 AzureCommunicationCalling 0x00000001073af7bc _ZNSt3__110__function6__funcIZN24CSlimStreamingEngineImpl13StopTransportE16CTransportHandleE4$13NS_9allocatorIS4_EEFiP23CSlimConferenceInfoImplEEclEOS8 + 144
10 AzureCommunicationCalling 0x00000001073ac738 _ZN24CSlimStreamingEngineImpl25_FindConferenceAndExecuteI16CTransportHandleEEiT_RKNSt3__18functionIFiP23CSlimConferenceInfoImplEEE + 100
11 AzureCommunicationCalling 0x00000001073ac9c4 _ZN24CSlimStreamingEngineImpl13StopTransportE16CTransportHandle + 120
12 AzureCommunicationCalling 0x000000010726a8e0 ZN6engine6detail7ApiBaseINS0_9EngineApiEE11ApiCallImplI19IStreamingEngineApiJ16CTransportHandleEE6InvokeEPS5 + 68
13 AzureCommunicationCalling 0x0000000107268b74 _ZN6engine6detail7ApiBaseINS0_9EngineApiEE8ForwardII19IStreamingEngineApiNSt3__110shared_ptrINS0_15EngineApiTracerEEEEEiRNS3_7ApiCallIT_EERKT0_PKcNS3_4FlagE + 224
14 AzureCommunicationCalling 0x0000000107265fe8 _ZN6engine6detail9EngineApi13StopTransportE16CTransportHandle + 140
15 AzureCommunicationCalling 0x0000000107cee1bc _ZN11RtpEndpoint24DeallocateLocalEndpointsEv + 160
16 AzureCommunicationCalling 0x0000000107e070b4 _ZN17CRTCMediaEndpoint8ShutdownEv + 168
17 AzureCommunicationCalling 0x0000000107e06e94 _ZN24CRTCMediaEndpointManager8ShutdownEv + 216
18 AzureCommunicationCalling 0x0000000107e6f538 _ZN11CRTCChannel27CacheMetricsOnStreamRemovalEv + 448
19 AzureCommunicationCalling 0x0000000107e6e328 _ZN11CRTCChannel18CommitRemoveStreamEb + 320
20 AzureCommunicationCalling 0x0000000107e6df8c _ZN11CRTCChannel8ShutdownEv + 712
21 AzureCommunicationCalling 0x0000000107ddff0c _ZN17CMediaChannelImpl9TerminateEb + 420
22 AzureCommunicationCalling 0x0000000107e28678 _ZN14CMediaFlowImpl17TerminateChannelsEh + 304
23 AzureCommunicationCalling 0x0000000107e28e08 _ZN14CMediaFlowImpl9TerminateEv + 448
24 AzureCommunicationCalling 0x0000000108181524 _ZN2ma6MMConf13TerminateFlowEv + 568
25 AzureCommunicationCalling 0x000000010811e4bc _ZN2ma10Conference9terminateENS_15TerminateReasonE + 1196
26 AzureCommunicationCalling 0x000000010822f884 _ZN3csa5CCall7cleanupEv + 136
27 AzureCommunicationCalling 0x00000001086481e0 _ZN3auf4priv13MRMWTransport11tryDispatchEPNS_11IDispatcherE + 164
28 AzureCommunicationCalling 0x00000001086428b8 _ZN3auf17StrandExecutorImp11tryDispatchEPNS_11IDispatcherE + 24
29 AzureCommunicationCalling 0x0000000108642718 _ZN3auf17StrandExecutorImp13depleteStrandEN2rt12IntrusivePtrIS0_EE + 100
30 AzureCommunicationCalling 0x0000000108642ab8 _ZN3auf3VarIMNS_17StrandExecutorImpEFvN2rt12IntrusivePtrIS1_EEERS1_JRS4_EE8dispatchEv + 80
31 AzureCommunicationCalling 0x00000001086417cc _ZN3auf24NativeThreadPoolExecutor20callFromNativeWorkerEPN3spl7VarBaseEPv + 56
32 AzureCommunicationCalling 0x0000000108641988 ___ZN3spl4priv23NativeThreadPoolManager8dispatchERKDnP16dispatch_queue_sPFvPNS_7VarBaseEPvES7_S8__block_invoke + 64
33 libdispatch.dylib 0x0000000102a0cb98 _dispatch_call_block_and_release + 32
34 libdispatch.dylib 0x0000000102a0e7bc _dispatch_client_callout + 20
35 libdispatch.dylib 0x0000000102a1130c _dispatch_queue_override_invoke + 1056
36 libdispatch.dylib 0x0000000102a22ae4 _dispatch_root_queue_drain + 404
37 libdispatch.dylib 0x0000000102a234d8 _dispatch_worker_thread2 + 188
38 libsystem_pthread.dylib 0x00000001f0eaf8f8 _pthread_wqthread + 228
39 libsystem_pthread.dylib 0x00000001f0eac0cc start_wqthread + 8

To Reproduce
1. Call the method call.hangUp(options: nil).
2. Observe the Thread Performance Checker warning.
3. Notice that the screen might freeze for several seconds.

Code Snippet

self.call?.hangUp(options: nil) { error in
   if let error = error {
       DDLog("Failed to hang up: \(error.localizedDescription)")
   } else {
       DDLog("Call ended successfully")
   }
   self.deviceManager = nil
   self.call?.delegate = nil
   self.call = nil
   completion?()
}

Expected behavior
I expected that calling call.hangUp(options: nil) would hang up the call without triggering any warnings or causing the screen to freeze.

Additional context
I am using CallKit.

Setup (please complete the following information):

  • OS: iOS 17.5.1
  • IDE : XCode
  • AzureCommunicationCalling 2.9.0

Thanks in advance for your help!

Metadata

Metadata

Assignees

Labels

Communicationcustomer-reportedIssues that are reported by GitHub users external to the Azure organization.questionThe issue doesn't require a change to the product in order to be resolved. Most issues start as that

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions