-
Notifications
You must be signed in to change notification settings - Fork 28.9k
Description
App with Canvaskit for a while it looks like Flutter tries to dispose some skia objects and then it tries to access those disposed objects. The exception stacktrace is entirely within Flutter framework, so we are not sure where exactly it originates and how to create a simple Flutter project that can reliably reproduce the issue. You can find the stacktrace in the end of this email. Reproducing the issue in our app involves switching between tabs and pushing and closing pages - it looks like it only crashes when Flutter tries to render a widget that has already appeared on the screen before. When the issue occurs it just tries to repeat the same action over and over again and never recovers, the only way to stop it is to kill the app entirely.
Stacktrace:
══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞══════════════════════
The following StateError was thrown during a scheduler callback:
Bad state: Attempting to use a Skia object that has been freed.
When the exception was thrown, this was the stack:
dart-sdk/lib/internal/js_dev_runtime/private/ddc_runtime/errors.dart 212:49 throw
lib/_engine/engine/compositor/skia_object_cache.dart 230:7 get skiaObject
lib/_engine/engine/compositor/canvas.dart 173:33 drawPicture
lib/_engine/engine/compositor/layer.dart 394:17 paint
lib/_engine/engine/compositor/layer.dart 109:14 paintChildren
lib/_engine/engine/compositor/layer.dart 343:5 paint
lib/_engine/engine/compositor/layer.dart 109:14 paintChildren
lib/_engine/engine/compositor/layer.dart 199:5 paint
lib/_engine/engine/compositor/layer.dart 109:14 paintChildren
lib/_engine/engine/compositor/layer.dart 343:5 paint
lib/_engine/engine/compositor/layer.dart 109:14 paintChildren
lib/_engine/engine/compositor/layer.dart 343:5 paint
lib/_engine/engine/compositor/layer.dart 109:14 paintChildren
lib/_engine/engine/compositor/layer.dart 343:5 paint
lib/_engine/engine/compositor/layer.dart 109:14 paintChildren
lib/_engine/engine/compositor/layer.dart 516:5 paint
lib/_engine/engine/compositor/layer.dart 109:14 paintChildren
lib/_engine/engine/compositor/layer.dart 343:5 paint
lib/_engine/engine/compositor/layer.dart 109:14 paintChildren
lib/_engine/engine/compositor/layer.dart 343:5 paint
lib/_engine/engine/compositor/layer.dart 109:14 paintChildren
lib/_engine/engine/compositor/layer.dart 343:5 paint
lib/_engine/engine/compositor/layer_tree.dart 52:7 paint
lib/_engine/engine/compositor/layer_tree.dart 84:16
lib/_engine/engine/profiler.dart 36:18 timeAction
lib/_engine/engine/compositor/layer_tree.dart 83:5 raster
lib/_engine/engine/compositor/rasterizer.dart 34:22 draw
lib/_engine/engine/window.dart 729:7 render
packages/flutter/src/rendering/layer.dart.js 4567:23 compositeFrame
packages/flutter/src/rendering/layer.dart.js 5726:25 drawFrame
packages/flutter/src/widgets/widget_span.dart.js 45973:15 drawFrame
packages/flutter/src/rendering/layer.dart.js 5702:12 [_handlePersistentFrameCallback]
packages/flutter/src/scheduler/binding.dart.js 756:9 [_invokeFrameCallback]
packages/flutter/src/scheduler/binding.dart.js 724:37 handleDrawFrame
packages/flutter/src/scheduler/binding.dart.js 679:12 [_handleDrawFrame]
lib/_engine/engine/window.dart 761:13 _invoke
lib/_engine/engine/window.dart 361:5 invokeOnDrawFrame
lib/_engine/engine.dart 227:18
dart-sdk/lib/async/zone.dart 1206:13 _rootRunUnary
dart-sdk/lib/async/zone.dart 1100:19 runUnary
dart-sdk/lib/async/zone.dart 1005:7 runUnaryGuarded
dart-sdk/lib/async/zone.dart 1042:26
═════════════════════════════════════════════════════════════════
flutter doctor -v output:
[✓] Flutter (Channel beta, 1.21.0-9.2.pre, on Mac OS X 10.15.5 19F101, locale en-CZ)
• Flutter version 1.21.0-9.2.pre at /Users/artemufimtcev/Frameworks/flutter
• Framework revision 81a45ec (13 days ago), 2020-08-27 14:14:33 -0700
• Engine revision 20a9531835
• Dart version 2.10.0 (build 2.10.0-7.3.beta)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/artemufimtcev/Library/Android/sdk
• Platform android-29, build-tools 29.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.7)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.7, Build version 11E801a
• CocoaPods version 1.8.4
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.0)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 49.0.2
• Dart plugin version 193.7547
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
[✓] VS Code (version 1.48.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.14.1
[✓] Connected device (2 available)
• Web Server (web) • web-server • web-javascript • Flutter Tools
• Chrome (web) • chrome • web-javascript • Google Chrome 85.0.4183.102