alibaba / alibaba/flutter_boost

iOS线上偶现卡死: fml::AutoResetWaitableEvent::Wait()

Open
#2,192 1 comment 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.