alibaba / alibaba/flutter_boost
iOS线上偶现卡死: fml::AutoResetWaitableEvent::Wait()
- Dominant language
- Dart
- Stars
- 7.2k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
### 请描述遇到的问题,以及您所期望的正确的结果
线上偶现的crash, 暂无复现步骤
```
Thread 0 name: com.apple.main-thread (cpu_usage: 0.00%)
libsystem_kernel.dylib ___psynch_cvwait (in libsystem_kernel.dylib)
libsystem_pthread.dylib __pthread_cond_wait$VARIANT$mp (in libsystem_pthread.dylib)
Flutter std::_fl::condition_variable::wait(std::_fl::unique_lock&) (in Flutter:condition_variable.cpp:46)
Flutter fml::AutoResetWaitableEvent::Wait() (in Flutter:waitable_event.cc:75)
Flutter flutter::Shell::OnPlatformViewDestroyed() (in Flutter:shell.cc:982)
Flutter -[FlutterViewController surfaceUpdated:] (in Flutter:FlutterViewController.mm:752)
homework -[FBFlutterViewContainer surfaceUpdated:] (in homework:FBFlutterViewContainer.m:268)
Flutter -[FlutterViewController appOrSceneDidEnterBackground] (in Flutter:FlutterViewController.mm:1071)
Flutter -[FlutterViewController applicationDidEnterBackground:] (in Flutter:FlutterViewController.mm:1011)
CoreFoundation ___CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ (in CoreFoundation)
CoreFoundation ____CFXRegistrationPost_block_invoke (in CoreFoundation)
CoreFoundation __CFXRegistrationPost (in CoreFoundation)
CoreFoundation __CFXNotificationPost (in CoreFoundation)
Foundation -[NSNotificationCenter postNotificationName:object:userInfo:] (in Foundation)
UIKitCore ___47-[UIApplication _applicationDidEnterBackground]_block_invoke (in UIKitCore)
UIKitCore +[UIViewController _performWithoutDeferringTransitionsAllowingAnimation:actions:] (in UIKitCore)
UIKitCore -[UIApplication _applicationDidEnterBackground] (in UIKitCore)
UIKitCore ___101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke_2 (in UIKitCore)
UIKitCore __UIScenePerformActionsWithLifecycleActionMask (in UIKitCore)
UIKitCore ___101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke (in UIKitCore)
UIKitCore -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] (in UIKitCore)
UIKitCore -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] (in UIKitCore)
UIKitCore -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] (in UIKitCore)
UIKitCore ___186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke (in UIKitCore)
UIKitCore +[BSAnimationSettings(UIKit) tryAnimatingWithSettings:actions:completion:] (in UIKitCore)
UIKitCore __UISceneSettingsDiffActionPerformChangesWithTransitionContext (in UIKitCore)
UIKitCore -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] (in UIKitCore)
UIKitCore ___64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke.578 (in UIKitCore)
UIKitCore -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] (in UIKitCore)
UIKitCore -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] (in UIKitCore)
UIKitCore -[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:] (in UIKitCore)
FrontBoardServices -[FBSScene updater:didUpdateSettings:withDiff:transitionContext:completion:] (in FrontBoardServices)
FrontBoardServices ___94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke_2 (in FrontBoardServices)
FrontBoardServices -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] (in FrontBoardServices)
FrontBoardServices ___94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke (in FrontBoardServices)
libdispatch.dylib __dispatch_client_callout (in libdispatch.dylib)
libdispatch.dylib __dispatch_block_invoke_direct$VARIANT$mp (in libdispatch.dylib)
FrontBoardServices ___FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ (in FrontBoardServices)
FrontBoardServices -[FBSSerialQueue _targetQueue_performNextIfPossible] (in FrontBoardServices)
FrontBoardServices -[FBSSerialQueue _performNextFromRunLoopSource] (in FrontBoardServices)
CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ (in CoreFoundation)
CoreFoundation ___CFRunLoopDoSource0 (in CoreFoundation)
CoreFoundation ___CFRunLoopDoSources0 (in CoreFoundation)
CoreFoundation ___CFRunLoopRun (in CoreFoundation)
CoreFoundation _CFRunLoopRunSpecific (in CoreFoundation)
GraphicsServices _GSEventRunModal (in GraphicsServices)
UIKitCore -[UIApplication _run] (in UIKitCore)
UIKitCore _UIApplicationMain (in UIKitCore)
homework main (in homework:main.m:39)
dyld ((null))
```
### 请说明如何操作会遇到上述问题
_No response_
### 在下面填入关键复现代码
```
```
### 复现的平台
iOS
### Flutter SDK版本
3.22.3
### FlutterBoost版本
4.6.5
### 是否延迟初始化FlutterBoost
No
### 解决方案
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by examining FlutterViewController.mm around surfaceUpdated: and appOrSceneDidEnterBackground, then trace the calls into shell.cc and waitable_event.cc using the provided stack trace. Compare the behavior on Flutter SDK 3.22.3 with the FlutterBoost integration in FBFlutterViewContainer.m; done requires identifying and reliably reproducing the background-transition hang or establishing a verified fix.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- flutter, ios
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100