0

After adding VoIP pushes (via Pushwoosh) for VoIP app using Skylink SDK I faced the crash, only on one my device (iPhone 5s 8.4). Looks like it's about video capturing. Another testers feel fine (iPhone 5s, iPhone 6, 8.4.1, 9.1), and my iPhone 4s is not crashing when I force-connect it to room without VoIP pushes.

UPD : crash is randomly reproduced on another devices

Here's crashing logs:

Nov 13 19:43:12 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: didConnectWithMessage (null)
Nov 13 19:43:16 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: didReceiveResponse() 200
Nov 13 19:43:16 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: connectionDidFinishLoading()
Nov 13 19:43:16 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: VERSION 10x
Nov 13 19:43:16 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: Response {"sid":"TBa15c2vlAMqi-3EAAlU","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":60000}
Nov 13 19:43:16 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: websocket supported -> using it now
Nov 13 19:43:16 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: Received All information:
sid: TBa15c2vlAMqi-3EAAlU
heartbeat: 25.000000
Transport: <SocketIOTransportWebsocket: 0x174226ac0>
Nov 13 19:43:16 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: start/reset Heartbeat
Nov 13 19:43:16 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: Prepare to send()
Nov 13 19:43:16 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: queue >>> 2
Nov 13 19:43:18 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: onData 40
Nov 13 19:43:18 iPhone-5s-Aft3rmath SkylinkP2P[1282] <Warning>: onConnect()
Nov 13 19:43:18 iPhone-5s-Aft3rmath kernel[0] <Notice>: AppleH6CamIn::setPowerStateGated: 1
Nov 13 19:43:18 iPhone-5s-Aft3rmath kernel[0] <Notice>: AppleH6CamIn::power_on_hardware
Nov 13 19:43:18 iPhone-5s-Aft3rmath kernel[0] <Notice>: AppleH6CamIn::power_on_hardware - using ISP-FAST
Nov 13 19:43:18 iPhone-5s-Aft3rmath kernel[0] <Notice>: AppleH6CamIn::ISP_EnableFastISPClock_gated, enableFlag=1
Nov 13 19:43:18 iPhone-5s-Aft3rmath kernel[0] <Notice>: AppleH6CamIn::ISP_EnableFastISPClock_gated - using ISP-FAST
Nov 13 19:43:18 iPhone-5s-Aft3rmath kernel[0] <Notice>: AppleH6CamIn::ISP_EnableFastISPClock_gated, enableFlag=1
Nov 13 19:43:18 iPhone-5s-Aft3rmath kernel[0] <Notice>: AppleH6CamIn::ISP_EnableFastISPClock_gated - using ISP-FAST
Nov 13 19:43:18 iPhone-5s-Aft3rmath kernel[0] <Notice>: AppleH6CamIn::ISP_SelectBestMIPIFrequencyIndex_gated - channel: 1, currentRawBitDepth: 1, index: 5
Nov 13 19:43:18 iPhone-5s-Aft3rmath ReportCrash[1306] <Error>: task_set_exception_ports(B07, 400, D03, 0, 0) failed with error (4: (os/kern) invalid argument)
Nov 13 19:43:18 iPhone-5s-Aft3rmath ReportCrash[1306] <Notice>: ReportCrash acting against PID 1282
Nov 13 19:43:18 iPhone-5s-Aft3rmath ReportCrash[1306] <Notice>: Formulating crash report for process SkylinkP2P[1282]
Nov 13 19:43:18 iPhone-5s-Aft3rmath mediaserverd[19] <Notice>: '' Aft3rmath.SkylinkP2P(pid = 1282) setting DiscoveryMode = DiscoveryMode_None, currentDiscoveryMode = DiscoveryMode_None
Nov 13 19:43:18 iPhone-5s-Aft3rmath locationd[57] <Notice>: Gesture EnabledForTopCLient: 0, EnabledInDaemonSettings: 0
Nov 13 19:43:18 iPhone-5s-Aft3rmath com.apple.xpc.launchd[1] (UIKitApplication:Aft3rmath.SkylinkP2P[0xff15][1282]) <Notice>: Service exited due to signal: Segmentation fault: 11
Nov 13 19:43:18 iPhone-5s-Aft3rmath ReportCrash[1306] <Notice>: Saved report to /var/mobile/Library/Logs/CrashReporter/SkylinkP2P_2015-11-13-194318_iPhone-5s-Aft3rmath.ips
Nov 13 19:43:18 iPhone-5s-Aft3rmath kernel[0] <Notice>: AppleH6CamIn::ISP_FlushInactiveDARTMappings: 0x00000000
Nov 13 19:43:18 iPhone-5s-Aft3rmath SpringBoard[50] <Warning>: Application 'UIKitApplication:Aft3rmath.SkylinkP2P[0xff15]' crashed.

And here's all crash free logs look like:

Nov 13 21:43:11 Daniil SkylinkP2P[1852] <Warning>: didConnectWithMessage (null)
Nov 13 21:43:12 Daniil SkylinkP2P[1852] <Warning>: didReceiveResponse() 200
Nov 13 21:43:12 Daniil SkylinkP2P[1852] <Warning>: connectionDidFinishLoading()
Nov 13 21:43:12 Daniil SkylinkP2P[1852] <Warning>: VERSION 10x
Nov 13 21:43:12 Daniil SkylinkP2P[1852] <Warning>: Response {"sid":"raDmeW9m-Cue0K5_AAlT","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":60000}
Nov 13 21:43:12 Daniil SkylinkP2P[1852] <Warning>: websocket supported -> using it now
Nov 13 21:43:12 Daniil SkylinkP2P[1852] <Warning>: Received All information:
        sid: raDmeW9m-Cue0K5_AAlT
        heartbeat: 25.000000
        Transport: <SocketIOTransportWebsocket: 0x174226aa0>
Nov 13 21:43:12 Daniil SkylinkP2P[1852] <Warning>: start/reset Heartbeat
Nov 13 21:43:12 Daniil SkylinkP2P[1852] <Warning>: Prepare to send()
Nov 13 21:43:12 Daniil SkylinkP2P[1852] <Warning>: queue >>> 2
Nov 13 21:43:15 Daniil SkylinkP2P[1852] <Warning>: onData 40
Nov 13 21:43:15 Daniil SkylinkP2P[1852] <Warning>: onConnect()
Nov 13 21:43:15 Daniil kernel[0] <Notice>: AppleH6CamIn::setPowerStateGated: 1
Nov 13 21:43:15 Daniil kernel[0] <Notice>: AppleH6CamIn::power_on_hardware
Nov 13 21:43:15 Daniil kernel[0] <Notice>: AppleH6CamIn::power_on_hardware - using ISP-FAST
Nov 13 21:43:15 Daniil SkylinkP2P[1852] <Warning>: doQueue() >> 1
Nov 13 21:43:16 Daniil kernel[0] <Notice>: AppleH6CamIn::ISP_EnableFastISPClock_gated, enableFlag=1
Nov 13 21:43:16 Daniil kernel[0] <Notice>: AppleH6CamIn::ISP_EnableFastISPClock_gated - using ISP-FAST
Nov 13 21:43:16 Daniil kernel[0] <Notice>: AppleH6CamIn::ISP_EnableFastISPClock_gated, enableFlag=1
Nov 13 21:43:16 Daniil kernel[0] <Notice>: AppleH6CamIn::ISP_EnableFastISPClock_gated - using ISP-FAST
Nov 13 21:43:16 Daniil kernel[0] <Notice>: AppleH6CamIn::ISP_SelectBestMIPIFrequencyIndex_gated - channel: 1, currentRawBitDepth: 3, index: 5

Any ideas?

UPD: Crashlytics points on cricket::VideoCapturer::SetCaptureState(cricket::CaptureState)

Aft3rmath
  • 669
  • 2
  • 12
  • 21
  • My first suspicion for this symptom is that the problematic device had different device settings. Being in a different locale, or having the 12/24 switch set the opposite way in the device settings can produce strange symptoms. – Hot Licks Nov 16 '15 at 00:07
  • @HotLicks UPD 2: crash is randomly reproduced on another devices – Aft3rmath Nov 16 '15 at 11:28
  • What does the actual stack trace look like? – Phillip Mills Nov 16 '15 at 11:41
  • @PhillipMills Thanks for the reply. Do you mean this http://stackoverflow.com/questions/220159/how-do-you-print-out-a-stack-trace-to-the-console-log-in-cocoa ? – Aft3rmath Nov 16 '15 at 11:51
  • 2
    @Aft3rmath Not really. When an app crashes, it writes a crash report which includes the state of the stack for every thread -- plus other information -- as it says in your first console log excerpt. ("Nov 13 19:43:18 iPhone-5s-Aft3rmath ReportCrash[1306] : Formulating crash report for process SkylinkP2P[1282]") – Phillip Mills Nov 16 '15 at 13:16
  • @PhillipMills I uploaded crash log from iPhone here: http://pastebin.com/hk1VM3UW The thing is that it crashes only when there was incoming VoIP push that initiated call. With regular push all is ok. – Aft3rmath Nov 17 '15 at 14:00
  • 2
    Next step: look up one of the references for how to use "symbolicatecrash" to turn all those numbers into information related to your code. – Phillip Mills Nov 17 '15 at 14:02
  • @PhillipMills Thanks for your replies. Solved by dispatch_async(dispatch_get_main_queue(), ^{ [[P2PConnectionManager sharedManager] handlePushNotification:userInfo]; }); – Aft3rmath Nov 17 '15 at 15:52

1 Answers1

1

The thing was that standard pushes seem to be handled in main queue, while VoIP pushes are not. So in my

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type

I had to add

dispatch_async(dispatch_get_main_queue(), ^{
        [[P2PConnectionManager sharedManager] handlePushNotification:userInfo];
    });

And everything seems ok now. Hope this will help somebody. Cheers!

Aft3rmath
  • 669
  • 2
  • 12
  • 21