Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix EXC_BAD_ACCESS crash when pending callback is nil
- This failed in RTP9a because it sometimes ends but the ACK/NACK of the last sent presence message has not arrived yet, it means the callback is pended. The callback is called when the connection closes (test ends), a "ARTErrorInfo with code 0, message: connection broken before receiving publishing acknowledgment." happens and it will crash because the callback is nil. EXC_BAD_ACCESS (code=1, address=0x10) in ARTRealtimeChannel.m:335 Thread 3 Queue : io.ably.tests (serial) #0 0x000000012186c6b4 in __47-[ARTRealtimeChannel publishPresence:callback:]_block_invoke.164 at /<redacted>/ably-cocoa/Source/ARTRealtimeChannel.m:335 #1 0x000000012186ecdd in __43-[ARTRealtimeChannel sendMessage:callback:]_block_invoke at /<redacted>/ably-cocoa/Source/ARTRealtimeChannel.m:450 #2 0x00000001218be38e in __22-[ARTEventEmitter on:]_block_invoke at /<redacted>/ably-cocoa/Source/ARTEventEmitter.m:209 #3 0x00000001083ff632 in -[__NSObserver _doit:] () #4 0x00000001094827bc in __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ () #5 0x0000000109481c3f in _CFXRegistrationPost () #6 0x0000000109481983 in ___CFXNotificationPost_block_invoke () #7 0x00000001095657c2 in -[_CFXNotificationRegistrar find:object:observer:enumerator:] () #8 0x00000001094812d1 in _CFXNotificationPost () #9 0x00000001083ffddb in -[NSNotificationCenter postNotificationName:object:userInfo:] () #10 0x00000001218bf843 in -[ARTEventEmitter emit:with:] at /<redacted>/ably-cocoa/Source/ARTEventEmitter.m:275 #11 0x0000000121915222 in -[ARTRealtime transition:withErrorInfo:] at /<redacted>/ably-cocoa/Source/ARTRealtime.m:429 #12 0x0000000121914c0a in -[ARTRealtime transition:] at /<redacted>/ably-cocoa/Source/ARTRealtime.m:412 #13 0x000000012191b755 in -[ARTRealtime onClosed] at /<redacted>/ably-cocoa/Source/ARTRealtime.m:768 #14 0x0000000121928933 in -[ARTRealtime realtimeTransport:didReceiveMessage:] at /<redacted>/ably-cocoa/Source/ARTRealtime.m:1392 #15 0x00000001218c4bef in -[ARTWebSocketTransport receive:] at /<redacted>/ably-cocoa/Source/ARTWebSocketTransport.m:109 #16 0x00000001218c4cbe in -[ARTWebSocketTransport receiveWithData:] at /<redacted>/ably-cocoa/Source/ARTWebSocketTransport.m:114 #17 0x00000001218c7c44 in -[ARTWebSocketTransport webSocketMessageData:] at /<redacted>/ably-cocoa/Source/ARTWebSocketTransport.m:367 #18 0x00000001218c77a0 in -[ARTWebSocketTransport webSocket:didReceiveMessage:] at /<redacted>/ably-cocoa/Source/ARTWebSocketTransport.m:349 #19 0x0000000121bf06c9 in __43-[SRWebSocket _handleFrameWithData:opCode:]_block_invoke.239 () #20 0x000000010b3e2ccf in _dispatch_call_block_and_release () #21 0x000000010b3e3d02 in _dispatch_client_callout () #22 0x000000010b3ea720 in _dispatch_lane_serial_drain () #23 0x000000010b3eb261 in _dispatch_lane_invoke () #24 0x000000010b3f3fcb in _dispatch_workloop_worker_thread () #25 0x000000010bb12611 in _pthread_wqthread () #26 0x000000010bb123fd in start_wqthread ()
- Loading branch information