You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 14 beta 出现QOS_CLASS_USER_INITIATED等待低QoS线程报错

问题结论
  • 该提示不是Xcode 14 beta的版本bug。Xcode 14升级了内置Thread Performance Checker的检测覆盖范围,会捕获旧版本Xcode漏检的线程优先级反转问题,你在Xcode 13.4中没有看到该提示,仅代表旧版检测工具未识别到该问题,不代表问题本身不存在。
  • 该问题也不属于你自行编写的业务代码逻辑缺陷。从堆栈信息判断,触发警告的是集成的旧版Firebase Realtime Database内部不规范的线程实现:Firebase内部初始化WebSocket专用网络RunLoop线程时,未显式设置与调用方匹配的QoS等级,导致运行在QOS_CLASS_USER_INITIATED高优先级的线程,等待运行在QOS_CLASS_DEFAULT默认优先级的网络线程时,触发了优先级反转检测规则。
  • 日志开头两段SwiftUI相关的focusItemsInRect提示是Xcode 14 beta阶段SwiftUI框架的冗余调试日志,和本次QoS警告无关联。

QoS优先级反转警告运行截图

警告原文:
Thread running at QOS_CLASS_USER_INITIATED waiting on a lower QoS thread running at QOS_CLASS_DEFAULT. Investigate ways to avoid priority inversions

对应堆栈日志
_TtGC7SwiftUI14_UIHostingViewVVS_P10$1dc8d4d8821BridgedNavigationView8RootView_ implements focusItemsInRect: - caching for linear focus movement is limited as long as this view is on screen.
2022-06-07 18:53:41.412342+0430 MyApp[916:25641] [UIFocus] _TtCC7SwiftUI17HostingScrollView22PlatformGroupContainer implements focusItemsInRect: - caching for linear focus movement is limited as long as this view is on screen.
Thread Performance Checker: Thread running at QOS_CLASS_USER_INITIATED waiting on a lower QoS thread running at QOS_CLASS_DEFAULT. Investigate ways to avoid priority inversionsPID: 916, TID: 25815
Backtrace
=================================================================
3   MyApp                                 0x0000000102c7665c -[_FSRRunLoopThread runLoop] + 44
4   MyApp                                 0x0000000102c763a8 __45+[NSRunLoop(FSRWebSocket) FSR_networkRunLoop]_block_invoke + 124
5   libdispatch.dylib                   0x00000001054318fc _dispatch_client_callout + 16
6   libdispatch.dylib                   0x0000000105433240 _dispatch_once_callout + 80
7   MyApp                                 0x0000000102c76304 +[NSRunLoop(FSRWebSocket) FSR_networkRunLoop] + 84
8   MyApp                                 0x0000000102c6ff30 -[FSRWebSocket _connect] + 68
9   MyApp                                 0x0000000102c6ed60 -[FSRWebSocket open] + 216
10  MyApp                                 0x0000000102c4ebdc -[FWebSocketConnection open] + 248
11  MyApp                                 0x0000000102c4d3c4 -[FConnection open] + 112
12  MyApp                                 0x0000000102bf1404 -[FPersistentConnection openNetworkConnectionWithContext:] + 588
13  MyApp                                 0x0000000102bf1078 __45-[FPersistentConnection tryScheduleReconnect]_block_invoke_2 + 332
14  MyApp                                 0x0000000102c3d0fc -[FIRDatabaseConnectionContextProvider fetchContextForcingRefresh:withCallback:] + 264
15  MyApp                                 0x0000000102bf0f0c __45-[FPersistentConnection tryScheduleReconnect]_block_invoke + 460
16  MyApp                                 0x0000000102c1c0d8 -[FIRRetryHelperTask execute] + 92
17  MyApp                                 0x0000000102c1c6dc __24-[FIRRetryHelper retry:]_block_invoke + 84
18  libdispatch.dylib                   0x00000001054300c4 _dispatch_call_block_and_release + 24
19  libdispatch.dylib                   0x00000001054318fc _dispatch_client_callout + 16
20  libdispatch.dylib                   0x0000000105438a58 _dispatch_lane_serial_drain + 688
21  libdispatch.dylib                   0x00000001054396d0 _dispatch_lane_invoke + 424
22  libdispatch.dylib                   0x0000000105445150 _dispatch_workloop_worker_thread + 696
23  libsystem_pthread.dylib             0x000000023db94ddc _pthread_wqthread + 284
24  libsystem_pthread.dylib             0x000000023db94908 start_wqthread + 8
处理方案
  • 优先将项目中集成的Firebase Realtime Database依赖升级到最新正式版,Firebase官方已在后续迭代中修复该线程QoS不匹配问题,升级完成后警告会自动消除。
  • 若暂时不具备升级依赖的条件,且应用全程无卡顿、线程死锁、网络请求异常等功能故障,可直接忽略该警告。该警告仅标记潜在性能风险,不会直接触发崩溃,旧版Firebase的该实现缺陷实际引发严重性能问题的概率极低。
  • 无特殊需求不要手动修改Firebase源码内的线程优先级配置,否则容易引入难以排查的线程死锁问题。

内容的提问来源于stack exchange,提问作者Vahid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 16:01:17