Странный сбой в Network Extension IPC

Иногда я получаю странный сбой внутри моего пакетного туннеля (сетевого расширения), когда я отправляю сообщение IPC из графического интерфейса:

Hardware Model:      iPad5,4
Process:             PacketTunnel [7893]
Code Type:           ARM-64 (Native)
Parent Process:      launchd [1]

Date/Time:           2016-05-04 17:57:58.58 +0300
Launch Time:         2016-05-04 17:55:55.55 +0300
OS Version:          iOS 9.0.2 (13A452)
Report Version:      105

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000000000c0
Triggered by Thread:  0

Filtered syslog:
None found

Global Trace Buffer (reverse chronological seconds):
19.714507    libextension.dylib        0x00000001965c0dc8 tearing down context in extension due to invalidation



Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libobjc.A.dylib               0x0000000196d87890 lookUpImpOrForward + 80
1   libobjc.A.dylib               0x0000000196d91db8 _objc_msgSend_uncached_impcache + 56
2   libobjc.A.dylib               0x0000000196d91db8 _objc_msgSend_uncached_impcache + 56
3   NetworkExtension              0x0000000185552988 __70-[NEExtensionTunnelProviderContext establishIPCWithCompletionHandler:]_block_invoke + 104
4   NetworkExtension              0x000000018546b3ac -[NEIPC handleMessage:withHandler:] + 444
5   NetworkExtension              0x000000018546b68c __39-[NEIPC setupMessageHandlingWithQueue:]_block_invoke + 172
6   libxpc.dylib                  0x00000001977c130c _xpc_connection_call_event_handler + 68
7   libxpc.dylib                  0x00000001977bf0b4 _xpc_connection_mach_event + 2132
8   libdispatch.dylib             0x000000019756d86c _dispatch_client_callout4 + 16
9   libdispatch.dylib             0x0000000197571b58 _dispatch_mach_msg_invoke + 656
10  libdispatch.dylib             0x0000000197579930 _dispatch_queue_drain + 1332
11  libdispatch.dylib             0x0000000197570c6c _dispatch_mach_invoke + 600
12  libdispatch.dylib             0x00000001975728d8 _dispatch_main_queue_callback_4CF + 492
13  CoreFoundation                0x0000000182164258 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
14  CoreFoundation                0x00000001821620c0 __CFRunLoopRun + 1628
15  CoreFoundation                0x0000000182090dc0 CFRunLoopRunSpecific + 384
16  Foundation                    0x00000001830047ec -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 308
17  Foundation                    0x0000000183059e14 -[NSRunLoop(NSRunLoop) run] + 88
18  libxpc.dylib                  0x00000001977ccd3c _xpc_objc_main + 660
19  libxpc.dylib                  0x00000001977cea70 xpc_main + 200
20  Foundation                    0x00000001831d6494 service_connection_handler + 0
21  PlugInKit                     0x000000019003acd8 -[PKService run] + 544
22  PlugInKit                     0x000000019003a96c +[PKService main] + 56
23  PlugInKit                     0x000000019003acfc +[PKService _defaultRun:arguments:] + 20
24  libextension.dylib            0x00000001965d2058 NSExtensionMain + 64
25  libdyld.dylib                 0x000000019759e8b8 start + 4

Похоже, он пытается отправить сообщение уже освобожденному объекту. Я понимаю, что ответ требует знания внутреннего устройства Network Extension или исходного кода, но, возможно, инженер Apple читает ТАК...


person John Tracid    schedule 04.05.2016    source источник


Ответы (2)


Я поговорил с DTS, и мы решили, что это ошибка в iOS 9.0.2, и она была исправлена ​​в iOS 9.3.x. Для 9.0.2 нет обходного пути, кроме обновления до 9.3.x.

person John Tracid    schedule 20.05.2016

Я также обнаружил, что эта проблема используется со Swift

0   PacketTunnel-iOS                    0x000000010016b454 crashSignalHandler + 552
1   libsystem_platform.dylib            0x00000001806a193c _sigtramp + 52
2   libsystem_kernel.dylib              0x00000001805c0e54 mach_msg + 72
3   CoreFoundation                      0x00000001809f8c60 <redacted> + 196
4   CoreFoundation                      0x00000001809f6964 <redacted> + 1032
5   CoreFoundation                      0x0000000180920c50 CFRunLoopRunSpecific + 384
6   Foundation                          0x0000000181330cfc <redacted> + 308
7   Foundation                          0x0000000181386030 <redacted> + 88
8   libxpc.dylib                        0x00000001806e4c64 <redacted> + 660
9   libxpc.dylib                        0x00000001806e69dc xpc_main + 200
10  Foundation                          0x0000000181503d60 <redacted> + 0
11  PlugInKit                           0x0000000187d42c48 <redacted> + 544
12  PlugInKit                           0x0000000187d428dc <redacted> + 56
13  PlugInKit                           0x0000000187d42c6c <redacted> + 20
14  libextension.dylib                  0x0000000181316058 NSExtensionMain + 64
15  libdyld.dylib                       0x00000001804be8b8 <redacted> + 4
person Community    schedule 06.05.2016