aws-amplify / aws-sdk-ios

AWS SDK for iOS. For more information, see our web site:
https://aws-amplify.github.io/docs
Other
1.68k stars 885 forks source link

[AWSSynchronizedMutableDictionary removeObjectForKey:] crashed in ver 2.36.6 #5412

Closed tangguoEddy closed 2 months ago

tangguoEddy commented 2 months ago

In version 2.36.6, my app encountered this issue, which had never occurred in any previous versions.

I tried downgrading the SDK version to 2.36.5, and the issue no longer occurred.

Incident Identifier: 22DB774E-C483-4477-A7E4-5E6F8074B84B
Hardware Model:      iPhone8,1
Process:             Sesame [488]
Path:                /private/var/containers/Bundle/Application/E75DCF5C-01A6-497C-8ACF-B8C3AE1FB195/Sesame.app/Sesame
Identifier:          co.candyhouse.sesame2
Version:             3.0.54 (53)
AppStoreTools:       15F31e
AppVariant:          1:iPhone8,1:15
Beta:                YES
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           co.candyhouse.sesame2 [478]

Date/Time:           2024-07-29 16:43:19.5725 +0800
Launch Time:         2024-07-29 16:35:28.9459 +0800
OS Version:          iPhone OS 15.8.2 (19H384)
Release Type:        User
Baseband Version:    9.61.00
Report Version:      104

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000181e71c74
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: SIGNAL 5 Trace/BPT trap: 5
Terminating Process: exc handler [488]

Triggered by Thread:  9

Thread 0:
0   libsystem_kernel.dylib          0x00000001bcac1aac mach_msg_trap + 8 (:-1)
1   libsystem_kernel.dylib          0x00000001bcac207c mach_msg + 72 (mach_msg.c:119)
2   CoreFoundation                  0x0000000182177c88 __CFRunLoopServiceMachPort + 368 (CFRunLoop.c:2646)
3   CoreFoundation                  0x000000018217bf90 __CFRunLoopRun + 1160 (CFRunLoop.c:3000)
4   CoreFoundation                  0x000000018218f174 CFRunLoopRunSpecific + 572 (CFRunLoop.c:3268)
5   GraphicsServices                0x00000001a2cae988 GSEventRunModal + 160 (GSEvent.c:2200)
6   UIKitCore                       0x0000000184991a88 -[UIApplication _run] + 1080 (UIApplication.m:3511)
7   UIKitCore                       0x000000018472af78 UIApplicationMain + 336 (UIApplication.m:5064)
8   Sesame                          0x0000000102d6f1f8 main + 64 (AppDelegate.swift:16)
9   dyld                            0x00000001033984d0 start + 444 (dyldMain.cpp:879)

Thread 1:
0   libsystem_kernel.dylib          0x00000001bcac1aac mach_msg_trap + 8 (:-1)
1   libsystem_kernel.dylib          0x00000001bcac207c mach_msg + 72 (mach_msg.c:119)
2   CoreFoundation                  0x0000000182177c88 __CFRunLoopServiceMachPort + 368 (CFRunLoop.c:2646)
3   CoreFoundation                  0x000000018217bf90 __CFRunLoopRun + 1160 (CFRunLoop.c:3000)
4   CoreFoundation                  0x000000018218f174 CFRunLoopRunSpecific + 572 (CFRunLoop.c:3268)
5   Foundation                      0x000000018389beac -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 232 (NSRunLoop.m:373)
6   Foundation                      0x00000001838dafd0 -[NSRunLoop(NSRunLoop) runUntilDate:] + 88 (NSRunLoop.m:420)
7   UIKitCore                       0x0000000184910ef4 -[UIEventFetcher threadMain] + 512 (UIEventFetcher.m:1167)
8   Foundation                      0x00000001838e8bdc __NSThread__start__ + 792 (NSThread.m:972)
9   libsystem_pthread.dylib         0x00000001dd62a338 _pthread_start + 116 (pthread.c:891)
10  libsystem_pthread.dylib         0x00000001dd628938 thread_start + 8 (:-1)

