Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flutter crashes when loading very large files with Image.file widget on Windows #112881

Closed
bourdakos1 opened this issue Oct 4, 2022 · 11 comments · Fixed by #112892
Closed

Flutter crashes when loading very large files with Image.file widget on Windows #112881

bourdakos1 opened this issue Oct 4, 2022 · 11 comments · Fixed by #112892
Assignees
Labels
c: crash Stack traces logged to the console customer: google Various Google teams dependency: dart Dart team may need to help us perf: memory Performance issues related to memory

Comments

@bourdakos1
Copy link

bourdakos1 commented Oct 4, 2022

Internal bug: b/248028795

Steps to Reproduce

  1. Update <path-to-file> to the path of a very large file
  2. Execute flutter run on the code sample

Expected results:

errorBuilder should return appropriate error. On macOS, this works and shows the following in the app:

FileSystemException: read failed, path = '/Users/bourdakos/Desktop/ubuntu-22.04.1-desktop-amd64.iso' (OS Error: Invalid argument, errno = 22)

Actual results:

On Windows, the Flutter app just crashes

Code sample
import 'dart:io';

import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Code Sample',
      home: Scaffold(
        body: Image.file(
          File('<path-to-file>'),
          errorBuilder: (context, error, stackTrace) => Text(error.toString()),
        ),
      ),
    );
  }
}
Logs
[  +12 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +193 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +1 ms] 128b94e247326ecdcbe954febb73adbac4b2449c
[        ] executing: [C:\Users\bourdakos\Documents\flutter/] git tag --points-at 128b94e247326ecdcbe954febb73adbac4b2449c
[ +205 ms] Exit code 0 from: git tag --points-at 128b94e247326ecdcbe954febb73adbac4b2449c
[   +2 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git describe --match *.*.* --long --tags
128b94e247326ecdcbe954febb73adbac4b2449c
[ +230 ms] Exit code 0 from: git describe --match *.*.* --long --tags 128b94e247326ecdcbe954febb73adbac4b2449c
[   +1 ms] 3.4.0-39.0.pre-7-g128b94e247
[  +20 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git rev-parse --abbrev-ref --symbolic @{upstream}
[ +174 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{upstream}
[   +1 ms] origin/master
[        ] executing: [C:\Users\bourdakos\Documents\flutter/] git ls-remote --get-url origin
[ +186 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[ +187 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git rev-parse --abbrev-ref HEAD
[ +172 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[   +1 ms] master
[ +122 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +373 ms] executing: C:\Users\bourdakos\platform-tools_r31.0.3-windows\platform-tools\adb.exe devices -l
[ +140 ms] List of devices attached
[   +6 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +5 ms] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +84 ms] Multiple devices found:
[ +104 ms] Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19042.2006]
[   +2 ms] Chrome (web)      • chrome  • web-javascript • Google Chrome 106.0.5249.91
[   +1 ms] Edge (web)        • edge    • web-javascript • Microsoft Edge 102.0.1245.41
[   +1 ms] [1]: Windows (windows)
[        ] [2]: Chrome (chrome)
[        ] [3]: Edge (edge)
[   +1 ms] Please choose one (To quit, press "q/Q")
[        ] : 
[+2328 ms] 1
[  +19 ms] Skipping pub get: version match.
[ +162 ms] Generating
C:\Users\bourdakos\Documents\bug_repro\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[ +128 ms] Initializing file store
[  +16 ms] Skipping target: gen_localizations
[  +14 ms] gen_dart_plugin_registrant: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:C:\Users\bourdakos\Documents\bug_repro\.dart_tool\package_config_subset}
[  +38 ms] gen_dart_plugin_registrant: Complete
[   +5 ms] Skipping target: _composite
[   +3 ms] complete
[  +11 ms] Launching lib\main.dart on Windows in debug mode...
[  +10 ms] C:\Users\bourdakos\Documents\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev
C:\Users\bourdakos\Documents\flutter\bin\cache\dart-sdk\bin\snapshots\frontend_server.dart.snapshot --sdk-root
C:\Users\bourdakos\Documents\flutter\bin\cache\artifacts\engine\common\flutter_patched_sdk/ --incremental --target=flutter
--experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill
C:\Users\BOURDA~1\AppData\Local\Temp\flutter_tools.a696bc95\flutter_tool.aef28bdd\app.dill --packages
C:\Users\bourdakos\Documents\bug_repro\.dart_tool\package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts 
--track-widget-creation --filesystem-scheme org-dartlang-root --initialize-from-dill
build\c075001b96339384a97db4862b8ab8db.cache.dill.track.dill --verbosity=error --flutter-widget-cache
--enable-experiment=alternative-invalidation-strategy
[  +47 ms] executing: C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe -format json -products * -utf8 -latest
-version 16 -requires Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.Component.VC.Tools.x86.x64
Microsoft.VisualStudio.Component.VC.CMake.Project
[ +147 ms] Exit code 0 from: C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe -format json -products * -utf8
-latest -version 16 -requires Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.Component.VC.Tools.x86.x64
Microsoft.VisualStudio.Component.VC.CMake.Project
[   +1 ms] [
             {
               "instanceId": "4228c84f",
               "installDate": "2022-01-21T18:11:43Z",
               "installationName": "VisualStudio/16.11.9+32106.194",
               "installationPath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional",
               "installationVersion": "16.11.32106.194",
               "productId": "Microsoft.VisualStudio.Product.Professional",
               "productPath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\Common7\\IDE\\devenv.exe",        
               "state": 4294967295,
               "isComplete": true,
               "isLaunchable": true,
               "isPrerelease": false,
               "isRebootRequired": false,
               "displayName": "Visual Studio Professional 2019",
               "description": "Professional IDE best suited to small teams",
               "channelId": "VisualStudio.16.Release",
               "channelUri": "https://aka.ms/vs/16/release/channel",
               "enginePath": "C:\\Program Files (x86)\\Microsoft Visual
               Studio\\Installer\\resources\\app\\ServiceHub\\Services\\Microsoft.VisualStudio.Setup.Service",
               "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes-v16.11#16.11.9",
               "thirdPartyNotices": "https://go.microsoft.com/fwlink/?LinkId=660909",
               "updateDate": "2022-01-21T18:11:43.4743112Z",
               "catalog": {
                 "buildBranch": "d16.11",
                 "buildVersion": "16.11.32106.194",
                 "id": "VisualStudio/16.11.9+32106.194",
                 "localBuild": "build-lab",
                 "manifestName": "VisualStudio",
                 "manifestType": "installer",
                 "productDisplayVersion": "16.11.9",
                 "productLine": "Dev16",
                 "productLineVersion": "2019",
                 "productMilestone": "RTW",
                 "productMilestoneIsPreRelease": "False",
                 "productName": "Visual Studio",
                 "productPatchVersion": "9",
                 "productPreReleaseMilestoneSuffix": "1.0",
                 "productSemanticVersion": "16.11.9+32106.194",
                 "requiredEngineVersion": "2.11.52.58712"
               },
               "properties": {
                 "campaignId": "",
                 "channelManifestId": "VisualStudio.16.Release/16.11.9+32106.194",
                 "nickname": "",
                 "setupEngineFilePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\setup.exe"
               }
             }
           ]
[  +13 ms] Building Windows application...
[ +393 ms] <- compile package:bug_repro/main.dart
[   +2 ms] executing: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -S
C:\Users\bourdakos\Documents\bug_repro\windows -B build\windows -G Visual Studio 16 2019
[ +243 ms] -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19042.
[  +36 ms] -- Configuring done
[ +343 ms] -- Generating done
[  +40 ms] -- Build files have been written to: C:/Users/bourdakos/Documents/bug_repro/build/windows
[  +11 ms] executing: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe --build build\windows --config Debug --targetINSTALL --verbose
[ +610 ms] Microsoft (R) Build Engine version 16.11.2+f32259642 for .NET Framework
[   +1 ms] Copyright (C) Microsoft Corporation. All rights reserved.
[ +370 ms] Build started 10/4/2022 4:29:20 PM.
[ +817 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\INSTALL.vcxproj" on node 1 (default targets).
[   +1 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\INSTALL.vcxproj" (1) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
[   +1 ms] InitializeBuildStatus:
[        ]   Creating "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
[  +55 ms] CustomBuild:
[   +1 ms]   All outputs are up-to-date.
[  +51 ms] FinalizeBuildStatus:
[   +1 ms]   Deleting file "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
[   +3 ms]   Touching "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
[   +5 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\ZERO_CHECK.vcxproj" (default targets).
[ +122 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\INSTALL.vcxproj" (1) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\ALL_BUILD.vcxproj" (3) on node 1 (default targets).
[   +1 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\ALL_BUILD.vcxproj" (3) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\bug_repro.vcxproj" (4) on node 1 (default targets).
[   +1 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\bug_repro.vcxproj" (4) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_assemble.vcxproj" (5) on node 1 (default targets).
[        ] InitializeBuildStatus:
[        ]   Creating "x64\Debug\flutter_assemble\flutter_assemble.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.       
[   +6 ms] CustomBuild:
[        ]   "The build of
'C:\Users\bourdakos\Documents\bug_repro\build\windows\CMakeFiles\9c4fc6f798b73840992bb3ce2f7afe41\flutter_assemble.rule' depends on    
'C:\USERS\BOURDAKOS\DOCUMENTS\BUG_REPRO\WINDOWS\FLUTTER\EPHEMERAL\FLUTTER_WINDOWS.DLL' which is produced by the build of
'C:\Users\bourdakos\Documents\bug_repro\build\windows\CMakeFiles\c21b719c1bb1867fca19a7ea97cd8309\flutter_windows.dll.rule'. The items 
cannot be built in parallel."
[ +248 ms]   Generating C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_windows.dll,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_export.h,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_windows.h,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_messenger.h,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_plugin_registrar.h,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/flutter_texture_registrar.h,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/cpp_client_wrapper/core_implementations.cc,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/cpp_client_wrapper/standard_codec.cc,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/cpp_client_wrapper/plugin_registrar.cc,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/cpp_client_wrapper/flutter_engine.cc,
C:/Users/bourdakos/Documents/bug_repro/windows/flutter/ephemeral/cpp_client_wrapper/flutter_view_controller.cc, _phony_
[+1648 ms]   [   +4 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +170 ms]   [ +185 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ]   [   +1 ms] 128b94e247326ecdcbe954febb73adbac4b2449c
[        ]   [        ] executing: [C:\Users\bourdakos\Documents\flutter/] git tag --points-at 128b94e247326ecdcbe954febb73adbac4b2449c[ +205 ms]   [ +206 ms] Exit code 0 from: git tag --points-at 128b94e247326ecdcbe954febb73adbac4b2449c
[   +1 ms]   [   +1 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git describe --match *.*.* --long --tags
128b94e247326ecdcbe954febb73adbac4b2449c
[ +240 ms]   [ +239 ms] Exit code 0 from: git describe --match *.*.* --long --tags 128b94e247326ecdcbe954febb73adbac4b2449c
[        ]   [        ] 3.4.0-39.0.pre-7-g128b94e247
[  +21 ms]   [  +22 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git rev-parse --abbrev-ref HEAD
[ +177 ms]   [ +178 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[   +1 ms]   [        ] master
[ +123 ms]   [ +124 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[   +1 ms]   [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +1 ms]   [   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +117 ms]   [ +119 ms] executing: [C:\Users\bourdakos\Documents\flutter/] git rev-parse --abbrev-ref --symbolic @{upstream}
[ +175 ms]   [ +175 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{upstream}
[        ]   [        ] origin/master
[        ]   [        ] executing: [C:\Users\bourdakos\Documents\flutter/] git ls-remote --get-url origin
[ +186 ms]   [ +187 ms] Exit code 0 from: git ls-remote --get-url origin
[        ]   [        ] https://github.com/flutter/flutter.git
[        ]   [        ] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ]   [   +3 ms] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ]   [        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[ +433 ms]   [ +437 ms] Initializing file store
[  +18 ms]   [  +18 ms] Done initializing file store
[  +59 ms]   [  +58 ms] Skipping target: gen_localizations
[  +14 ms]   [  +15 ms] Skipping target: gen_dart_plugin_registrant
[+3193 ms]   [+3194 ms] Skipping target: unpack_windows
[ +443 ms]   [ +443 ms] kernel_snapshot: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated
contents: C:\Users\bourdakos\Documents\bug_repro\lib\main.dart}
[  +14 ms]   [  +13 ms] C:\Users\bourdakos\Documents\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev
C:\Users\bourdakos\Documents\flutter\bin\cache\dart-sdk\bin\snapshots\frontend_server.dart.snapshot --sdk-root
C:\Users\bourdakos\Documents\flutter\bin\cache\artifacts\engine\common\flutter_patched_sdk/ --target=flutter
--no-print-incremental-dependencies -DFLUTTER_WEB_AUTO_DETECT=true -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts    
--track-widget-creation --packages C:\Users\bourdakos\Documents\bug_repro\.dart_tool\package_config.json --output-dill
C:\Users\bourdakos\Documents\bug_repro\.dart_tool\flutter_build\bc1fb39805dc2508a7ae65aad9d9afa9\app.dill --depfile
C:\Users\bourdakos\Documents\bug_repro\.dart_tool\flutter_build\bc1fb39805dc2508a7ae65aad9d9afa9\kernel_snapshot.d --incremental       
--initialize-from-dill C:\Users\bourdakos\Documents\bug_repro\.dart_tool\flutter_build\bc1fb39805dc2508a7ae65aad9d9afa9\app.dill       
--verbosity=error package:bug_repro/main.dart
[+1681 ms]   [+1682 ms] kernel_snapshot: Complete
[ +422 ms]   [ +422 ms] debug_bundle_windows_assets: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have
updated contents: C:\Users\bourdakos\Documents\bug_repro\.dart_tool\flutter_build\bc1fb39805dc2508a7ae65aad9d9afa9\app.dill}
[ +455 ms]   [ +456 ms] debug_bundle_windows_assets: Complete
[ +237 ms]   [ +237 ms] Persisting file store
[  +12 ms]   [  +12 ms] Done persisting file store
[  +10 ms]   [   +9 ms] build succeeded.
[  +12 ms]   [  +12 ms] "flutter assemble" took 7,801ms.
[  +61 ms]   [  +61 ms] ensureAnalyticsSent: 56ms
[   +1 ms]   [        ] Running 0 shutdown hooks
[   +1 ms]   [        ] Shutdown hooks complete
[        ]   [        ] exiting with code 0
[ +131 ms] FinalizeBuildStatus:
[        ]   Deleting file "x64\Debug\flutter_assemble\flutter_assemble.tlog\unsuccessfulbuild".
[        ]   Touching "x64\Debug\flutter_assemble\flutter_assemble.tlog\flutter_assemble.lastbuildstate".
[        ] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_assemble.vcxproj" (default      
targets).
[  +42 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\bug_repro.vcxproj" (4) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_wrapper_app.vcxproj" (6) on node 1 (default targets).
[        ] InitializeBuildStatus:
[        ]   Creating "flutter_wrapper_app.dir\Debug\flutter_.745470B3.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.   
[   +4 ms] CustomBuild:
[   +1 ms]   All outputs are up-to-date.
[  +45 ms] ClCompile:
[   +1 ms]   All outputs are up-to-date.
[  +45 ms] Lib:
[        ]   All outputs are up-to-date.
[   +2 ms]   flutter_wrapper_app.vcxproj -> C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\Debug\flutter_wrapper_app.lib 
[  +17 ms] FinalizeBuildStatus:
[   +1 ms]   Deleting file "flutter_wrapper_app.dir\Debug\flutter_.745470B3.tlog\unsuccessfulbuild".
[   +1 ms]   Touching "flutter_wrapper_app.dir\Debug\flutter_.745470B3.tlog\flutter_wrapper_app.lastbuildstate".
[   +1 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_wrapper_app.vcxproj" (default   
targets).
[  +12 ms] InitializeBuildStatus:
[   +1 ms]   Creating "bug_repro.dir\Debug\bug_repro.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
[   +3 ms] CustomBuild:
[   +1 ms]   All outputs are up-to-date.
[  +39 ms] ClCompile:
[   +1 ms]   C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\CL.exe /c
/IC:\Users\bourdakos\Documents\bug_repro\windows /IC:\Users\bourdakos\Documents\bug_repro\windows\flutter\ephemeral
/IC:\Users\bourdakos\Documents\bug_repro\windows\flutter\ephemeral\cpp_client_wrapper\include /Zi /nologo /W4 /WX /diagnostics:column  
/Od /Ob0 /D WIN32 /D _WINDOWS /D _HAS_EXCEPTIONS=0 /D _DEBUG /D "FLUTTER_VERSION=\"1.0.0+1\"" /D FLUTTER_VERSION_MAJOR=1 /D
FLUTTER_VERSION_MINOR=0 /D FLUTTER_VERSION_PATCH=0 /D FLUTTER_VERSION_BUILD=1 /D NOMINMAX /D UNICODE /D _UNICODE /D
"CMAKE_INTDIR=\"Debug\"" /D _UNICODE /D UNICODE /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR
/std:c++17 /Fo"bug_repro.dir\Debug\\" /Fd"bug_repro.dir\Debug\vc142.pdb" /external:W4 /Gd /TP /wd4100 /errorReport:queue
C:\Users\bourdakos\Documents\bug_repro\windows\flutter\generated_plugin_registrant.cc
C:\Users\bourdakos\Documents\bug_repro\windows\runner\flutter_window.cpp
[ +255 ms]   generated_plugin_registrant.cc
[ +207 ms]   flutter_window.cpp
[ +585 ms]   Generating Code...
[ +136 ms] ResourceCompile:
[   +1 ms]   All outputs are up-to-date.
[  +36 ms] Link:
[        ]   C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\link.exe
/ERRORREPORT:QUEUE /OUT:"C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\Debug\bug_repro.exe" /INCREMENTAL
/ILK:"bug_repro.dir\Debug\bug_repro.ilk" /NOLOGO ..\flutter\Debug\flutter_wrapper_app.lib dwmapi.lib
C:\Users\bourdakos\Documents\bug_repro\windows\flutter\ephemeral\flutter_windows.dll.lib kernel32.lib user32.lib gdi32.lib winspool.libshell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'"      
/manifest:embed /manifestinput:C:\Users\bourdakos\Documents\bug_repro\windows\runner\runner.exe.manifest /DEBUG
/PDB:"C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/bug_repro.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE        
/NXCOMPAT /IMPLIB:"C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/bug_repro.lib" /MACHINE:X64  /machine:x64
bug_repro.dir\Debug\Runner.res
[   +3 ms]   bug_repro.dir\Debug\flutter_window.obj
[        ]   bug_repro.dir\Debug\main.obj
[   +1 ms]   bug_repro.dir\Debug\utils.obj
[   +1 ms]   bug_repro.dir\Debug\win32_window.obj
[        ]   bug_repro.dir\Debug\generated_plugin_registrant.obj
[ +514 ms]   bug_repro.vcxproj -> C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\Debug\bug_repro.exe
[   +8 ms] FinalizeBuildStatus:
[        ]   Deleting file "bug_repro.dir\Debug\bug_repro.tlog\unsuccessfulbuild".
[   +1 ms]   Touching "bug_repro.dir\Debug\bug_repro.tlog\bug_repro.lastbuildstate".
[   +1 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\runner\bug_repro.vcxproj" (default targets).    
[  +42 ms] Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\ALL_BUILD.vcxproj" (3) is building
"C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_wrapper_plugin.vcxproj" (7) on node 1 (default targets).
[   +1 ms] InitializeBuildStatus:
[        ]   Creating "flutter_wrapper_plugin.dir\Debug\flutter_.4306E078.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.[   +3 ms] CustomBuild:
[        ]   All outputs are up-to-date.
[  +11 ms] ClCompile:
[        ]   All outputs are up-to-date.
[  +12 ms] Lib:
[  +16 ms]   All outputs are up-to-date.
[        ]   flutter_wrapper_plugin.vcxproj ->
C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\Debug\flutter_wrapper_plugin.lib
[   +7 ms] FinalizeBuildStatus:
[        ]   Deleting file "flutter_wrapper_plugin.dir\Debug\flutter_.4306E078.tlog\unsuccessfulbuild".
[   +1 ms]   Touching "flutter_wrapper_plugin.dir\Debug\flutter_.4306E078.tlog\flutter_wrapper_plugin.lastbuildstate".
[   +1 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\flutter\flutter_wrapper_plugin.vcxproj" (defaulttargets).
[  +14 ms] InitializeBuildStatus:
[        ]   Creating "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
[   +6 ms] CustomBuild:
[   +2 ms]   All outputs are up-to-date.
[  +10 ms] FinalizeBuildStatus:
[        ]   Deleting file "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild".
[   +1 ms]   Touching "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\ALL_BUILD.lastbuildstate".
[   +1 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\ALL_BUILD.vcxproj" (default targets).
[  +10 ms] InitializeBuildStatus:
[        ]   Creating "x64\Debug\INSTALL\INSTALL.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
[ +229 ms] PostBuildEvent:
[        ]   setlocal
[        ]   "C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -DBUILD_TYPE=Debug -P cmake_install.cmake   
[   +1 ms]   if %errorlevel% neq 0 goto :cmEnd
[        ]   :cmEnd
[        ]   endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
[        ]   :cmErrorLevel
[        ]   exit /b %1
[        ]   :cmDone
[        ]   if %errorlevel% neq 0 goto :VCEnd
[        ]   :VCEnd
[ +259 ms]   -- Install configuration: "Debug"
[  +21 ms]   -- Up-to-date: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/icudtl.dat
[   +1 ms]   -- Up-to-date: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/flutter_windows.dll
[  +33 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets
[  +11 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/AssetManifest.json
[   +4 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/FontManifest.json    
[   +5 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/fonts
[  +15 ms]   -- Installing:
C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/fonts/MaterialIcons-Regular.otf
[  +22 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/kernel_blob.bin
[ +286 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/NOTICES.Z
[   +4 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/packages
[  +12 ms]   -- Installing:
C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/packages/cupertino_icons
[  +10 ms]   -- Installing:
C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/packages/cupertino_icons/assets
[   +7 ms]   -- Installing:
C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
[   +8 ms]   -- Installing: C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/shaders
[  +13 ms]   -- Installing:
C:/Users/bourdakos/Documents/bug_repro/build/windows/runner/Debug/data/flutter_assets/shaders/ink_sparkle.frag
[  +36 ms] FinalizeBuildStatus:
[        ]   Deleting file "x64\Debug\INSTALL\INSTALL.tlog\unsuccessfulbuild".
[   +1 ms]   Touching "x64\Debug\INSTALL\INSTALL.tlog\INSTALL.lastbuildstate".
[   +2 ms] Done Building Project "C:\Users\bourdakos\Documents\bug_repro\build\windows\INSTALL.vcxproj" (default targets).
[  +21 ms] Build succeeded.
[        ]     0 Warning(s)
[        ]     0 Error(s)
[        ] Time Elapsed 00:00:14.79
[  +48 ms] Building Windows application... (completed in 16.9s)
[ +936 ms] [ERROR:flutter/shell/platform/windows/direct_manipulation.cc(137)] CoCreateInstance(CLSID_DirectManipulationManager,
nullptr, CLSCTX_INPROC_SERVER, IID_IDirectManipulationManager, &manager_) failed
[ +107 ms] Observatory URL on device: http://127.0.0.1:61495/IJdrGNofIeM=/
[   +3 ms] Caching compiled dill
[  +47 ms] Connecting to service protocol: http://127.0.0.1:61495/IJdrGNofIeM=/
[ +111 ms] Launching a Dart Developer Service (DDS) instance at http://127.0.0.1:0, connecting to VM service at
http://127.0.0.1:61495/IJdrGNofIeM=/.
[  +79 ms] DDS is listening at http://127.0.0.1:61498/aOKqiV0XKx8=/.
[  +61 ms] Successfully connected to service protocol: http://127.0.0.1:61495/IJdrGNofIeM=/
[+2262 ms] "flutter run" took 24,476ms.
[   +5 ms] Lost connection to device.
[   +2 ms] 
           #0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
           #1      RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:718:9)
           <asynchronous suspension>
           #2      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1244:27)
           <asynchronous suspension>
           #3      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
           <asynchronous suspension>
           #4      CommandRunner.runCommand (package:args/command_runner.dart:209:13)
           <asynchronous suspension>
           #5      FlutterCommandRunner.runCommand.<anonymous closure>
(package:flutter_tools/src/runner/flutter_command_runner.dart:283:9)
           <asynchronous suspension>
           #6      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
           <asynchronous suspension>
           #7      FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:229:5)
           <asynchronous suspension>
           #8      run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:63:9)
           <asynchronous suspension>
           #9      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
           <asynchronous suspension>
           #10     main (package:flutter_tools/executable.dart:91:3)
           <asynchronous suspension>


[  +14 ms] Service protocol connection closed.
[        ] Lost connection to device.
[  +47 ms] ensureAnalyticsSent: 59ms
[        ] Running 1 shutdown hook
[  +13 ms] Shutdown hooks complete
[        ] exiting with code 1
Analyzing bug_repro...                                                  
No issues found! (ran in 3.4s)
[√] Flutter (Channel master, 3.4.0-40.0.pre.7, on Microsoft Windows [Version 10.0.19042.2006], locale en-US)
    • Flutter version 3.4.0-40.0.pre.7 on channel master at C:\Users\bourdakos\Documents\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 128b94e247 (78 minutes ago), 2022-10-04 15:06:53 -0400
    • Engine revision 256b8d066f
    • Dart version 2.19.0 (build 2.19.0-272.0.dev)
    • DevTools version 2.18.0

[√] Windows Version (Installed version of Windows is version 10 or higher)

[X] Android toolchain - develop for Android devices
    • Android SDK at C:\Users\bourdakos\platform-tools_r31.0.3-windows
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Professional 2019 16.11.9)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
    • Visual Studio Professional 2019 version 16.11.32106.194
    • Windows 10 SDK version 10.0.19041.0

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).

[√] VS Code (version 1.71.2)
    • VS Code at C:\Users\bourdakos\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.48.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19042.2006]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 106.0.5249.91
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 102.0.1245.41

[√] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 2 categories.
@cbracken cbracken added c: crash Stack traces logged to the console a: desktop Running on desktop customer: google Various Google teams perf: memory Performance issues related to memory and removed a: desktop Running on desktop labels Oct 4, 2022
@cbracken
Copy link
Member

cbracken commented Oct 4, 2022

/cc @zanderso @dnfield @jonahwilliams

@cbracken
Copy link
Member

cbracken commented Oct 4, 2022

Given that there's generally little utility in loading/displaying a whole 3.6GB image (even if it is a graphical image), I'd suggest the best case is to avoid doing it at all and rely on a beefy server-side thumbnailing service of some sort.

That said, looks like the file is local here, and the issue relates to desktop machines. Have you tried playing with the cacheWidth and cacheHeight parameters, which tell the engine what size to decode the image to in memory?

@bourdakos1
Copy link
Author

We don't have a need to actually render the image. We would just like to be able to fail gracefully with the errorBuilder like on macOS. I think this is an OS error from trying to read the entire file at once rather than a memory issue when trying to decode the image into memory? but I can try using cacheWidth/cacheHeight and see if it prevents the crash. However, either way it would be nice to be able to catch the error instead of crashing

@bourdakos1
Copy link
Author

It's still crashing for me when using this code sample:

import 'dart:io';

import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Code Sample',
      home: Scaffold(
        body: Image.file(
          width: 100,
          height: 100,
          cacheWidth: 100,
          cacheHeight: 100,
          File('<path-to-file>'),
          errorBuilder: (context, error, stackTrace) => Text(error.toString()),
        ),
      ),
    );
  }
}

@cbracken
Copy link
Member

cbracken commented Oct 4, 2022

Ah so to be clear this is more about failing gracefully with an error on non-image files, than crashing when loading extremely large (valid) image files. Thanks for clarifying.

@bourdakos1
Copy link
Author

It already gracefully fails on non-image files. We would like it to also gracefully fail when loading extremely large files (image or not)

@jonahwilliams
Copy link
Member

Definitely curious as to why we're crashing (investigating that now), but you might want a better solution that does not involve loading files into memory that definitely aren't images - large or otherwise. Here is a gist of how that could be done:

https://gist.github.com/jonahwilliams/56bc6212445d813a8579e6a395327a29

@jonahwilliams
Copy link
Member

The magic number is INT_MAX bytes (2147483647), dart issue is dart-lang/sdk#50129

@jonahwilliams
Copy link
Member

I've updated the gist with that number and fixed the equality implementation

@jonahwilliams
Copy link
Member

Fix is pending at #112892, which will both improve the performance of FileImage and prevent this particular crash

@jonahwilliams jonahwilliams self-assigned this Oct 6, 2022
cbracken pushed a commit that referenced this issue Oct 6, 2022
… file type) (#112892)

Update FileImage to use the new ImmutableBuffer.fromFilePath constructor to avoid loading bytes through the Dart heap. As a side effect, tis fixes #112881 which prevents dart:io from opening a file larger than INT_MAX bytes on windows.

For files that are not exactly a dart:io file, we still use the old method of calling loadBytes() in order to not make this a breaking change.
@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 20, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: crash Stack traces logged to the console customer: google Various Google teams dependency: dart Dart team may need to help us perf: memory Performance issues related to memory
Projects
Status: Done
4 participants