iOS 集成测试随机崩溃:与 backboardd 通信时遇到 XPC 错误

Posted

技术标签:

【中文标题】iOS 集成测试随机崩溃:与 backboardd 通信时遇到 XPC 错误【英文标题】:iOS Integration Tests randomly crash: Encountered an XPC error while communicating with backboardd 【发布时间】:2014-01-23 21:58:15 【问题描述】:

在针对服务器运行带有实时请求的集成测试时,有时我会遇到以下崩溃。有人知道为什么吗?

我目前在 OS X Mavericks 上并在 ios 7.0.3 SDK 和 Jenkins 上运行这些测试。

2014-01-23 14:55:47.178 xctest[74229:303] 200 <- https://site/30012.zipjson?deltadate=2014-02-22T16%3A31%3A56.000Z&encrypt=N
2014-01-23 14:55:47.186 xctest[74229:303] GET -> https://site/30012.zipjson?deltadate=2014-02-22T16%3A31%3A56.000Z&encrypt=N
2014-01-23 14:55:52.456 xctest[74229:303] 200 <- https://site/30012.zipjson?deltadate=2014-02-22T16%3A31%3A56.000Z&encrypt=N
2014-01-23 14:55:52.467 xctest[74229:303] GET -> https://site/30012.zipjson?deltadate=2014-02-22T16%3A31%3A56.000Z&encrypt=N
2014-01-23 14:55:52.784 xctest[74229:270b] Encountered an XPC error while communicating with backboardd: <error: 0x15bb6a4>  count = 1, contents =
    "XPCErrorDescription" => <string: 0x15bb884>  length = 18, contents = "Connection invalid" 

2014-01-23 14:55:52.784 xctest[74229:2e0f] TASK-ASSERT: cfurlcache - ProcessCacheTask - FAILED to get task-assertion, going commando with 2 items to process.
2014-01-23 14:55:56.470 xctest[74229:303] 200 <- https:/site/30012.zipjson?deltadate=2014-02-22T16%3A31%3A56.000Z&encrypt=N
2014-01-23 14:55:56.518 xctest[74229:303] GET -> https://site/30012.zipjson?deltadate=2014-02-22T16%3A31%3A56.000Z&encrypt=N
2014-01-23 14:56:00.836 xctest[74229:303] 200 <- https://site/30012.zipjson?deltadate=2014-02-22T16%3A31%3A56.000Z&encrypt=N
2014-01-23 14:56:00.876 xctest[74229:303] GET -> https://site/30012.zipjson?deltadate=2014-02-22T16%3A31%3A56.000Z&encrypt=N
2014-01-23 14:56:02.785 xctest[74229:2e0f] TASK-ASSERT: cfurlcache - ProcessCacheTask - FAILED to get task-assertion, going commando with 2 items to process.
2014-01-23 14:56:02.785 xctest[74229:e03] Encountered an XPC error while communicating with backboardd: <error: 0x15bb6a4>  count = 1, contents =
    "XPCErrorDescription" => <string: 0x15bb884>  length = 18, contents = "Connection invalid" 

2014-01-23 14:56:07.330 xctest[74229:303] 200 <- https://site/30012.zipjson?deltadate=2014-02-22T16%3A31%3A56.000Z&encrypt=N
2014-01-23 14:56:07.392 xctest[74229:303] GET -> https://site/30012.zipjson?deltadate=2014-02-22T16%3A31%3A56.000Z&encrypt=N
2014-01-23 14:56:12.786 xctest[74229:1703] TASK-ASSERT: cfurlcache - ProcessCacheTask - FAILED to get task-assertion, going commando with 1 items to process.
2014-01-23 14:56:12.786 xctest[74229:270b] Encountered an XPC error while communicating with backboardd: <error: 0x15bb6a4>  count = 1, contents =
    "XPCErrorDescription" => <string: 0x15bb884>  length = 18, contents = "Connection invalid" 

Test crashed while running.

CRASH REPORT: xctest_2014-01-23-145619_Jenkinss-Mac-mini.crash

Process:         xctest [74229]
Path:            /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/Developer/usr/bin/xctest
Identifier:      xctest
Version:         11
Code Type:       X86 (Native)
Parent Process:  sim [74182]
Responsible:     Terminal [1058]
User ID:         501

Date/Time:       2014-01-23 14:56:12.852 -0600
OS Version:      Mac OS X 10.9.1 (13B42)
Report Version:  11
Anonymous UUID:  1E15282E-FD52-64B4-798E-2ADBDF3979B5

Sleep/Wake UUID: 4DAEB09F-C4D4-4A7E-BF75-7C73D217FE3B

Crashed Thread:  7  Dispatch queue: com.apple.backboardservices.processassertion

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000003000000c

VM Regions Near 0x3000000c:
    __LINKEDIT             000000002010c000-0000000020112000 [   24K] r--/rwx SM=COW  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/Developer/Library/Frameworks/XCTest.framework/XCTest