Thread 2:
0   libsystem_kernel.dylib          0x00000001bcac1aac mach_msg_trap + 8 (:-1)
1   libsystem_kernel.dylib          0x00000001bcac207c mach_msg + 72 (mach_msg.c:119)
2   CoreFoundation                  0x0000000182177c88 __CFRunLoopServiceMachPort + 368 (CFRunLoop.c:2646)
3   CoreFoundation                  0x000000018217bf90 __CFRunLoopRun + 1160 (CFRunLoop.c:3000)
4   CoreFoundation                  0x000000018218f174 CFRunLoopRunSpecific + 572 (CFRunLoop.c:3268)
5   Foundation                      0x000000018389beac -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 232 (NSRunLoop.m:373)
6   AWSIoT                          0x0000000103824908 -[_SRRunLoopThread main] + 228 (AWSSRWebSocket.m:1905)
7   Foundation                      0x00000001838e8bdc __NSThread__start__ + 792 (NSThread.m:972)
8   libsystem_pthread.dylib         0x00000001dd62a338 _pthread_start + 116 (pthread.c:891)
9   libsystem_pthread.dylib         0x00000001dd628938 thread_start + 8 (:-1)

Thread 3:
0   libsystem_kernel.dylib          0x00000001bcac1aac mach_msg_trap + 8 (:-1)
1   libsystem_kernel.dylib          0x00000001bcac207c mach_msg + 72 (mach_msg.c:119)
2   CoreFoundation                  0x0000000182177c88 __CFRunLoopServiceMachPort + 368 (CFRunLoop.c:2646)
3   CoreFoundation                  0x000000018217bf90 __CFRunLoopRun + 1160 (CFRunLoop.c:3000)
4   CoreFoundation                  0x000000018218f174 CFRunLoopRunSpecific + 572 (CFRunLoop.c:3268)
5   CFNetwork                       0x0000000182b93b9c +[__CFN_CoreSchedulingSetRunnable _run:] + 428 (CoreSchedulingSet.mm:1563)
6   Foundation                      0x00000001838e8bdc __NSThread__start__ + 792 (NSThread.m:972)
7   libsystem_pthread.dylib         0x00000001dd62a338 _pthread_start + 116 (pthread.c:891)
8   libsystem_pthread.dylib         0x00000001dd628938 thread_start + 8 (:-1)

Thread 4:
0   libsystem_kernel.dylib          0x00000001bcac26b0 __select + 8 (:-1)
1   CoreFoundation                  0x00000001822148c8 __CFSocketManager + 628 (CFSocket.c:1343)
2   libsystem_pthread.dylib         0x00000001dd62a338 _pthread_start + 116 (pthread.c:891)
3   libsystem_pthread.dylib         0x00000001dd628938 thread_start + 8 (:-1)

Thread 5:
0   libsystem_kernel.dylib          0x00000001bcac1aac mach_msg_trap + 8 (:-1)
1   libsystem_kernel.dylib          0x00000001bcac207c mach_msg + 72 (mach_msg.c:119)
2   CoreFoundation                  0x0000000182177c88 __CFRunLoopServiceMachPort + 368 (CFRunLoop.c:2646)
3   CoreFoundation                  0x000000018217bf90 __CFRunLoopRun + 1160 (CFRunLoop.c:3000)
4   CoreFoundation                  0x000000018218f174 CFRunLoopRunSpecific + 572 (CFRunLoop.c:3268)
5   Foundation                      0x000000018389beac -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 232 (NSRunLoop.m:373)
6   AWSIoT                          0x000000010382cfb8 -[AWSIoTStreamThread main] + 768 (AWSIoTStreamThread.m:88)
7   Foundation                      0x00000001838e8bdc __NSThread__start__ + 792 (NSThread.m:972)
8   libsystem_pthread.dylib         0x00000001dd62a338 _pthread_start + 116 (pthread.c:891)
9   libsystem_pthread.dylib         0x00000001dd628938 thread_start + 8 (:-1)

