pendo-io/pendo-mobile-sdk

💥 Crash on ` -[PNDMutableSet addObject:]`

Closed this issue · 5 comments

Platform + Version

iOS 17.5.1, iPhone 12 Pro Max

SDK Version

3.3.1

Framework

Native, SwiftUI

Describe the bug

Crash of the app.

To Reproduce

Yet unknown.

Expected behavior

No crash.

Stack Trace

Crashed: com.apple.root.default-qos
0  libsystem_kernel.dylib         0xc42c __pthread_kill + 8
1  libsystem_pthread.dylib        0x7c0c pthread_kill + 268
2  libsystem_c.dylib              0x75ba0 abort + 180
3  libsystem_malloc.dylib         0x9588 malloc_vreport + 896
4  libsystem_malloc.dylib         0x91f8 malloc_report + 64
5  libsystem_malloc.dylib         0x87b0 find_zone_and_free + 528
6  CoreFoundation                 0x2f8a8 __rehashs + 224
7  Pendo                          0xb8f5c -[PNDMutableSet addObject:] + 72
8  Pendo                          0x28b00 -[PNDFXActionDispatcher registerObserver:selector:forActionClass:destinationId:] + 256
9  Pendo                          0x289d0 -[PNDFXActionDispatcher registerObserver:forActionClass:destinationId:] + 220
10 Pendo                          0x30a30 +[PNDGlobalActionHandler registerGlobalHandler] + 664
11 Pendo                          0x1096b4 -[PendoManagerMediator initGuidesMediatorWithModel:] + 96
12 Pendo                          0x7e898 -[PendoAPIHelper setupWithInitModel:] + 1116
13 Pendo                          0x7e370 -[PendoAPIHelper getInitModel] + 572
14 Pendo                          0x7ce20 __35-[PendoAPIHelper startSDKInitFlow:]_block_invoke_3 + 192
15 Pendo                          0xf3730 __58-[IIOBFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 72
16 Pendo                          0xf1318 __32+[IIOBFExecutor defaultExecutor]_block_invoke_2 + 128
17 Pendo                          0xf17d0 -[IIOBFExecutor execute:] + 60
18 Pendo                          0xf33f8 -[IIOBFTask runContinuations] + 272
19 Pendo                          0xf2f0c -[IIOBFTask trySetResult:] + 112
20 Pendo                          0xf6660 -[IIOBFTaskCompletionSource trySetResult:] + 60
21 Pendo                          0x7da8c __33-[PendoAPIHelper setupNewSession]_block_invoke + 536
22 Pendo                          0xae84c __80-[PNDSetupManager handleSetupResponse:error:results:completionBlock:retryBlock:]_block_invoke + 2920
23 libdispatch.dylib              0x213c _dispatch_call_block_and_release + 32
24 libdispatch.dylib              0x3dd4 _dispatch_client_callout + 20
25 libdispatch.dylib              0x6f6c _dispatch_queue_override_invoke + 928
26 libdispatch.dylib              0x15894 _dispatch_root_queue_drain + 392
27 libdispatch.dylib              0x1609c _dispatch_worker_thread2 + 156
28 libsystem_pthread.dylib        0x48f8 _pthread_wqthread + 228
29 libsystem_pthread.dylib        0x10cc start_wqthread + 8

Hi @msrutek-paylocity
maybe you have a full crash report?

@MikePendo Unfortunately, we only have a single occurrence of this crash in Crashlytics and no trace of it in the Apple crash reporting tool.

Hello @MikePendo , we're still sometimes seeing these types of crashes with i.e. EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000ee4f7d871740. Could there be a memory management problem, such as trying to access a deallocated object?

We also have a couple of slightly different stack traces, for example

Crashed: com.apple.root.default-qos
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000010
0  CoreFoundation                 0x26a8 -[__NSDictionaryM setObject:forKeyedSubscript:] + 452
1  Pendo                          0x28d70 -[PNDFXActionDispatcher registerObserver:selector:forActionClass:destinationId:] + 404
2  Pendo                          0x28bac -[PNDFXActionDispatcher registerObserver:forActionClass:destinationId:] + 220
3  Pendo                          0x30bd4 +[PNDGlobalActionHandler registerGlobalHandler] + 600
4  Pendo                          0x10c9a4 -[PendoManagerMediator initGuidesMediatorWithModel:] + 96
5  Pendo                          0x7fa9c -[PendoAPIHelper setupWithInitModel:] + 1116
6  Pendo                          0x7f574 -[PendoAPIHelper getInitModel] + 572
7  Pendo                          0x7e004 __35-[PendoAPIHelper startSDKInitFlow:]_block_invoke_3 + 192
8  Pendo                          0xf69a8 __58-[IIOBFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 72
9  Pendo                          0xf4590 __32+[IIOBFExecutor defaultExecutor]_block_invoke_2 + 128
10 Pendo                          0xf4a48 -[IIOBFExecutor execute:] + 60
11 Pendo                          0xf6670 -[IIOBFTask runContinuations] + 272
12 Pendo                          0xf6184 -[IIOBFTask trySetResult:] + 112
13 Pendo                          0xf98d8 -[IIOBFTaskCompletionSource trySetResult:] + 60
14 Pendo                          0x7ec70 __33-[PendoAPIHelper setupNewSession]_block_invoke + 536
15 Pendo                          0xb0d04 __80-[PNDSetupManager handleSetupResponse:error:results:completionBlock:retryBlock:]_block_invoke + 2920
16 libdispatch.dylib              0x213c _dispatch_call_block_and_release + 32
17 libdispatch.dylib              0x3dd4 _dispatch_client_callout + 20
18 libdispatch.dylib              0x6f6c _dispatch_queue_override_invoke + 928
19 libdispatch.dylib              0x15894 _dispatch_root_queue_drain + 392
20 libdispatch.dylib              0x1609c _dispatch_worker_thread2 + 156
21 libsystem_pthread.dylib        0x48f8 _pthread_wqthread + 228
22 libsystem_pthread.dylib        0x10cc start_wqthread + 8   

which does not seem to contain the -[PNDMutableSet addObject:] call. Instead, it has -[PNDFXActionDispatcher registerObserver:selector:forActionClass:destinationId:].

Would it be possible to check that method? @MikePendo

Hi @msrutek-paylocity,
They are all related to memory issues.
We've made significant memory management improvements in version 3.4.3 that should help with crashes like this.
Please upgrade to 3.4.3 and if you notice similar issues, please open a new ticket with the crash logs.
Closing this one.