--> 
    __TEXT                 000000008fe47000-000000008fe7a000 [  204K] r-x/rwx SM=COW  /usr/lib/dyld

Application Specific Information:
objc_msgSend() selector name: queue_invalidate:
iPhone Simulator (external launch) , iPhone OS 7.0.3 (unknown/11B508)


Thread 0:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x01794f7a mach_msg_trap + 10
1   libsystem_kernel.dylib          0x0179416c mach_msg + 68
2   CoreFoundation                  0x00acbe49 __CFRunLoopServiceMachPort + 169
3   CoreFoundation                  0x00ad144d __CFRunLoopRun + 1341
4   CoreFoundation                  0x00ad0ac3 CFRunLoopRunSpecific + 467
5   CoreFoundation                  0x00ad08db CFRunLoopRunInMode + 123
6   Foundation                      0x0009b9c5 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 284
7   Foundation                      0x0009b865 -[NSRunLoop(NSRunLoop) runUntilDate:] + 88
8   nLinkIntegrationTests           0x066c1ad1 +[MDTTestHelpers wait:secondsForBlock:] + 449 (MDTTestHelpers.m:27)
9   nLinkIntegrationTests           0x067c802d -[MDTCookieStressTest testTryToBreakAuthentication] + 941 (MDTCookieStressTest.m:39)
10  CoreFoundation                  0x00b1fd1d __invoking___ + 29
11  CoreFoundation                  0x00b1fc2a -[NSInvocation invoke] + 362
12  XCTest                          0x201032bf -[XCTestCase invokeTest] + 212
13  XCTest                          0x2010338d -[XCTestCase performTest:] + 111
14  otest-shim-ios.dylib            0x00008d45 XCPerformTestWithSuppressedExpectedAssertionFailures + 172 (otest-shim.m:357)
15  otest-shim-ios.dylib            0x00008c94 XCTestCase_performTest + 32 (otest-shim.m:371)
16  XCTest                          0x2010417c -[XCTest run] + 82
17  XCTest                          0x20102a44 -[XCTestSuite performTest:] + 139
18  XCTest                          0x2010417c -[XCTest run] + 82
19  XCTest                          0x20102a44 -[XCTestSuite performTest:] + 139
20  XCTest                          0x2010417c -[XCTest run] + 82
21  XCTest                          0x20102a44 -[XCTestSuite performTest:] + 139
22  XCTest                          0x2010417c -[XCTest run] + 82
23  XCTest                          0x20105aa1 +[XCTestProbe runTests:] + 183
24  libobjc.A.dylib                 0x007b5737 +[NSObject performSelector:withObject:] + 70
25  xctest                          0x0000233e 0x1000 + 4926
26  xctest                          0x00002590 0x1000 + 5520
27  xctest                          0x00002671 0x1000 + 5745
28  xctest                          0x00002007 0x1000 + 4103
29  libdyld.dylib                   0x0166370d start + 1

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib          0x0179a992 kevent64 + 10
1   libdispatch.dylib               0x013c2f3e _dispatch_mgr_invoke + 238
2   libdispatch.dylib               0x013c2c7a _dispatch_mgr_thread + 60

Thread 2:
0   libsystem_kernel.dylib          0x0179a046 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x0175ddcf _pthread_wqthread + 372
2   libsystem_pthread.dylib         0x01761cce start_wqthread + 30

Thread 3:
0   libsystem_kernel.dylib          0x0179a046 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x0175ddcf _pthread_wqthread + 372
2   libsystem_pthread.dylib         0x01761cce start_wqthread + 30

Thread 4:: AFNetworking
0   libsystem_kernel.dylib          0x01794f7a mach_msg_trap + 10
1   libsystem_kernel.dylib          0x0179416c mach_msg + 68
2   CoreFoundation                  0x00acbe49 __CFRunLoopServiceMachPort + 169
3   CoreFoundation                  0x00ad13b1 __CFRunLoopRun + 1185
4   CoreFoundation                  0x00ad0ac3 CFRunLoopRunSpecific + 467
5   CoreFoundation                  0x00ad08db CFRunLoopRunInMode + 123
6   Foundation                      0x0009b9c5 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 284
7   Foundation                      0x000378d1 -[NSRunLoop(NSRunLoop) run] + 82
8   nLinkIntegrationTests           0x068475eb +[AFURLConnectionOperation networkRequestThreadEntryPoint:] + 315 (AFURLConnectionOperation.m:185)
9   Foundation                      0x00096597 -[NSThread main] + 76
10  Foundation                      0x000964f6 __NSThread__main__ + 1275
11  libsystem_pthread.dylib         0x0175c5fb _pthread_body + 144
12  libsystem_pthread.dylib         0x0175c485 _pthread_start + 130
13  libsystem_pthread.dylib         0x01761cf2 thread_start + 34