Thread 6:
0   libobjc.A.dylib                 0x0000000199a20d74 objc_msgSend + 148 (:-1)
1   AWSIoT                          0x000000010382276c -[AWSSRWebSocket _pumpWriting] + 84 (AWSSRWebSocket.m:1155)
2   AWSIoT                          0x0000000103821870 -[AWSSRWebSocket _writeData:] + 64 (AWSSRWebSocket.m:781)
3   AWSIoT                          0x0000000103823724 -[AWSSRWebSocket _sendFrameWithOpcode:data:] + 672 (AWSSRWebSocket.m:1494)
4   libdispatch.dylib               0x0000000181ec3094 _dispatch_call_block_and_release + 24 (init.c:1517)
5   libdispatch.dylib               0x0000000181ec4094 _dispatch_client_callout + 16 (object.m:560)
6   libdispatch.dylib               0x0000000181e6a73c _dispatch_lane_serial_drain$VARIANT$mp + 644 (queue.c:3864)
7   libdispatch.dylib               0x0000000181e6b1f4 _dispatch_lane_invoke$VARIANT$mp + 408 (queue.c:3954)
8   libdispatch.dylib               0x0000000181e74ec8 _dispatch_workloop_worker_thread + 632 (queue.c:6401)
9   libsystem_pthread.dylib         0x00000001dd628e00 _pthread_wqthread + 284 (pthread.c:2599)
10  libsystem_pthread.dylib         0x00000001dd62892c start_wqthread + 8 (:-1)

Thread 7:
0   libsystem_pthread.dylib         0x00000001dd628924 start_wqthread + 0 (:-1)

Thread 8:
0   libsystem_pthread.dylib         0x00000001dd628924 start_wqthread + 0 (:-1)

