提问人:Mark 提问时间:7/22/2021 最后编辑:Mark 更新时间:7/23/2021 访问量:168
iOS 应用程序使现场死锁无处不在
iOS Application keeps deadlocks in the field out of no where
问:
我有一个原生 B2B 应用程序,通过 MDM 分发到美国各地的多个地点,这些单元是 24/7 全天候运行的,是供人们使用的公共终端。该应用程序还通过引导式访问锁定到位。
在过去的几周里,我们遇到了应用程序会冻结的问题,我一直在用头撞墙,试图找出原因。它主要发生在蜂窝 iPad 上,但并非唯一如此。应用程序中也没有冻结的特定位置,因此我不确定是否有任何特别的东西阻塞了主线程。
我无法让它在房子里冻结,它只发生在现场。并且已经尝试了一切方法来冻结它,通过自动执行数百个操作,更改网络限制器以查看后台是否有未正确处理的呼叫。我已经运行了仪器以查看iPad是否内存不足,但我认为这会导致应用程序崩溃而不是冻结。
我添加了更多日志记录,以及 New Relic 移动 SDK 来尝试捕获某些内容,但我没有看到任何异常。
它工作得很好,然后这些iPad自动更新到14.4-14.6。
有没有人知道原因可能是什么,或者这些iPadOS版本是否有问题?任何建议都会非常有帮助,这让我发疯了。
更新:
我已经让它冻结了,这是我暂停时它的位置
回溯:
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
* frame #0: 0x00000001c87e6908 libsystem_kernel.dylib`mach_msg_trap + 8
frame #1: 0x00000001c87e5d0c libsystem_kernel.dylib`mach_msg + 72
frame #2: 0x000000019d05be00 CoreFoundation`__CFRunLoopServiceMachPort + 368
frame #3: 0x000000019d056200 CoreFoundation`__CFRunLoopRun + 1184
frame #4: 0x000000019d055818 CoreFoundation`CFRunLoopRunSpecific + 572
frame #5: 0x00000001b375b570 GraphicsServices`GSEventRunModal + 160
frame #6: 0x000000019f9810e8 UIKitCore`-[UIApplication _run] + 1052
frame #7: 0x000000019f986664 UIKitCore`UIApplicationMain + 164
frame #8: 0x0000000102b8e538 Application`main(argc=<unavailable>, argv=<unavailable>) at main.m:14:16 [opt]
frame #9: 0x000000019cd34140 libdyld.dylib`start + 4
* thread #3, name = 'gputools.smt_poll.0x2838a1e20'
* frame #0: 0x00000001c880ab54 libsystem_kernel.dylib`__semwait_signal + 8
frame #1: 0x00000001a5cfead4 libsystem_c.dylib`nanosleep + 212
frame #2: 0x00000001a5cfe9ac libsystem_c.dylib`usleep + 64
frame #3: 0x000000010993e5cc GPUToolsCore`smt_poll_thread_entry(void*) + 144
frame #4: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #4, name = 'gputools.smt_poll.0x28389eec0'
* frame #0: 0x00000001c880ab54 libsystem_kernel.dylib`__semwait_signal + 8
frame #1: 0x00000001a5cfead4 libsystem_c.dylib`nanosleep + 212
frame #2: 0x00000001a5cfe9ac libsystem_c.dylib`usleep + 64
frame #3: 0x0000000103c36fe8 libMTLCapture.dylib`___lldb_unnamed_symbol2228$$libMTLCapture.dylib + 104
frame #4: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #9, name = 'com.apple.uikit.eventfetch-thread'
* frame #0: 0x00000001c87e6908 libsystem_kernel.dylib`mach_msg_trap + 8
frame #1: 0x00000001c87e5d0c libsystem_kernel.dylib`mach_msg + 72
frame #2: 0x000000019d05be00 CoreFoundation`__CFRunLoopServiceMachPort + 368
frame #3: 0x000000019d056200 CoreFoundation`__CFRunLoopRun + 1184
frame #4: 0x000000019d055818 CoreFoundation`CFRunLoopRunSpecific + 572
frame #5: 0x000000019e2b2094 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 228
frame #6: 0x000000019e2b1f74 Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 88
frame #7: 0x000000019fa2dc28 UIKitCore`-[UIEventFetcher threadMain] + 504
frame #8: 0x000000019e40edb0 Foundation`__NSThread__start__ + 848
frame #9: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #11
* frame #0: 0x00000001c880a580 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001e4a31308 libsystem_pthread.dylib`_pthread_cond_wait$VARIANT$mp + 1236
frame #2: 0x00000001b0eb1a20 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
frame #3: 0x00000001054ec4d0 NewRelic`___lldb_unnamed_symbol3677$$NewRelic + 240
frame #4: 0x00000001054eca60 NewRelic`___lldb_unnamed_symbol3699$$NewRelic + 28
frame #5: 0x00000001054ecc08 NewRelic`___lldb_unnamed_symbol3702$$NewRelic + 72
frame #6: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #12
* frame #0: 0x00000001c880a580 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001e4a31308 libsystem_pthread.dylib`_pthread_cond_wait$VARIANT$mp + 1236
frame #2: 0x00000001b0eb1a20 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
frame #3: 0x00000001054ec4d0 NewRelic`___lldb_unnamed_symbol3677$$NewRelic + 240
frame #4: 0x00000001054eca60 NewRelic`___lldb_unnamed_symbol3699$$NewRelic + 28
frame #5: 0x00000001054ecc08 NewRelic`___lldb_unnamed_symbol3702$$NewRelic + 72
frame #6: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #13
* frame #0: 0x00000001c880a580 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001e4a31308 libsystem_pthread.dylib`_pthread_cond_wait$VARIANT$mp + 1236
frame #2: 0x00000001b0eb1a20 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
frame #3: 0x00000001054ec4d0 NewRelic`___lldb_unnamed_symbol3677$$NewRelic + 240
frame #4: 0x00000001054eca60 NewRelic`___lldb_unnamed_symbol3699$$NewRelic + 28
frame #5: 0x00000001054ecc08 NewRelic`___lldb_unnamed_symbol3702$$NewRelic + 72
frame #6: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #14, name = 'AVAudioSession Notify Thread'
* frame #0: 0x00000001c87e6908 libsystem_kernel.dylib`mach_msg_trap + 8
frame #1: 0x00000001c87e5d0c libsystem_kernel.dylib`mach_msg + 72
frame #2: 0x000000019d05be00 CoreFoundation`__CFRunLoopServiceMachPort + 368
frame #3: 0x000000019d056200 CoreFoundation`__CFRunLoopRun + 1184
frame #4: 0x000000019d055818 CoreFoundation`CFRunLoopRunSpecific + 572
frame #5: 0x00000001a44dff18 AudioSession`GenericRunLoopThread::Entry(void*) + 156
frame #6: 0x00000001a44e1e84 AudioSession`CAPThread::Entry(CAPThread*) + 88
frame #7: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #15
* frame #0: 0x00000001c87e6908 libsystem_kernel.dylib`mach_msg_trap + 8
frame #1: 0x00000001c87e5d0c libsystem_kernel.dylib`mach_msg + 72
frame #2: 0x000000019d05be00 CoreFoundation`__CFRunLoopServiceMachPort + 368
frame #3: 0x000000019d056200 CoreFoundation`__CFRunLoopRun + 1184
frame #4: 0x000000019d055818 CoreFoundation`CFRunLoopRunSpecific + 572
frame #5: 0x000000019e2b2094 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 228
frame #6: 0x0000000102f73758 Application`-[CH3_GenericChannelController keepThreadAlive](self=0x0000000280f89ad0, _cmd=<unavailable>) at CH3_GenericChannelController.mm:288:37 [opt]
frame #7: 0x000000019e40edb0 Foundation`__NSThread__start__ + 848
frame #8: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #16
* frame #0: 0x00000001c87e6908 libsystem_kernel.dylib`mach_msg_trap + 8
frame #1: 0x00000001c87e5d0c libsystem_kernel.dylib`mach_msg + 72
frame #2: 0x000000019d05be00 CoreFoundation`__CFRunLoopServiceMachPort + 368
frame #3: 0x000000019d056200 CoreFoundation`__CFRunLoopRun + 1184
frame #4: 0x000000019d055818 CoreFoundation`CFRunLoopRunSpecific + 572
frame #5: 0x000000019e2b2094 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 228
frame #6: 0x0000000102f73758 Application`-[CH3_GenericChannelController keepThreadAlive](self=0x0000000280f89ad0, _cmd=<unavailable>) at CH3_GenericChannelController.mm:288:37 [opt]
frame #7: 0x000000019e40edb0 Foundation`__NSThread__start__ + 848
frame #8: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #48
* frame #0: 0x00000001e4a3c864 libsystem_pthread.dylib`start_wqthread
* thread #77
* frame #0: 0x00000001e4a3c864 libsystem_pthread.dylib`start_wqthread
* thread #83
* frame #0: 0x00000001e4a3c864 libsystem_pthread.dylib`start_wqthread
* thread #84
* frame #0: 0x00000001e4a3c864 libsystem_pthread.dylib`start_wqthread
(lldb)
答: 暂无答案
评论