Thread 5:: com.apple.NSURLConnectionLoader
0   libsystem_kernel.dylib          0x01794f7a mach_msg_trap + 10
1   libsystem_kernel.dylib          0x0179416c mach_msg + 68
2   CoreFoundation                  0x00acbe49 __CFRunLoopServiceMachPort + 169
3   CoreFoundation                  0x00ad13b1 __CFRunLoopRun + 1185
4   CoreFoundation                  0x00ad0ac3 CFRunLoopRunSpecific + 467
5   CoreFoundation                  0x00ad08db CFRunLoopRunInMode + 123
6   Foundation                      0x0003a9de +[NSURLConnection(Loader) _resourceLoadLoop:] + 381
7   Foundation                      0x00096597 -[NSThread main] + 76
8   Foundation                      0x000964f6 __NSThread__main__ + 1275
9   libsystem_pthread.dylib         0x0175c5fb _pthread_body + 144
10  libsystem_pthread.dylib         0x0175c485 _pthread_start + 130
11  libsystem_pthread.dylib         0x01761cf2 thread_start + 34

Thread 6:: com.apple.CFSocket.private
0   libsystem_kernel.dylib          0x01799ace __select + 10
1   CoreFoundation                  0x00b0f3eb __CFSocketManager + 875
2   libsystem_pthread.dylib         0x0175c5fb _pthread_body + 144
3   libsystem_pthread.dylib         0x0175c485 _pthread_start + 130
4   libsystem_pthread.dylib         0x01761cf2 thread_start + 34

Thread 7 Crashed:: Dispatch queue: com.apple.backboardservices.processassertion
0   libobjc.A.dylib                 0x007b30b2 objc_msgSend + 14
1   BackBoardServices               0x019621db __47-[BKSProcessAssertion queue_registerWithServer]_block_invoke + 197
2   libxpc.dylib                    0x01594008 _xpc_connection_call_event_handler + 65
3   libxpc.dylib                    0x01593ac5 _xpc_connection_mach_event + 1687
4   libdispatch.dylib               0x013d1590 _dispatch_client_callout4 + 37
5   libdispatch.dylib               0x013c4ef0 _dispatch_mach_cancel_invoke + 61
6   libdispatch.dylib               0x013c415f _dispatch_mach_invoke + 378
7   libdispatch.dylib               0x013bf00f _dispatch_queue_drain + 340
8   libdispatch.dylib               0x013bee7a _dispatch_queue_invoke + 128
9   libdispatch.dylib               0x013bfe1f _dispatch_root_queue_drain + 83
10  libdispatch.dylib               0x013c0137 _dispatch_worker_thread2 + 39
11  libsystem_pthread.dylib         0x0175ddab _pthread_wqthread + 336
12  libsystem_pthread.dylib         0x01761cce start_wqthread + 30

Thread 8:
0   libsystem_kernel.dylib          0x0179a046 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x0175ddcf _pthread_wqthread + 372
2   libsystem_pthread.dylib         0x01761cce start_wqthread + 30

Thread 7 crashed with X86 Thread State (32-bit):
  eax: 0x0d42f710  ebx: 0x01962124  ecx: 0x0197847b  edx: 0x30000000
  edi: 0x015bb6a4  esi: 0x015bb6a4  ebp: 0xb029ad68  esp: 0xb029ad3c
   ss: 0x00000023  efl: 0x00010202  eip: 0x007b30b2   cs: 0x0000001b
   ds: 0x00000023   es: 0x00000023   fs: 0x00000023   gs: 0x0000000f
  cr2: 0x3000000c

Logical CPU:     2
Error Code:      0x00000004
Trap Number:     14
--------------------------------------------------------------------------------

【问题讨论】:

我在运行带有 Calabash 框架的 ios 测试套件时遇到了类似的情况。测试初始化​​时,模拟器正在记录“与 backboardd 通信时遇到 XPC 错误”。 Mavericks + ios 7 模拟器也是如此。 我真的希望 7.1 解决这个问题... 我在简单的命令行构建中遇到了相同的潜在错误 (Encountered an XPC error while communicating with backboardd),但间歇性地。布莱赫。 这可能是 Apple 的问题,我在 iOS 7.0.4 的设备上遇到了这个问题,但在 iOS 7.0 的模拟器中没有导致这个问题。 升级到 iOS 版本 7.0.6 解决了这个问题。 【参考方案1】:

升级到 iOS 版本 7.0.6 解决了这个问题。

【讨论】:

在 7.1.1 中这仍然发生在我身上 我在 7.1.2 中遇到了类似的问题。有什么提示可能导致这种情况吗?

以上是关于iOS 集成测试随机崩溃:与 backboardd 通信时遇到 XPC 错误的主要内容,如果未能解决你的问题,请参考以下文章

什么是“响应 backboardd 的终止而终止”?

分支 IO 随机应用程序崩溃 - Kotlin

iOS 测试因 waitForExpectationsWithTimeout 而崩溃

只需 2 步,定位集成融云时的崩溃与错误 - iOS 篇

iOS崩溃日志 如何看

使用 iOS 7 SDK 的随机 iOS 6 崩溃