Thread 9 Crashed:
0   libdispatch.dylib               0x0000000181e71c74 __DISPATCH_WAIT_FOR_QUEUE__ + 440 (queue.c:1655)
1   libdispatch.dylib               0x0000000181e71820 _dispatch_sync_f_slow + 136 (queue.c:1774)
2   AWSCore                         0x00000001031c9134 -[AWSSynchronizedMutableDictionary removeObjectForKey:] + 128 (AWSSynchronizedMutableDictionary.m:94)
3   AWSIoT                          0x00000001037a8f9c -[AWSIoTMQTTClient unsubscribeTopic:ackCallback:] + 332 (AWSIoTMQTTClient.m:997)
4   AWSIoT                          0x0000000103829af0 -[AWSIoTDataManager unsubscribeTopic:] + 112 (AWSIoTDataManager.m:770)
5   SesameSDK                       0x000000010372f46c specialized CHIoTManager.unsubscribeCHDeviceShadow(_:) + 420 (CHIoTManager.swift:213)
6   SesameSDK                       0x00000001036c20f4 CHIoTManager.unsubscribeCHDeviceShadow(_:) + 16 (<compiler-generated>:0)
7   SesameSDK                       0x00000001036c20f4 CHSesameOS3.__deallocating_deinit + 76 (<compiler-generated>:123)
8   SesameSDK                       0x00000001036c20f4 @objc CHSesameOS3.__deallocating_deinit + 112
9   SesameSDK                       0x00000001036e3668 0x1036b0000 + 210536
10  libswiftCore.dylib              0x0000000186c20c20 _swift_release_dealloc + 28 (HeapObject.cpp:703)
11  SesameSDK                       0x0000000103706a90 0x1036b0000 + 354960
12  libswiftCore.dylib              0x0000000186c20c20 _swift_release_dealloc + 28 (HeapObject.cpp:703)
13  libsystem_blocks.dylib          0x00000001dd5a2840 _Block_release + 184 (runtime.cpp:329)
14  AWSIoT                          0x00000001037a4e70 -[AWSIoTMQTTTopicModel .cxx_destruct] + 52 (AWSIoTMQTTClient.m:29)
15  libobjc.A.dylib                 0x0000000199a267d0 object_cxxDestructFromClass(objc_object*, objc_class*) + 112 (objc-class.mm:455)
16  libobjc.A.dylib                 0x0000000199a23858 objc_destructInstance + 88 (objc-runtime-new.mm:8231)
17  libobjc.A.dylib                 0x0000000199a2c7d4 _objc_rootDealloc + 52 (NSObject.mm:2014)
18  AWSCore                         0x00000001031c8de4 __53-[AWSSynchronizedMutableDictionary setObject:forKey:]_block_invoke + 44 (AWSSynchronizedMutableDictionary.m:78)
19  libdispatch.dylib               0x0000000181ec4094 _dispatch_client_callout + 16 (object.m:560)
20  libdispatch.dylib               0x0000000181e71964 _dispatch_lane_barrier_sync_invoke_and_complete + 52 (queue.c:1089)
21  AWSCore                         0x00000001031c8d80 -[AWSSynchronizedMutableDictionary setObject:forKey:] + 160 (AWSSynchronizedMutableDictionary.m:77)
22  AWSIoT                          0x00000001037a8ccc -[AWSIoTMQTTClient subscribeWithTopicModel:ackCallback:] + 112 (AWSIoTMQTTClient.m:974)
23  AWSIoT                          0x00000001037a88e4 -[AWSIoTMQTTClient subscribeToTopic:qos:messageCallback:ackCallback:] + 352 (AWSIoTMQTTClient.m:904)
24  AWSIoT                          0x000000010382961c -[AWSIoTDataManager subscribeToTopic:QoS:messageCallback:] + 184 (AWSIoTDataManager.m:667)
25  SesameSDK                       0x000000010370681c specialized subscirbe #1 () in CHIoTManager.subscribeCHDeviceShadow(_:onResponse:) + 932 (CHIoTManager.swift:180)
26  SesameSDK                       0x00000001036ee350 subscirbe #1 () in CHIoTManager.subscribeCHDeviceShadow(_:onResponse:) + 24 (<compiler-generated>:0)
27  SesameSDK                       0x00000001036ee350 specialized CHIoTManager.subscribeCHDeviceShadow(_:onResponse:) + 40 (CHIoTManager.swift:204)
28  SesameSDK                       0x00000001036ee350 CHIoTManager.subscribeCHDeviceShadow(_:onResponse:) + 40 (<compiler-generated>:175)
29  SesameSDK                       0x00000001036ee350 CHSesameTouchProDevice.goIOT() + 40 (CHSesameTouchProDevice.swift:31)
30  SesameSDK                       0x00000001036ee350 closure #1 in closure #1 in CHSesameTouchProDevice.register(result:) + 3828 (CHSesameTouchPro+Register.swift:54)
31  SesameSDK                       0x00000001036c3684 partial apply for thunk for @escaping @callee_guaranteed (@guaranteed SesameOS3CmdResponsePayload) -> () + 28
32  SesameSDK                       0x00000001036c1944 thunk for @escaping @callee_guaranteed (@in_guaranteed SesameOS3CmdResponsePayload) -> (@out ()) + 72 (<compiler-generated>:0)
33  SesameSDK                       0x00000001036c1f40 partial apply for thunk for @escaping @callee_guaranteed (@in_guaranteed SesameOS3CmdResponsePayload) -> (@out ()) + 24 (<compiler-generated>:0)
34  SesameSDK                       0x00000001036c1f40 CHSesameOS3.onGattSesameResponse(_:) + 168 (CHSesameOS3.swift:117)
35  SesameSDK                       0x00000001036c1e6c CHSesameOS3.parseNotifyPayload(_:) + 280 (CHSesameOS3.swift:112)
36  SesameSDK                       0x00000001036c3900 specialized CHSesameOS3.peripheral(_:didUpdateValueFor:error:) + 436 (CHSesameOS3.swift:97)
37  SesameSDK                       0x00000001036c1ca0 CHSesameOS3.peripheral(_:didUpdateValueFor:error:) + 8 (<compiler-generated>:0)
38  SesameSDK                       0x00000001036c1ca0 @objc CHSesameOS3.peripheral(_:didUpdateValueFor:error:) + 88
39  CoreBluetooth                   0x00000001a50607e4 -[CBPeripheral handleAttributeEvent:args:attributeSelector:delegateSelector:delegateFlag:] + 184 (CBPeripheral.m:804)
40  CoreBluetooth                   0x00000001a5060960 -[CBPeripheral handleCharacteristicEvent:characteristicSelector:delegateSelector:delegateFlag:] + 120 (CBPeripheral.m:826)
41  CoreBluetooth                   0x00000001a505cd2c -[CBPeripheral handleMsg:args:] + 588 (CBPeripheral.m:233)
42  CoreBluetooth                   0x00000001a5048468 -[CBCentralManager handleMsg:args:] + 180 (CBCentralManager.m:1451)
43  CoreBluetooth                   0x00000001a5084e2c -[CBManager xpcConnectionDidReceiveMsg:args:] + 204 (CBManager.m:428)
44  CoreBluetooth                   0x00000001a50752e4 __30-[CBXpcConnection _handleMsg:]_block_invoke + 64 (CBXpcConnection.m:370)
45  libdispatch.dylib               0x0000000181ec3094 _dispatch_call_block_and_release + 24 (init.c:1517)
46  libdispatch.dylib               0x0000000181ec4094 _dispatch_client_callout + 16 (object.m:560)
47  libdispatch.dylib               0x0000000181e6a73c _dispatch_lane_serial_drain$VARIANT$mp + 644 (queue.c:3864)
48  libdispatch.dylib               0x0000000181e6b224 _dispatch_lane_invoke$VARIANT$mp + 456 (queue.c:3954)
49  libdispatch.dylib               0x0000000181e6a610 _dispatch_lane_serial_drain$VARIANT$mp + 344 (queue.c:3864)
50  libdispatch.dylib               0x0000000181e6b1f4 _dispatch_lane_invoke$VARIANT$mp + 408 (queue.c:3954)
51  libdispatch.dylib               0x0000000181e74ec8 _dispatch_workloop_worker_thread + 632 (queue.c:6401)
52  libsystem_pthread.dylib         0x00000001dd628e00 _pthread_wqthread + 284 (pthread.c:2599)
53  libsystem_pthread.dylib         0x00000001dd62892c start_wqthread + 8 (:-1)

Thread 10:
0   libsystem_pthread.dylib         0x00000001dd628924 start_wqthread + 0 (:-1)

Thread 9 crashed with ARM Thread State (64-bit):
    x0: 0x000000016d49dac0   x1: 0x0000000283d31e80   x2: 0x00000001031c915c   x3: 0x0000000000000002
    x4: 0x0000000283d31e80   x5: 0x0000000000000012   x6: 0x0000000000000000   x7: 0x0000000000000403
    x8: 0x00600010000033a2   x9: 0x0000000000000001  x10: 0xff80002000000002  x11: 0x0000002000000002
   x12: 0x0000000000000002  x13: 0x00600010000033a2  x14: 0x0000041000000000  x15: 0x00000001f6e00510
   x16: 0x0000000181e68224  x17: 0x0000000181ec35b0  x18: 0x0000000000000000  x19: 0x000000016d49dac0
   x20: 0x0000000283d31e80  x21: 0x000000016d49db60  x22: 0x0000000283d31e80  x23: 0x0000000281d3a910
   x24: 0x0000000103a89000  x25: 0xf000000000000024  x26: 0x00000001fc325a90  x27: 0x000000016d49e040
   x28: 0x0000000280638d80   fp: 0x000000016d49dab0   lr: 0x0000000181e71820
    sp: 0x000000016d49da90   pc: 0x0000000181e71c74 cpsr: 0x80000000
   esr: 0xf2000001 (Breakpoint) brk 1

Binary Images:
        0x102d30000 -         0x102f97fff Sesame arm64  <b2c5c7444b54352e8ec6930207c795b6> /private/var/containers/Bundle/Application/E75DCF5C-01A6-497C-8ACF-B8C3AE1FB195/Sesame.app/Sesame
        0x1031c4000 -         0x1032abfff AWSCore arm64  <5fd1a852590636e792974f491262d25e> /private/var/containers/Bundle/Application/E75DCF5C-01A6-497C-8ACF-B8C3AE1FB195/Sesame.app/Frameworks/AWSCore.framework/AWSCore
        0x103380000 -         0x1033d3fff dyld arm64  <16c8ea1a1c773f4f97a66ae7fb25eb29> /usr/lib/dyld
        0x1036b0000 -         0x103763fff SesameSDK arm64  <22c9de2541e332b2b4acecf16ecb3da3> /private/var/containers/Bundle/Application/E75DCF5C-01A6-497C-8ACF-B8C3AE1FB195/Sesame.app/Frameworks/SesameSDK.framework/SesameSDK
        0x1037a0000 -         0x103a07fff AWSIoT arm64  <cf6f0ba7211c36849dd231878daf97e5> /private/var/containers/Bundle/Application/E75DCF5C-01A6-497C-8ACF-B8C3AE1FB195/Sesame.app/Frameworks/AWSIoT.framework/AWSIoT
        0x181e60000 -         0x181ee2fff libdispatch.dylib arm64  <9ccdbde315e13a45b3304a5e2c3f92bd> /usr/lib/system/libdispatch.dylib
        0x182171000 -         0x1825aefff CoreFoundation arm64  <eec1287d059b38c89bc158a0c8b1e6c2> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
        0x18294d000 -         0x182ddcfff CFNetwork arm64  <db182cd7f43339ad9531e81430e96a77> /System/Library/Frameworks/CFNetwork.framework/CFNetwork
        0x183884000 -         0x183b68fff Foundation arm64  <f9235fc7ec4e31c9b56e95cf10b07239> /System/Library/Frameworks/Foundation.framework/Foundation
        0x1844ac000 -         0x185c47fff UIKitCore arm64  <9d3018772593385c8f72f075aa0b48fa> /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore
        0x186931000 -         0x186d8efff libswiftCore.dylib arm64  <a31c8583dc6d3d6f9ac9d721b291b35d> /usr/lib/swift/libswiftCore.dylib
        0x199a1f000 -         0x199a56fff libobjc.A.dylib arm64  <f1b36686ed4835ef88960cea8e9da1c0> /usr/lib/libobjc.A.dylib
        0x1a2cad000 -         0x1a2cb5fff GraphicsServices arm64  <bb434d860991365fbed3c3923cf3073c> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices
        0x1a5036000 -         0x1a50c6fff CoreBluetooth arm64  <be9d30fb095c33ddb6404a295cafe6b5> /System/Library/Frameworks/CoreBluetooth.framework/CoreBluetooth
        0x1bcac1000 -         0x1bcaf4fff libsystem_kernel.dylib arm64  <102e8613667633f6a0b4f6e86a8636ce> /usr/lib/system/libsystem_kernel.dylib
        0x1dd5a1000 -         0x1dd5a2fff libsystem_blocks.dylib arm64  <6c29007a8f50382a9dec0ce8f441cd72> /usr/lib/system/libsystem_blocks.dylib
        0x1dd627000 -         0x1dd637fff libsystem_pthread.dylib arm64  <6679a5b3a40a37a7b1c5565a0f5cb6ab> /usr/lib/system/libsystem_pthread.dylib

EOF
ruisebas commented 2 months ago

Hi @tangguoEddy , thanks for opening this issue. We'll take a look and post updates here.

ruisebas commented 2 months ago

I've pushed a potential fix for this in the ruisebas/dictionary_crash branch. Would you be able to validate if it fixes the issue?

ruisebas commented 2 months ago

@tangguoEddy we've released a fix for this in 2.36.7.