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

[Linux] [regression] Apps won't start under "OpenGL ES" - CRASH ( Could not wrap embedder supplied frame-buffer ) #76881

Closed
tklros opened this issue Feb 26, 2021 · 6 comments · Fixed by flutter/engine#24864
Labels
a: desktop Running on desktop c: crash Stack traces logged to the console c: fatal crash Crashes that terminate the process c: regression It was better in the past than it is now engine flutter/engine repository. See also e: labels. found in release: 1.27 Found to occur in 1.27 has reproducible steps The issue has been confirmed reproducible and is ready to work on P1 High-priority issues at the top of the work list platform-linux Building on or for Linux specifically

Comments

@tklros
Copy link

tklros commented Feb 26, 2021

Linux OpenGL ES (any version) support is broken in flutter/flutter @master since this commit flutter/flutter@ 9ae10d0 #75309 . on X11 and Wayland.
It changes the Flutter engine version in the file bin/internal/engine.version to master branch flutter/engine@24fca62
which contains this commit flutter/engine@f94cf14 flutter/engine#24011 and since then OpenGL ES support is broken at least on my systems.
The regression to the OpenGL ES support for Linux has something to do with this pull request flutter/engine#24011 .

Before that, OpenGL ES 2.0 and 3.0 ran flawlessly and fast on both display systems (Wayland and X11), even on my ARM64 machine with a Mali 400 MP2 GPU with only OpenGL ES 2.0 support and Wayland.

With software rendering enabled, Flutter is too slow and using too much power on my ARM64 device.

If I change the number in the file bin/internal/engine.version to "2c144c3eeb4b25fd78b90dd3e2a24c36f4201021", the one commit before the pull request flutter/engine@f94cf14 flutter/engine#24011, OpenGL ES 2.0 and 3.0 support works again on all my systems.

I've encountered this problem on all of my devices and all GPUs(3) use mesa drivers.
I don't have an NVIDIA GPU, so I can't test it with other drivers.

My Devices:

Device 1:
Architecture: x86-64
Operating System: openSUSE Tumbleweed
Linux Kernel Version: 5.10.16-1-default
Graphics Platforms: X11 and Wayland
Graphics Processors: Mesa DRI Intel® HD Graphics P630 and AMD Radeon WX7100 pro/RX480 (Polaris 10)
CPU: 8 × Intel® Xeon® CPU E3-1535M v6 @ 3.10GHz

Device 2:
Architecture: ARM64
Operating System: manjaro
Linux Kernel Version: 5.11.1-1-MANJARO-ARM
Graphics Platform: Wayland
Graphics Processor: Mali400 MP2
CPU: Allwinner Quad-Core ARM Cortex-A53

Steps to Reproduce

  1. flutter create bug.
  2. cd bug/
  3. Build and run it with
    MESA_GL_VERSION_OVERRIDE=1.0 GDK_GL=gles MESA_GLES_VERSION_OVERRIDE=2.0 flutter run -d linux --verbose

These variables ensure that OpenGL ES is used: MESA_GL_VERSION_OVERRIDE=1.0 GDK_GL=gles
and MESA_GLES_VERSION_OVERRIDE=2.0 to test openGL ES 2.0 support on my x86 Maschine. -with openGL ES 3.0 I get the same error.

Expected results:
Working application with a fast and responsive ui

3Dsample.mp4

Actual results:
immediately after start it crashed

Logs

MESA_GL_VERSION_OVERRIDE=1.0 GDK_GL=gles MESA_GLES_VERSION_OVERRIDE=2.0 flutter run -d linux --verbose # (all devices)

[ERROR:flutter/shell/platform/embedder/embedder.cc(514)] Could not wrap embedder supplied frame-buffer.

flutter analyze # (all devices)

Analyzing bug...  
No issues found! (ran in 9.1s)

flutter doctor -v # (ARM64 device)

[✓] Flutter (Channel master, 1.27.0-9.0.pre.86, on Linux, locale de_DE.UTF-8)  
• Flutter version 1.27.0-9.0.pre.86 at /home/manjaro/flutterBugReport/flutter  
• Framework revision de8c8c35f1 (vor 2 Stunden), 2021-02-25 09:32:16 -0800  
• Engine revision 93cb5dbbc7  
• Dart version 2.13.0 (build 2.13.0-73.0.dev)  
  
[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)  
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.  
  
[✓] Linux toolchain - develop for Linux desktop  
• clang version 11.1.0  
• cmake version 3.19.6  
• ninja version 1.10.2  
• pkg-config version 1.7.3  
  
[✗] Flutter IDE Support (No supported IDEs installed)  
• IntelliJ - https://www.jetbrains.com/idea/  
• Android Studio - https://developer.android.com/studio/  
• VS Code - https://code.visualstudio.com/  
  
[✓] Connected device (1 available)  
• Linux (desktop) • linux • linux-arm64 • Linux  
  
! Doctor found issues in 2 categories.

glxinfo |grep Open # (ARM64 device)

OpenGL vendor string: lima
OpenGL renderer string: Mali400
OpenGL version string: 2.1 Mesa 20.3.4
OpenGL shading language version string: 1.20
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 20.3.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16

glxinfo | grep Open # (x86-64 device)

    Vendor: Intel Open Source Technology Center (0x8086)
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics P630 (KBL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.3.4
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 20.3.4
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.3.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

DRI_PRIME=1 glxinfo | grep Open # (x86-64 device)

OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon (TM) Pro WX 7100 Graphics (POLARIS10, DRM 3.40.0, 5.10.16-1-default, LLVM 11.0.1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.3.4
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.3.4
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.3.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
@tklros tklros changed the title [Linux] Flutter with "OpenGL ES" crashed ( Could not wrap embedder supplied frame-buffer ) [Linux] Flutter with "OpenGL ES" crashes ( Could not wrap embedder supplied frame-buffer ) Feb 26, 2021
@tklros tklros changed the title [Linux] Flutter with "OpenGL ES" crashes ( Could not wrap embedder supplied frame-buffer ) [Linux] Flutter with "OpenGL ES" - CRASH ( Could not wrap embedder supplied frame-buffer ) Feb 26, 2021
@tklros tklros changed the title [Linux] Flutter with "OpenGL ES" - CRASH ( Could not wrap embedder supplied frame-buffer ) [Linux] Apps aren't starting with "OpenGL ES" - CRASH ( Could not wrap embedder supplied frame-buffer ) Feb 26, 2021
@tklros tklros changed the title [Linux] Apps aren't starting with "OpenGL ES" - CRASH ( Could not wrap embedder supplied frame-buffer ) [Linux] Apps do not start under "OpenGL ES" - CRASH ( Could not wrap embedder supplied frame-buffer ) Feb 26, 2021
@tklros tklros changed the title [Linux] Apps do not start under "OpenGL ES" - CRASH ( Could not wrap embedder supplied frame-buffer ) [Linux] Apps won't start under "OpenGL ES" - CRASH ( Could not wrap embedder supplied frame-buffer ) Feb 26, 2021
@tklros tklros changed the title [Linux] Apps won't start under "OpenGL ES" - CRASH ( Could not wrap embedder supplied frame-buffer ) [Linux] [regression] Apps won't start under "OpenGL ES" - CRASH ( Could not wrap embedder supplied frame-buffer ) Feb 27, 2021
@TahaTesser TahaTesser added the in triage Presently being triaged by the triage team label Mar 1, 2021
@TahaTesser
Copy link
Member

Hi @tklros
Thanks for filing the issue, I can reproduce it when using MESA_GL_VERSION_OVERRIDE=1.0 GDK_GL=gles MESA_GLES_VERSION_OVERRIDE=2.0 flutter run -d linux --verbose on the latest dev and master channels.

logs
taha@pop-os:~/AndroidStudioProjects/dev_flutter$ MESA_GL_VERSION_OVERRIDE=1.0 GDK_GL=gles MESA_GLES_VERSION_OVERRIDE=2.0 flutterd run -d linux --verbose
[  +44 ms] executing: uname -m
[  +21 ms] Exit code 0 from: uname -m
[        ] x86_64
[   +9 ms] executing: [/home/taha/Code/flutter_dev/] git -c
log.showSignature=false log -n 1 --pretty=format:%H
[   +6 ms] Exit code 0 from: git -c log.showSignature=false log -n 1
--pretty=format:%H
[        ] b7d4806243a4e906bf061f79a0e314ba28111aa6
[        ] executing: [/home/taha/Code/flutter_dev/] git tag --points-at
b7d4806243a4e906bf061f79a0e314ba28111aa6
[   +8 ms] Exit code 0 from: git tag --points-at
b7d4806243a4e906bf061f79a0e314ba28111aa6
[        ] 1.27.0-8.0.pre
[  +26 ms] executing: [/home/taha/Code/flutter_dev/] git rev-parse --abbrev-ref
--symbolic @{u}
[   +3 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/dev
[        ] executing: [/home/taha/Code/flutter_dev/] git ls-remote --get-url
origin
[   +2 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +24 ms] executing: [/home/taha/Code/flutter_dev/] git rev-parse --abbrev-ref
HEAD
[   +3 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] dev
[  +35 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.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping
update.
[   +1 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.
[  +38 ms] executing: /home/taha/Code/SDK/platform-tools/adb devices -l
[  +11 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.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping
update.
[        ] Artifact Instance of 'WindowsEngineArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' 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.
[  +40 ms] executing: /home/taha/Code/SDK/platform-tools/adb devices -l
[   +7 ms] Running "flutter pub get" in dev_flutter...
[   +3 ms] executing: [/home/taha/AndroidStudioProjects/dev_flutter/]
/home/taha/Code/flutter_dev/bin/cache/dart-sdk/bin/pub --verbose get
--no-precompile
[  +21 ms] List of devices attached
[   +1 ms] List of devices attached
[  +22 ms] FINE: Pub 2.13.0-30.0.dev
[  +54 ms] MSG : Resolving dependencies...
[  +24 ms] SLVR: fact: dev_flutter is 1.0.0+1
[   +6 ms] SLVR: derived: dev_flutter
[  +22 ms] SLVR: fact: dev_flutter depends on flutter any from sdk
[        ] SLVR: fact: dev_flutter depends on cupertino_icons ^1.0.2
[        ] SLVR: fact: dev_flutter depends on flutter_test any from sdk
[   +1 ms] SLVR:   selecting dev_flutter
[        ] SLVR:   derived: flutter_test any from sdk
[        ] SLVR:   derived: cupertino_icons ^1.0.2
[        ] SLVR:   derived: flutter any from sdk
[  +11 ms] SLVR:   fact: flutter_test 0.0.0 from sdk depends on flutter any from
sdk
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on test_api 0.2.19
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on path 1.8.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on fake_async 1.2.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on clock 1.1.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on stack_trace
1.10.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on vector_math
2.1.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on async 2.5.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on boolean_selector
2.1.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on characters 1.1.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on charcode 1.2.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on collection
1.15.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on matcher 0.12.10
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on meta 1.3.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on source_span
1.8.1
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on stream_channel
2.1.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on string_scanner
1.1.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on term_glyph 1.2.0
[        ] SLVR:   fact: flutter_test 0.0.0 from sdk depends on typed_data 1.3.0
[        ] SLVR:     selecting flutter_test 0.0.0 from sdk
[        ] SLVR:     derived: typed_data 1.3.0
[        ] SLVR:     derived: term_glyph 1.2.0
[        ] SLVR:     derived: string_scanner 1.1.0
[        ] SLVR:     derived: stream_channel 2.1.0
[        ] SLVR:     derived: source_span 1.8.1
[        ] SLVR:     derived: meta 1.3.0
[        ] SLVR:     derived: matcher 0.12.10
[        ] SLVR:     derived: collection 1.15.0
[        ] SLVR:     derived: charcode 1.2.0
[        ] SLVR:     derived: characters 1.1.0
[        ] SLVR:     derived: boolean_selector 2.1.0
[        ] SLVR:     derived: async 2.5.0
[        ] SLVR:     derived: vector_math 2.1.0
[        ] SLVR:     derived: stack_trace 1.10.0
[        ] SLVR:     derived: clock 1.1.0
[        ] SLVR:     derived: fake_async 1.2.0
[        ] SLVR:     derived: path 1.8.0
[        ] SLVR:     derived: test_api 0.2.19
[   +6 ms] IO  : Get versions from
https://pub.dartlang.org/api/packages/source_span.
[  +12 ms] IO  : HTTP GET https://pub.dartlang.org/api/packages/source_span
[        ]     | Accept: application/vnd.pub.v2+json
[        ]     | X-Pub-OS: linux
[        ]     | X-Pub-Command: get
[        ]     | X-Pub-Session-ID: 75CE3E34-89BF-4AE3-84E5-4BD030DE1523
[        ]     | X-Pub-Environment: flutter_cli:verify:run
[        ]     | user-agent: Dart pub 2.13.0-30.0.dev
[ +535 ms] IO  : HTTP response 200 OK for GET
https://pub.dartlang.org/api/packages/source_span
[        ]     | took 0:00:00.536507
[        ]     | transfer-encoding: chunked
[        ]     | date: Mon, 01 Mar 2021 09:28:52 GMT
[        ]     | content-encoding: gzip
[        ]     | vary: Accept-Encoding
[        ]     | strict-transport-security: max-age=31536000; preload
[        ]     | via: 1.1 google
[        ]     | content-type: application/json; charset="utf-8"
[        ]     | x-frame-options: SAMEORIGIN
[        ]     | x-xss-protection: 1; mode=block
[        ]     | x-content-type-options: nosniff
[        ]     | server: dart:io with Shelf
[  +29 ms] IO  : Writing 18301 characters to text file
/home/taha/.pub-cache/hosted/pub.dartlang.org/.cache/source_span-versions.json.
[        ] FINE: Contents:
[   +3 ms]     |
{"name":"source_span","latest":{"version":"1.8.1","pubspec":{"name":"source_span
","version":"1.8.1","description":"A library for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=2.12.0-0.0
<3.0.0"},"dependencies":{"collection":"^1.15.0","path":"^1.8.0","term_glyph":"^1
.2.0"},"dev_dependencies":{"test":"^1.16.0-nullsafety"}},"archive_url":"https://
pub.dartlang.org/packages/source_span/versions/1.8.1.tar.gz","published":"2021-0
2-05T22:50:21.324729Z"},"versions":[{"version":"1.0.0","pubspec":{"description":
"A library for identifying source spans and locations.","author":"Dart Team
<misc@dartlang.org>","environment":{"sdk":">=0.8.10+6
<2.0.0"},"version":"1.0.0","dependencies":{"path":">=1.2.0
<2.0.0"},"dev_dependencies":{"unittest":">=0.9.0
<0.10.0"},"homepage":"http://www.dartlang.org","name":"source_span"},"archive_ur
l":"https://pub.dartlang.org/packages/source_span/versions/1.0.0.tar.gz","publis
hed":"2014-07-24T00:08:12.087240Z"},{"version":"1.0.2","pubspec":{"description":
"A library for identifying source spans and locations.","author":"Dart Team
<misc@dartlang.org>","environment":{"sdk":">=0.8.10+6
<2.0.0"},"version":"1.0.2","dependencies":{"path":">=1.2.0
<2.0.0"},"dev_dependencies":{"unittest":">=0.9.0
<0.10.0"},"homepage":"http://www.dartlang.org","name":"source_span"},"archive_ur
l":"https://pub.dartlang.org/packages/source_span/versions/1.0.2.tar.gz","publis
hed":"2014-11-21T23:56:21.332220Z"},{"version":"1.0.3","pubspec":{"description":
"A library for identifying source spans and locations.","author":"Dart Team
<misc@dartlang.org>","environment":{"sdk":">=0.8.10+6
<2.0.0"},"version":"1.0.3","dependencies":{"path":">=1.2.0
<2.0.0"},"dev_dependencies":{"unittest":">=0.9.0
<0.10.0"},"homepage":"http://github.com/dart-lang/source_span","name":"source_sp
an"},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/1.0.3
.tar.gz","published":"2015-01-27T23:36:54.384010Z"},{"version":"1.1.0","pubspec"
:{"description":"A library for identifying source spans and
locations.","author":"Dart Team
<misc@dartlang.org>","environment":{"sdk":">=0.8.10+6
<2.0.0"},"version":"1.1.0","dependencies":{"path":">=1.2.0
<2.0.0"},"dev_dependencies":{"unittest":">=0.9.0
<0.12.0"},"homepage":"http://github.com/dart-lang/source_span","name":"source_sp
an"},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/1.1.0
.tar.gz","published":"2015-03-26T22:15:12.023690Z"},{"version":"1.1.1","pubspec"
:{"description":"A library for identifying source spans and
locations.","author":"Dart Team
<misc@dartlang.org>","environment":{"sdk":">=0.8.10+6
<2.0.0"},"version":"1.1.1","dependencies":{"path":">=1.2.0
<2.0.0"},"dev_dependencies":{"unittest":">=0.9.0
<0.12.0"},"homepage":"http://github.com/dart-lang/source_span","name":"source_sp
an"},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/1.1.1
.tar.gz","published":"2015-03-27T21:27:05.457770Z"},{"version":"1.1.2","pubspec"
:{"description":"A library for identifying source spans and
locations.","author":"Dart Team
<misc@dartlang.org>","environment":{"sdk":">=0.8.10+6
<2.0.0"},"version":"1.1.2","dependencies":{"path":">=1.2.0
<2.0.0"},"dev_dependencies":{"unittest":">=0.9.0
<0.12.0"},"homepage":"http://github.com/dart-lang/source_span","name":"source_sp
an"},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/1.1.2
.tar.gz","published":"2015-03-31T19:55:26.218560Z"},{"version":"1.1.3","pubspec"
:{"version":"1.1.3","name":"source_span","dependencies":{"path":">=1.2.0
<2.0.0"},"author":"Dart Team <misc@dartlang.org>","description":"A library for
identifying source spans and
locations.","homepage":"http://github.com/dart-lang/source_span","environment":{
"sdk":">=0.8.10+6 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.1.3.tar.gz","published":"2015-08-18T22:02:20.558Z"},{"version":"1.1.4","pubsp
ec":{"version":"1.1.4","name":"source_span","dependencies":{"path":">=1.2.0
<2.0.0"},"author":"Dart Team <misc@dartlang.org>","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=0.8.10+6 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.1.4.tar.gz","published":"2015-08-28T01:15:40.048Z"},{"version":"1.1.5","pubsp
ec":{"version":"1.1.5","name":"source_span","dependencies":{"path":">=1.2.0
<2.0.0"},"author":"Dart Team <misc@dartlang.org>","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=0.8.10+6 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.1.5.tar.gz","published":"2015-09-01T22:46:04.012Z"},{"version":"1.1.6","pubsp
ec":{"version":"1.1.6","name":"source_span","dependencies":{"path":">=1.2.0
<2.0.0"},"author":"Dart Team <misc@dartlang.org>","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=0.8.10+6 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.1.6.tar.gz","published":"2015-09-02T00:43:35.510Z"},{"version":"1.2.0","pubsp
ec":{"version":"1.2.0","name":"source_span","dependencies":{"path":">=1.2.0
<2.0.0"},"author":"Dart Team <misc@dartlang.org>","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=0.8.10+6 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.2.0.tar.gz","published":"2015-09-02T20:32:43.820Z"},{"version":"1.2.1","pubsp
ec":{"version":"1.2.1","name":"source_span","dependencies":{"path":">=1.2.0
<2.0.0"},"author":"Dart Team <misc@dartlang.org>","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=0.8.10+6 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.2.1.tar.gz","published":"2015-09-30T20:38:51.964Z"},{"version":"1.2.2","pubsp
ec":{"version":"1.2.2","name":"source_span","dependencies":{"path":">=1.2.0
<2.0.0"},"author":"Dart Team <misc@dartlang.org>","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=0.8.10+6 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.2.2.tar.gz","published":"2016-03-02T20:46:37.826Z"},{"version":"1.2.3","pubsp
ec":{"version":"1.2.3","name":"source_span","dependencies":{"path":">=1.2.0
<2.0.0"},"author":"Dart Team <misc@dartlang.org>","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=0.8.10+6 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.2.3.tar.gz","published":"2016-06-09T22:38:05.703Z"},{"version":"1.2.4","pubsp
ec":{"version":"1.2.4","name":"source_span","dependencies":{"path":">=1.2.0
<2.0.0"},"author":"Dart Team <misc@dartlang.org>","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=0.8.10+6 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.2.4.tar.gz","published":"2016-10-21T18:33:52.176Z"},{"version":"1.3.0","pubsp
ec":{"version":"1.3.0","name":"source_span","dependencies":{"path":">=1.2.0
<2.0.0"},"author":"Dart Team <misc@dartlang.org>","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=0.8.10+6 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.3.0.tar.gz","published":"2016-11-08T19:35:45.774Z"},{"version":"1.3.1","pubsp
ec":{"version":"1.3.1","name":"source_span","dependencies":{"charcode":"^1.0.0",
"path":">=1.2.0 <2.0.0"},"author":"Dart Team
<misc@dartlang.org>","description":"A library for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=1.8.0 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.3.1.tar.gz","published":"2017-01-07T01:47:03.432Z"},{"version":"1.4.0","pubsp
ec":{"version":"1.4.0","name":"source_span","dependencies":{"charcode":"^1.0.0",
"path":">=1.2.0 <2.0.0"},"author":"Dart Team
<misc@dartlang.org>","description":"A library for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=1.8.0 <2.0.0"},"dev_dependencies":{"test":">=0.12.0
<0.13.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions
/1.4.0.tar.gz","published":"2017-05-17T05:18:27.887288Z"},{"version":"1.4.1","pu
bspec":{"version":"1.4.1","name":"source_span","dependencies":{"charcode":"^1.0.
0","path":">=1.2.0 <2.0.0"},"author":"Dart Team
<misc@dartlang.org>","description":"A library for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=1.8.0 <3.0.0"},"dev_dependencies":{"test":">=0.12.0
<2.0.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/
1.4.1.tar.gz","published":"2018-07-18T20:51:24.362698Z"},{"version":"1.5.0","pub
spec":{"version":"1.5.0","name":"source_span","dependencies":{"charcode":"^1.0.0
","term_glyph":"^1.0.0","path":">=1.2.0 <2.0.0"},"author":"Dart Team
<misc@dartlang.org>","description":"A library for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=1.8.0 <3.0.0"},"dev_dependencies":{"test":">=0.12.0
<2.0.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/
1.5.0.tar.gz","published":"2019-01-10T23:18:38.421891Z"},{"version":"1.5.1","pub
spec":{"version":"1.5.1","name":"source_span","dependencies":{"charcode":"^1.0.0
","term_glyph":"^1.0.0","path":">=1.2.0 <2.0.0"},"author":"Dart Team
<misc@dartlang.org>","description":"A library for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=1.8.0 <3.0.0"},"dev_dependencies":{"test":">=0.12.0
<2.0.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/
1.5.1.tar.gz","published":"2019-01-14T22:41:17.092205Z"},{"version":"1.5.2","pub
spec":{"version":"1.5.2","name":"source_span","dependencies":{"charcode":"^1.0.0
","term_glyph":"^1.0.0","path":">=1.2.0 <2.0.0"},"author":"Dart Team
<misc@dartlang.org>","description":"A library for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=1.8.0 <3.0.0"},"dev_dependencies":{"test":">=0.12.0
<2.0.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/
1.5.2.tar.gz","published":"2019-01-17T22:38:43.475980Z"},{"version":"1.5.3","pub
spec":{"version":"1.5.3","name":"source_span","dependencies":{"charcode":"^1.0.0
","term_glyph":"^1.0.0","path":">=1.2.0 <2.0.0"},"author":"Dart Team
<misc@dartlang.org>","description":"A library for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=1.8.0 <3.0.0"},"dev_dependencies":{"test":">=0.12.0
<2.0.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/
1.5.3.tar.gz","published":"2019-01-24T00:50:13.815416Z"},{"version":"1.5.4","pub
spec":{"version":"1.5.4","name":"source_span","dependencies":{"charcode":"^1.0.0
","term_glyph":"^1.0.0","path":">=1.2.0 <2.0.0"},"author":"Dart Team
<misc@dartlang.org>","description":"A library for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=1.8.0 <3.0.0"},"dev_dependencies":{"test":">=0.12.0
<2.0.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/
1.5.4.tar.gz","published":"2019-01-29T00:20:21.924880Z"},{"version":"1.5.5","pub
spec":{"version":"1.5.5","name":"source_span","dependencies":{"charcode":"^1.0.0
","term_glyph":"^1.0.0","path":">=1.2.0 <2.0.0"},"author":"Dart Team
<misc@dartlang.org>","description":"A library for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=1.8.0 <3.0.0"},"dev_dependencies":{"test":">=0.12.0
<2.0.0"}},"archive_url":"https://pub.dartlang.org/packages/source_span/versions/
1.5.5.tar.gz","published":"2019-02-28T22:32:10.087963Z"},{"version":"1.6.0","pub
spec":{"name":"source_span","version":"1.6.0","description":"A library for
identifying source spans and locations.","author":"Dart Team
<misc@dartlang.org>","homepage":"https://github.com/dart-lang/source_span","envi
ronment":{"sdk":">=2.6.0
<3.0.0"},"dependencies":{"charcode":"^1.0.0","collection":"^1.8.0","meta":">=0.9
.0 <2.0.0","path":">=1.2.0
<2.0.0","term_glyph":"^1.0.0"},"dev_dependencies":{"test":"^1.6.0"}},"archive_ur
l":"https://pub.dartlang.org/packages/source_span/versions/1.6.0.tar.gz","publis
hed":"2020-01-15T03:49:07.372381Z"},{"version":"1.7.0","pubspec":{"name":"source
_span","version":"1.7.0","description":"A library for identifying source spans
and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=2.6.0
<3.0.0"},"dependencies":{"charcode":"^1.0.0","collection":"^1.8.0","meta":">=0.9
.0 <2.0.0","path":">=1.2.0
<2.0.0","term_glyph":"^1.0.0"},"dev_dependencies":{"test":"^1.6.0"}},"archive_ur
l":"https://pub.dartlang.org/packages/source_span/versions/1.7.0.tar.gz","publis
hed":"2020-03-18T02:42:37.130706Z"},{"version":"1.8.0-nullsafety","pubspec":{"na
me":"source_span","version":"1.8.0-nullsafety","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=2.10.0-0 <2.10.0"},"dependencies":{"charcode":">=1.2.0-nullsafety
<1.2.0","collection":">=1.15.0-nullsafety <1.15.0","path":">=1.8.0-nullsafety
<1.8.0","term_glyph":">=1.2.0-nullsafety
<1.2.0"},"dev_dependencies":{"test":"^1.6.0"}},"archive_url":"https://pub.dartla
ng.org/packages/source_span/versions/1.8.0-nullsafety.tar.gz","published":"2020-
07-29T16:21:05.352748Z"},{"version":"1.8.0-nullsafety.1","pubspec":{"name":"sour
ce_span","version":"1.8.0-nullsafety.1","description":"A library for identifying
source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=2.10.0-137.0 <2.10.0"},"dependencies":{"charcode":">=1.2.0-nullsafety
<1.2.0","collection":">=1.15.0-nullsafety <1.15.0","path":">=1.8.0-nullsafety
<1.8.0","term_glyph":">=1.2.0-nullsafety
<1.2.0"},"dev_dependencies":{"test":"^1.6.0"}},"archive_url":"https://pub.dartla
ng.org/packages/source_span/versions/1.8.0-nullsafety.1.tar.gz","published":"202
0-09-18T20:03:40.597406Z"},{"version":"1.8.0-nullsafety.2","pubspec":{"name":"so
urce_span","version":"1.8.0-nullsafety.2","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=2.10.0-0.0 <2.11.0"},"dependencies":{"charcode":">=1.2.0-nullsafety
<1.2.0","collection":">=1.15.0-nullsafety <1.15.0","path":">=1.8.0-nullsafety
<1.8.0","term_glyph":">=1.2.0-nullsafety
<1.2.0"},"dev_dependencies":{"test":"^1.6.0"}},"archive_url":"https://pub.dartla
ng.org/packages/source_span/versions/1.8.0-nullsafety.2.tar.gz","published":"202
0-09-21T20:21:01.463061Z"},{"version":"1.8.0-nullsafety.3","pubspec":{"name":"so
urce_span","version":"1.8.0-nullsafety.3","description":"A library for
identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=2.11.0-0.0 <2.12.0"},"dependencies":{"charcode":">=1.2.0-nullsafety
<1.2.0","collection":">=1.15.0-nullsafety <1.15.0","path":">=1.8.0-nullsafety
<1.8.0","term_glyph":">=1.2.0-nullsafety
<1.2.0"},"dev_dependencies":{"test":"^1.16.0-nullsafety"}},"archive_url":"https:
//pub.dartlang.org/packages/source_span/versions/1.8.0-nullsafety.3.tar.gz","pub
lished":"2020-10-23T20:09:00.348438Z"},{"version":"1.8.0-nullsafety.4","pubspec"
:{"name":"source_span","version":"1.8.0-nullsafety.4","description":"A library
for identifying source spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=2.12.0-0.0 <3.0.0"},"dependencies":{"charcode":">=1.2.0-nullsafety
<1.2.0","collection":">=1.15.0-nullsafety <1.15.0","path":">=1.8.0-nullsafety
<1.8.0","term_glyph":">=1.2.0-nullsafety
<1.2.0"},"dev_dependencies":{"test":"^1.16.0-nullsafety"}},"archive_url":"https:
//pub.dartlang.org/packages/source_span/versions/1.8.0-nullsafety.4.tar.gz","pub
lished":"2020-11-05T01:02:44.202610Z"},{"version":"1.8.0","pubspec":{"name":"sou
rce_span","version":"1.8.0","description":"A library for identifying source
spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=2.12.0-0.0
<3.0.0"},"dependencies":{"charcode":"^1.2.0","collection":"^1.15.0","path":"^1.8
.0","term_glyph":"^1.2.0"},"dev_dependencies":{"test":"^1.16.0-nullsafety"}},"ar
chive_url":"https://pub.dartlang.org/packages/source_span/versions/1.8.0.tar.gz"
,"published":"2021-02-02T23:42:27.767202Z"},{"version":"1.8.1","pubspec":{"name"
:"source_span","version":"1.8.1","description":"A library for identifying source
spans and
locations.","homepage":"https://github.com/dart-lang/source_span","environment":
{"sdk":">=2.12.0-0.0
<3.0.0"},"dependencies":{"collection":"^1.15.0","path":"^1.8.0","term_glyph":"^1
.2.0"},"dev_dependencies":{"test":"^1.16.0-nullsafety"}},"archive_url":"https://
pub.dartlang.org/packages/source_span/versions/1.8.1.tar.gz","published":"2021-0
2-05T22:50:21.324729Z"}],"_fetchedAt":"2021-03-01T14:58:53.007773"}
[  +31 ms] IO  : Get versions from
https://pub.dartlang.org/api/packages/collection.
[        ] IO  : Get versions from https://pub.dartlang.org/api/packages/path.
[        ] IO  : Get versions from
https://pub.dartlang.org/api/packages/term_glyph.
[        ] IO  : HTTP GET https://pub.dartlang.org/api/packages/collection
[        ]     | Accept: application/vnd.pub.v2+json
[        ]     | X-Pub-OS: linux
[        ]     | X-Pub-Command: get
[        ]     | X-Pub-Session-ID: 75CE3E34-89BF-4AE3-84E5-4BD030DE1523
[        ]     | X-Pub-Environment: flutter_cli:verify:run
[        ]     | user-agent: Dart pub 2.13.0-30.0.dev
[        ] IO  : HTTP GET https://pub.dartlang.org/api/packages/path
[        ]     | Accept: application/vnd.pub.v2+json
[        ]     | X-Pub-OS: linux
[        ]     | X-Pub-Command: get
[        ]     | X-Pub-Session-ID: 75CE3E34-89BF-4AE3-84E5-4BD030DE1523
[        ]     | X-Pub-Environment: flutter_cli:verify:run
[        ]     | user-agent: Dart pub 2.13.0-30.0.dev
[        ] IO  : HTTP GET https://pub.dartlang.org/api/packages/term_glyph
[        ]     | Accept: application/vnd.pub.v2+json
[        ]     | X-Pub-OS: linux
[        ]     | X-Pub-Command: get
[        ]     | X-Pub-Session-ID: 75CE3E34-89BF-4AE3-84E5-4BD030DE1523
[        ]     | X-Pub-Environment: flutter_cli:verify:run
[        ]     | user-agent: Dart pub 2.13.0-30.0.dev
[        ] SLVR:       selecting cupertino_icons 1.0.2
[        ] SLVR:       fact: flutter 0.0.0 from sdk depends on characters 1.1.0
[        ] SLVR:       fact: flutter 0.0.0 from sdk depends on collection 1.15.0
[        ] SLVR:       fact: flutter 0.0.0 from sdk depends on meta 1.3.0
[        ] SLVR:       fact: flutter 0.0.0 from sdk depends on typed_data 1.3.0
[        ] SLVR:       fact: flutter 0.0.0 from sdk depends on vector_math 2.1.0
[        ] SLVR:       fact: flutter 0.0.0 from sdk depends on sky_engine any
from sdk
[        ] SLVR:         selecting flutter 0.0.0 from sdk
[        ] SLVR:         derived: sky_engine any from sdk
[        ] SLVR:         fact: typed_data 1.3.0 depends on collection ^1.15.0
[        ] SLVR:           selecting typed_data 1.3.0
[        ] SLVR:             selecting term_glyph 1.2.0
[   +2 ms] SLVR:             fact: string_scanner 1.1.0 depends on charcode
^1.2.0
[        ] SLVR:             fact: string_scanner 1.1.0 depends on source_span
^1.8.0
[        ] SLVR:               selecting string_scanner 1.1.0
[   +2 ms] SLVR:               fact: stream_channel 2.1.0 depends on async
^2.5.0
[        ] SLVR:                 selecting stream_channel 2.1.0
[  +10 ms] SLVR:                 fact: source_span >=1.8.0 depends on collection
^1.15.0
[        ] SLVR:                 fact: source_span >=1.8.0 depends on path
^1.8.0
[        ] SLVR:                 fact: source_span >=1.8.0 depends on term_glyph
^1.2.0
[        ] SLVR:                   selecting source_span 1.8.1
[   +2 ms] SLVR:                     selecting meta 1.3.0
[   +2 ms] SLVR:                     fact: matcher 0.12.10 depends on
stack_trace ^1.10.0
[        ] SLVR:                       selecting matcher 0.12.10
[   +2 ms] SLVR:                         selecting collection 1.15.0
[   +2 ms] SLVR:                           selecting charcode 1.2.0
[   +2 ms] SLVR:                             selecting characters 1.1.0
[   +1 ms] SLVR:                             fact: boolean_selector 2.1.0
depends on source_span ^1.8.0
[        ] SLVR:                             fact: boolean_selector 2.1.0
depends on string_scanner ^1.1.0
[        ] SLVR:                               selecting boolean_selector 2.1.0
[   +1 ms] SLVR:                               fact: async 2.5.0 depends on
collection ^1.15.0
[        ] SLVR:                                 selecting async 2.5.0
[   +1 ms] SLVR:                                   selecting vector_math 2.1.0
[   +1 ms] SLVR:                                   fact: stack_trace 1.10.0
depends on path ^1.8.0
[        ] SLVR:                                     selecting stack_trace
1.10.0
[   +1 ms] SLVR:                                       selecting clock 1.1.0
[   +1 ms] SLVR:                                       fact: fake_async 1.2.0
depends on clock ^1.1.0
[        ] SLVR:                                       fact: fake_async 1.2.0
depends on collection ^1.15.0
[        ] SLVR:                                         selecting fake_async
1.2.0
[   +1 ms] SLVR:                                           selecting path 1.8.0
[   +2 ms] SLVR:                                           fact: test_api 0.2.19
depends on async ^2.5.0
[        ] SLVR:                                           fact: test_api 0.2.19
depends on boolean_selector ^2.1.0
[        ] SLVR:                                           fact: test_api 0.2.19
depends on collection ^1.15.0
[        ] SLVR:                                           fact: test_api 0.2.19
depends on meta ^1.3.0
[        ] SLVR:                                           fact: test_api 0.2.19
depends on path ^1.8.0
[        ] SLVR:                                           fact: test_api 0.2.19
depends on source_span ^1.8.0
[        ] SLVR:                                           fact: test_api 0.2.19
depends on stack_trace ^1.10.0
[        ] SLVR:                                           fact: test_api 0.2.19
depends on stream_channel ^2.1.0
[        ] SLVR:                                           fact: test_api 0.2.19
depends on string_scanner ^1.1.0
[        ] SLVR:                                           fact: test_api 0.2.19
depends on term_glyph ^1.2.0
[   +1 ms] SLVR:                                           fact: test_api 0.2.19
depends on matcher >=0.12.10 <0.12.11
[        ] SLVR:                                             selecting test_api
0.2.19
[        ] SLVR:                                               selecting
sky_engine 0.0.99 from sdk
[  +59 ms] SLVR: Version solving took 0:00:00.788287 seconds.
[        ]     | Tried 1 solutions.
[        ] FINE: Resolving dependencies finished (0.809s).
[  +61 ms] MSG : > source_span 1.8.1 (was 1.8.0)
[  +22 ms] IO  : Writing 3445 characters to text file ./pubspec.lock.
[        ] FINE: Contents:
[        ]     | # Generated by pub
[        ]     | # See https://dart.dev/tools/pub/glossary#lockfile
[        ]     | packages:
[        ]     |   async:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: async
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "2.5.0"
[        ]     |   boolean_selector:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: boolean_selector
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "2.1.0"
[        ]     |   characters:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: characters
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.1.0"
[        ]     |   charcode:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: charcode
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.2.0"
[        ]     |   clock:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: clock
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.1.0"
[        ]     |   collection:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: collection
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.15.0"
[        ]     |   cupertino_icons:
[        ]     |     dependency: "direct main"
[        ]     |     description:
[        ]     |       name: cupertino_icons
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.0.2"
[        ]     |   fake_async:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: fake_async
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.2.0"
[        ]     |   flutter:
[        ]     |     dependency: "direct main"
[        ]     |     description: flutter
[        ]     |     source: sdk
[        ]     |     version: "0.0.0"
[        ]     |   flutter_test:
[        ]     |     dependency: "direct dev"
[        ]     |     description: flutter
[        ]     |     source: sdk
[        ]     |     version: "0.0.0"
[        ]     |   matcher:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: matcher
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "0.12.10"
[        ]     |   meta:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: meta
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.3.0"
[        ]     |   path:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: path
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.8.0"
[        ]     |   sky_engine:
[        ]     |     dependency: transitive
[        ]     |     description: flutter
[        ]     |     source: sdk
[        ]     |     version: "0.0.99"
[        ]     |   source_span:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: source_span
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.8.1"
[        ]     |   stack_trace:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: stack_trace
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.10.0"
[        ]     |   stream_channel:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: stream_channel
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "2.1.0"
[        ]     |   string_scanner:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: string_scanner
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.1.0"
[        ]     |   term_glyph:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: term_glyph
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.2.0"
[        ]     |   test_api:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: test_api
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "0.2.19"
[        ]     |   typed_data:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: typed_data
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "1.3.0"
[        ]     |   vector_math:
[        ]     |     dependency: transitive
[        ]     |     description:
[        ]     |       name: vector_math
[        ]     |       url: "https://pub.dartlang.org"
[        ]     |     source: hosted
[        ]     |     version: "2.1.0"
[        ]     | sdks:
[        ]     |   dart: ">=2.12.0-0.0 <3.0.0"
[        ] MSG : Changed 1 dependency!
[        ] IO  : Writing 2074 characters to text file ./.packages.
[        ] FINE: Contents:
[        ]     | # This file is deprecated. Tools should instead consume 
[        ]     | # `.dart_tools/package_config.json`.
[        ]     | # 
[        ]     | # For more info see:
https://dart.dev/go/dot-packages-deprecation
[        ]     | # 
[        ]     | # Generated by pub on 2021-03-01 14:58:53.256700.
[        ]     |
async:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/async-2.5.0/lib/
[        ]     |
boolean_selector:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/boolean_se
lector-2.1.0/lib/
[        ]     |
characters:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/characters-1.1.0
/lib/
[        ]     |
charcode:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/charcode-1.2.0/lib
/
[        ]     |
clock:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/clock-1.1.0/lib/
[        ]     |
collection:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/collection-1.15.
0/lib/
[        ]     |
cupertino_icons:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/cupertino_i
cons-1.0.2/lib/
[        ]     |
fake_async:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/fake_async-1.2.0
/lib/
[        ]     |
flutter:file:///home/taha/Code/flutter_dev/packages/flutter/lib/
[        ]     |
flutter_test:file:///home/taha/Code/flutter_dev/packages/flutter_test/lib/
[        ]     |
matcher:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.10/lib
/
[        ]     |
meta:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/meta-1.3.0/lib/
[        ]     |
path:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib/
[        ]     |
sky_engine:file:///home/taha/Code/flutter_dev/bin/cache/pkg/sky_engine/lib/
[        ]     |
source_span:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/source_span-1.8
.1/lib/
[        ]     |
stack_trace:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.1
0.0/lib/
[        ]     |
stream_channel:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/stream_chann
el-2.1.0/lib/
[        ]     |
string_scanner:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/string_scann
er-1.1.0/lib/
[        ]     |
term_glyph:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0
/lib/
[        ]     |
test_api:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19/li
b/
[        ]     |
typed_data:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.0
/lib/
[        ]     |
vector_math:file:///home/taha/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1
.0/lib/
[        ]     | dev_flutter:lib/
[   +5 ms] IO  : Writing 4430 characters to text file
./.dart_tool/package_config.json.
[        ] FINE: Contents:
[        ]     | {
[        ]     |   "configVersion": 2,
[        ]     |   "packages": [
[        ]     |     {
[        ]     |       "name": "async",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/async-2.5.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "boolean_selector",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "characters",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/characters-1.1.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "charcode",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/charcode-1.2.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "clock",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/clock-1.1.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "collection",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/collection-1.15.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "cupertino_icons",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-1.0.2",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "fake_async",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/fake_async-1.2.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "flutter",
[        ]     |       "rootUri":
"file:///home/taha/Code/flutter_dev/packages/flutter",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "flutter_test",
[        ]     |       "rootUri":
"file:///home/taha/Code/flutter_dev/packages/flutter_test",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "matcher",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.10",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "meta",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/meta-1.3.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "path",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/path-1.8.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "sky_engine",
[        ]     |       "rootUri":
"file:///home/taha/Code/flutter_dev/bin/cache/pkg/sky_engine",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "source_span",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/source_span-1.8.1",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "stack_trace",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "stream_channel",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "string_scanner",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "term_glyph",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "test_api",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "typed_data",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "vector_math",
[        ]     |       "rootUri":
"file:///home/taha/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.12"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "dev_flutter",
[        ]     |       "rootUri": "../",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.7"
[        ]     |     }
[        ]     |   ],
[        ]     |   "generated": "2021-03-01T09:28:53.269244Z",
[        ]     |   "generator": "pub",
[        ]     |   "generatorVersion": "2.13.0-30.0.dev"
[        ]     | }
[  +25 ms] Running "flutter pub get" in dev_flutter... (completed in 1,060ms)
[  +93 ms] Generating
/home/taha/AndroidStudioProjects/dev_flutter/android/app/src/main/java/io/flutte
r/plugins/GeneratedPluginRegistrant.java
[  +53 ms] Initializing file store
[   +5 ms] Skipping target: gen_localizations
[   +4 ms] complete
[   +2 ms] Launching lib/main.dart on Linux in debug mode...
[   +3 ms] /home/taha/Code/flutter_dev/bin/cache/dart-sdk/bin/dart
--disable-dart-dev
/home/taha/Code/flutter_dev/bin/cache/artifacts/engine/linux-x64/frontend_server
.dart.snapshot --sdk-root
/home/taha/Code/flutter_dev/bin/cache/artifacts/engine/common/flutter_patched_sd
k/ --incremental --target=flutter --debugger-module-names
--experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill
/tmp/flutter_tools.DLSRBV/flutter_tool.BCYAIB/app.dill --packages
/home/taha/AndroidStudioProjects/dev_flutter/.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
[  +11 ms] Building Linux application...
[  +11 ms] <- compile package:dev_flutter/main.dart
[   +2 ms] executing: [build/linux/x64/debug/] cmake -G Ninja
-DCMAKE_BUILD_TYPE=Debug -DFLUTTER_TARGET_PLATFORM=linux-x64
/home/taha/AndroidStudioProjects/dev_flutter/linux
[  +83 ms] -- The CXX compiler identification is Clang 11.0.0
[  +25 ms] -- Check for working CXX compiler: /usr/bin/clang++
[  +55 ms] -- Check for working CXX compiler: /usr/bin/clang++ -- works
[        ] -- Detecting CXX compiler ABI info
[  +68 ms] -- Detecting CXX compiler ABI info - done
[   +8 ms] -- Detecting CXX compile features
[        ] -- Detecting CXX compile features - done
[   +4 ms] -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
[        ] -- Checking for module 'gtk+-3.0'
[   +9 ms] --   Found gtk+-3.0, version 3.24.23
[  +46 ms] -- Checking for module 'glib-2.0'
[   +6 ms] --   Found glib-2.0, version 2.66.1
[  +15 ms] -- Checking for module 'gio-2.0'
[   +6 ms] --   Found gio-2.0, version 2.66.1
[  +19 ms] -- Checking for module 'blkid'
[   +6 ms] --   Found blkid, version 2.36.0
[  +15 ms] -- Checking for module 'liblzma'
[   +6 ms] --   Found liblzma, version 5.2.4
[  +19 ms] -- Configuring done
[   +5 ms] -- Generating done
[        ] -- Build files have been written to:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug
[   +3 ms] executing: ninja -C build/linux/x64/debug install
[   +5 ms] ninja: Entering directory `build/linux/x64/debug'
[+9629 ms] [1/6] Generating
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/libflutter_
linux_gtk.so,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_basic_message_channel.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_binary_codec.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_binary_messenger.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_dart_project.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_engine.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_json_message_codec.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_json_method_codec.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_message_codec.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_method_call.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_method_channel.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_method_codec.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_method_response.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_plugin_registrar.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_plugin_registry.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_standard_message_codec.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_standard_method_codec.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_string_codec.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_value.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/fl_view.h,
/home/taha/AndroidStudioProjects/dev_flutter/linux/flutter/ephemeral/flutter_lin
ux/flutter_linux.h, _phony_
[   +1 ms] [  +46 ms] executing: uname -m
[        ] [  +23 ms] Exit code 0 from: uname -m
[        ] [        ] x86_64
[        ] [  +10 ms] executing: [/home/taha/Code/flutter_dev/] git -c
log.showSignature=false log -n 1 --pretty=format:%H
[        ] [   +3 ms] Exit code 0 from: git -c log.showSignature=false log -n 1
--pretty=format:%H
[        ] [        ] b7d4806243a4e906bf061f79a0e314ba28111aa6
[        ] [        ] executing: [/home/taha/Code/flutter_dev/] git tag
--points-at b7d4806243a4e906bf061f79a0e314ba28111aa6
[        ] [   +8 ms] Exit code 0 from: git tag --points-at
b7d4806243a4e906bf061f79a0e314ba28111aa6
[        ] [        ] 1.27.0-8.0.pre
[        ] [  +31 ms] executing: [/home/taha/Code/flutter_dev/] git rev-parse
--abbrev-ref --symbolic @{u}
[        ] [   +2 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic
@{u}
[        ] [        ] origin/dev
[        ] [        ] executing: [/home/taha/Code/flutter_dev/] git ls-remote
--get-url origin
[        ] [   +2 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] [        ] https://github.com/flutter/flutter.git
[        ] [  +27 ms] executing: [/home/taha/Code/flutter_dev/] git rev-parse
--abbrev-ref HEAD
[        ] [   +2 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] [        ] dev
[        ] [  +40 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.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required,
skipping update.
[        ] [   +1 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.
[        ] [  +31 ms] 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.
[        ] [        ] 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.
[        ] [        ] 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.
[        ] [  +66 ms] Initializing file store
[        ] [  +14 ms] Skipping target: gen_localizations
[        ] [   +4 ms] unpack_linux: Starting due to {}
[        ] [  +67 ms] kernel_snapshot: Starting due to {}
[        ] [   +1 ms] unpack_linux: Complete
[   +1 ms] [+1338 ms] /home/taha/Code/flutter_dev/bin/cache/dart-sdk/bin/dart
--disable-dart-dev
/home/taha/Code/flutter_dev/bin/cache/artifacts/engine/linux-x64/frontend_server
.dart.snapshot --sdk-root
/home/taha/Code/flutter_dev/bin/cache/artifacts/engine/common/flutter_patched_sd
k/ --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
/home/taha/AndroidStudioProjects/dev_flutter/.dart_tool/package_config.json
--output-dill
/home/taha/AndroidStudioProjects/dev_flutter/.dart_tool/flutter_build/5d713f28ec
02a9828d3e39e5ac703548/app.dill --depfile
/home/taha/AndroidStudioProjects/dev_flutter/.dart_tool/flutter_build/5d713f28ec
02a9828d3e39e5ac703548/kernel_snapshot.d package:dev_flutter/main.dart
[        ] [+6412 ms] kernel_snapshot: Complete
[        ] [ +311 ms] debug_bundle_linux-x64_assets: Starting due to {}
[        ] [  +95 ms] debug_bundle_linux-x64_assets: Complete
[        ] [ +421 ms] Persisting file store
[        ] [   +4 ms] Done persisting file store
[        ] [   +3 ms] build succeeded.
[        ] [   +6 ms] "flutter assemble" took 8,797ms.
[        ] [ +256 ms] ensureAnalyticsSent: 253ms
[        ] [   +4 ms] Running shutdown hooks
[        ] [        ] Shutdown hooks complete
[        ] [        ] exiting with code 0
[ +345 ms] [2/6] Building CXX object CMakeFiles/dev_flutter.dir/main.cc.o
[  +17 ms] [3/6] Building CXX object
CMakeFiles/dev_flutter.dir/flutter/generated_plugin_registrant.cc.o
[  +33 ms] [4/6] Building CXX object
CMakeFiles/dev_flutter.dir/my_application.cc.o
[  +89 ms] [5/6] Linking CXX executable intermediates_do_not_run/dev_flutter
[        ] [5/6] Install the project...
[   +5 ms] -- Install configuration: "Debug"
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/dev_fl
utter
[        ] -- Set runtime path of
"/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/dev_f
lutter" to "$ORIGIN/lib"
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/i
cudtl.dat
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/lib/li
bflutter_linux_gtk.so
[  +76 ms] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/version.json
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/kernel_blob.bin
[  +24 ms] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/AssetManifest.json
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/NOTICES
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/packages
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/packages/cupertino_icons
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/packages/cupertino_icons/assets
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/FontManifest.json
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/fonts
[        ] -- Installing:
/home/taha/AndroidStudioProjects/dev_flutter/build/linux/x64/debug/bundle/data/f
lutter_assets/fonts/MaterialIcons-Regular.otf
[   +1 ms] Building Linux application... (completed in 10.7s)
[ +176 ms] Observatory URL on device: http://127.0.0.1:38669/slqRFgGW_KU=/
[   +2 ms] Caching compiled dill
[  +33 ms] Connecting to service protocol: http://127.0.0.1:38669/slqRFgGW_KU=/
[ +114 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:38669/slqRFgGW_KU=/.
[  +55 ms] DDS is listening at http://127.0.0.1:39471/076f16bdMRQ=/.
[  +46 ms] Successfully connected to service protocol:
http://127.0.0.1:38669/slqRFgGW_KU=/
[  +11 ms] DevFS: Creating new filesystem on the device (null)
[  +11 ms] DevFS: Created new filesystem on the device
(file:///tmp/dev_flutterELSQBH/dev_flutter/)
[   +1 ms] Updating assets
[  +56 ms] Syncing files to device Linux...
[   +1 ms] <- reset
[        ] Compiling dart to kernel with 0 updated files
[   +1 ms] <- recompile package:dev_flutter/main.dart
229b8894-d7b2-4a4e-95b2-3dc24b449fa3
[        ] <- 229b8894-d7b2-4a4e-95b2-3dc24b449fa3
[  +80 ms] Updating files.
[        ] DevFS: Sync finished
[        ] Syncing files to device Linux... (completed in 84ms)
[        ] Synced 0.0MB.
[        ] <- accept
[   +3 ms] Connected to _flutterView/0x1275680.
[   +1 ms] Flutter run key commands.
[   +1 ms] r Hot reload. 🔥🔥🔥
[        ] R Hot restart.
[        ] h Repeat this help message.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] Running with unsound null safety
[        ] For more information see
https://dart.dev/null-safety/unsound-null-safety
[        ] An Observatory debugger and profiler on Linux is available at:
           http://127.0.0.1:39471/076f16bdMRQ=/
[ +247 ms] [ERROR:flutter/shell/platform/embedder/embedder.cc(513)] Could not
wrap embedder supplied frame-buffer.
[ +107 ms] Service protocol connection closed.
[        ] Lost connection to device.
[   +1 ms] DevFS: Deleting filesystem on the device
(file:///tmp/dev_flutterELSQBH/dev_flutter/)
[ +253 ms] Ignored error while cleaning up DevFS: TimeoutException after
0:00:00.250000: Future not completed
[   +3 ms] "flutter run" took 13,247ms.
[ +164 ms] ensureAnalyticsSent: 160ms
[   +2 ms] Running shutdown hooks
[        ] Shutdown hook priority 4
[   +9 ms] Shutdown hooks complete
[        ] exiting with code 0
flutter doctor -v
[✓] Flutter (Channel dev, 1.27.0-8.0.pre, on Linux, locale en_US.UTF-8)
    • Flutter version 1.27.0-8.0.pre at /home/taha/Code/flutter_dev
    • Framework revision b7d4806243 (10 days ago), 2021-02-19 09:22:45 -0800
    • Engine revision 6993cb229b
    • Dart version 2.13.0 (build 2.13.0-30.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /home/taha/Code/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /home/taha/Code/SDK
    • Java binary at: /home/taha/Code/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Chro[✓] Flutter (Channel dev, 1.27.0-8.0.pre, on Linux, locale en_US.UTF-8)
    • Flutter version 1.27.0-8.0.pre at /home/taha/Code/flutter_dev
    • Framework revision b7d4806243 (10 days ago), 2021-02-19 09:22:45 -0800
    • Engine revision 6993cb229b
    • Dart version 2.13.0 (build 2.13.0-30.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /home/taha/Code/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /home/taha/Code/SDK
    • Java binary at: /home/taha/Code/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 11.0.0-2
    • cmake version 3.16.3
    • ninja version 1.10.0
    • pkg-config version 0.29.2

[!] 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/linux#android-setup
      for detailed instructions).

[✓] VS Code (version 1.53.2)
    • VS Code at /usr/share/code
    • Flutter extension version 3.19.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Linux
    • Chrome (web)    • chrome • web-javascript • Google Chrome 88.0.4324.150

! Doctor found issues in 1 category.me - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 11.0.0-2
    • cmake version 3.16.3
    • ninja version 1.10.0
    • pkg-config version 0.29.2

[!] 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/linux#android-setup
      for detailed instructions).

[✓] VS Code (version 1.53.2)
    • VS Code at /usr/share/code
    • Flutter extension version 3.19.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Linux
    • Chrome (web)    • chrome • web-javascript • Google Chrome 88.0.4324.150

! Doctor found issues in 1 category.
[✓] Flutter (Channel master, 1.27.0-9.0.pre.129, on Linux, locale en_US.UTF-8)
    • Flutter version 1.27.0-9.0.pre.129 at /home/taha/Code/flutter_master
    • Framework revision fc77610dd6 (60 minutes ago), 2021-03-01 14:06:03 +0530
    • Engine revision 34236c9837
    • Dart version 2.13.0 (build 2.13.0-81.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /home/taha/Code/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /home/taha/Code/SDK
    • Java binary at: /home/taha/Code/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 11.0.0-2
    • cmake version 3.16.3
    • ninja version 1.10.0
    • pkg-config version 0.29.2

[!] 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/linux#android-setup
      for detailed instructions).

[✓] VS Code (version 1.53.2)
    • VS Code at /usr/share/code
    • Flutter extension version 3.19.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Linux
    • Chrome (web)    • chrome • web-javascript • Google Chrome 88.0.4324.150

! Doctor found issues in 1 category.
taha@pop-os:~/AndroidStudioProjects/master_flutter$ glxinfo | grep "OpenGL version"
OpenGL version string: 4.6.0 NVIDIA 460.39
taha@pop-os:~/AndroidStudioProjects/master_flutter$

@TahaTesser TahaTesser added a: desktop Running on desktop engine flutter/engine repository. See also e: labels. found in release: 1.27 Found to occur in 1.27 has reproducible steps The issue has been confirmed reproducible and is ready to work on platform-linux Building on or for Linux specifically c: crash Stack traces logged to the console c: fatal crash Crashes that terminate the process c: regression It was better in the past than it is now and removed in triage Presently being triaged by the triage team labels Mar 1, 2021
@cbracken
Copy link
Member

cbracken commented Mar 6, 2021

Stack trace I get when reproducing this at flutter/engine@d9fdce4.

Stack trace
(lldb) r
Process 17025 launched: '/home/cbracken/src/jp_flutter/build/linux/x64/debug/bundle/jp_flutter' (x86_64)
flutter: Observatory listening on http://127.0.0.1:33939/GHFF6wWhmxM=/
[ERROR:flutter/shell/platform/embedder/embedder.cc(514)] Could not wrap embedder supplied frame-buffer.
Process 17025 stopped
* thread #1, name = 'jp_flutter', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
    frame #0: 0x0000000000000000
error: memory read failed for 0x0
(lldb) bt
* thread #1, name = 'jp_flutter', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
  * frame #0: 0x0000000000000000
    frame #1: 0x00007ffff6711b53 libflutter_linux_gtk.so`MakeSkSurfaceFromBackingStore(context=0x0000000000fe7960, config=0x00007fffffffcc50, framebuffer=0x00007fffffffc3f0) at embedder.cc:515:5
    frame #2: 0x00007ffff67114cd libflutter_linux_gtk.so`CreateEmbedderRenderTarget(compositor=0x0000000000c234d8, config=0x00007fffffffcc50, context=0x0000000000fe7960) at embedder.cc:608:28
    frame #3: 0x00007ffff67110a3 libflutter_linux_gtk.so`auto InferExternalViewEmbedderFromArgs(this=0x0000000000c234d8, context=0x0000000000fe7960, config=0x00007fffffffcc50)::$_2::operator()<FlutterBackingStoreConfig>(GrDirectContext*, FlutterBackingStoreConfig const&) const at embedder.cc:656:20
    frame #4: 0x00007ffff671104d libflutter_linux_gtk.so`decltype(__f=0x0000000000c234d8, __args=0x00007fffffffca58, __args=0x00007fffffffcc50)::$_2&>(fp)(std::__1::forward<GrDirectContext*>(fp0), std::__1::forward<FlutterBackingStoreConfig const&>(fp0))) std::__1::__invoke<InferExternalViewEmbedderFromArgs(FlutterCompositor const*)::$_2&, GrDirectContext*, FlutterBackingStoreConfig const&>(InferExternalViewEmbedderFromArgs(FlutterCompositor const*)::$_2&, GrDirectContext*&&, FlutterBackingStoreConfig const&) at type_traits:3530:1
    frame #5: 0x00007ffff6710fba libflutter_linux_gtk.so`std::__1::unique_ptr<flutter::EmbedderRenderTarget, std::__1::default_delete<flutter::EmbedderRenderTarget> > std::__1::__invoke_void_return_wrapper<std::__1::unique_ptr<flutter::EmbedderRenderTarget, std::__1::default_delete<flutter::EmbedderRenderTarget> > >::__call<InferExternalViewEmbedderFromArgs(__args=0x0000000000c234d8, __args=0x00007fffffffca58, __args=0x00007fffffffcc50)::$_2&, GrDirectContext*, FlutterBackingStoreConfig const&>(InferExternalViewEmbedderFromArgs(FlutterCompositor const*)::$_2&, GrDirectContext*&&, FlutterBackingStoreConfig const&) at __functional_base:317:16
    frame #6: 0x00007ffff6710f4a libflutter_linux_gtk.so`std::__1::__function::__alloc_func<InferExternalViewEmbedderFromArgs(FlutterCompositor const*)::$_2, std::__1::allocator<InferExternalViewEmbedderFromArgs(FlutterCompositor const*)::$_2>, std::__1::unique_ptr<flutter::EmbedderRenderTarget, std::__1::default_delete<flutter::EmbedderRenderTarget> > (GrDirectContext*, FlutterBackingStoreConfig const&)>::operator(this=0x0000000000c234d8, __arg=0x00007fffffffca58, __arg=0x00007fffffffcc50)(GrDirectContext*&&, FlutterBackingStoreConfig const&) at functional:1533:16
    frame #7: 0x00007ffff6710329 libflutter_linux_gtk.so`std::__1::__function::__func<InferExternalViewEmbedderFromArgs(FlutterCompositor const*)::$_2, std::__1::allocator<InferExternalViewEmbedderFromArgs(FlutterCompositor const*)::$_2>, std::__1::unique_ptr<flutter::EmbedderRenderTarget, std::__1::default_delete<flutter::EmbedderRenderTarget> > (GrDirectContext*, FlutterBackingStoreConfig const&)>::operator(this=0x0000000000c234d0, __arg=0x00007fffffffca58, __arg=0x00007fffffffcc50)(GrDirectContext*&&, FlutterBackingStoreConfig const&) at functional:1707:12
    frame #8: 0x00007ffff675cb12 libflutter_linux_gtk.so`std::__1::__function::__value_func<std::__1::unique_ptr<flutter::EmbedderRenderTarget, std::__1::default_delete<flutter::EmbedderRenderTarget> > (GrDirectContext*, FlutterBackingStoreConfig const&)>::operator(this=0x0000000000741d90, __args=0x00007fffffffca58, __args=0x00007fffffffcc50)(GrDirectContext*&&, FlutterBackingStoreConfig const&) const at functional:1860:16
    frame #9: 0x00007ffff6755995 libflutter_linux_gtk.so`std::__1::function<std::__1::unique_ptr<flutter::EmbedderRenderTarget, std::__1::default_delete<flutter::EmbedderRenderTarget> > (GrDirectContext*, FlutterBackingStoreConfig const&)>::operator(this=0x0000000000741d90, __arg=0x0000000000fe7960, __arg=0x00007fffffffcc50)(GrDirectContext*, FlutterBackingStoreConfig const&) const at functional:2419:12
    frame #10: 0x00007ffff6754632 libflutter_linux_gtk.so`flutter::EmbedderExternalViewEmbedder::SubmitFrame(this=0x0000000000741d80, context=0x0000000000fe7960, frame=<unavailable>, gpu_disable_sync_switch=std::__1::shared_ptr<fml::SyncSwitch>::element_type @ 0x0000000000e7a230 strong=3 weak=1) at embedder_external_view_embedder.cc:187:9
    frame #11: 0x00007ffff7357b17 libflutter_linux_gtk.so`flutter::Rasterizer::DrawToSurface(this=0x0000000000e7d7b0, layer_tree=0x00007fffdc49ffd0) at rasterizer.cc:483:32
    frame #12: 0x00007ffff7358d7c libflutter_linux_gtk.so`flutter::Rasterizer::DoDraw(this=0x0000000000e7d7b0, layer_tree=<unavailable>) at rasterizer.cc:338:32
    frame #13: 0x00007ffff735cb25 libflutter_linux_gtk.so`flutter::Rasterizer::Draw(this=0x00007fffffffdab8, layer_tree=<unavailable>)>)::$_1::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const at rasterizer.cc:172:27
    frame #14: 0x00007ffff735ca7f libflutter_linux_gtk.so`decltype(__f=0x00007fffffffdab8, __args=0x00007fffffffd8e8)>)::$_1&>(fp)(std::__1::forward<std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(fp0))) std::__1::__invoke<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&) at type_traits:3530:1
    frame #15: 0x00007ffff735ca12 libflutter_linux_gtk.so`void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Rasterizer::Draw(__args=0x00007fffffffdab8, __args=0x00007fffffffd8e8)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&) at __functional_base:348:9
    frame #16: 0x00007ffff735c9d2 libflutter_linux_gtk.so`std::__1::__function::__alloc_func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator(this=0x00007fffffffdab8, __arg=0x00007fffffffd8e8)(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&) at functional:1533:16
    frame #17: 0x00007ffff735bbe1 libflutter_linux_gtk.so`std::__1::__function::__func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator(this=0x00007fffffffdab0, __arg=0x00007fffffffd8e8)(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&) at functional:1707:12
    frame #18: 0x00007ffff7367cda libflutter_linux_gtk.so`std::__1::__function::__value_func<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator(this=0x00007fffffffdab0, __args=0x00007fffffffd8e8)(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&) const at functional:1860:16
    frame #19: 0x00007ffff7367980 libflutter_linux_gtk.so`std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator(this=0x00007fffffffdab0, __arg=<unavailable>)(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const at functional:2419:12
    frame #20: 0x00007ffff7363cc8 libflutter_linux_gtk.so`flutter::Pipeline<flutter::LayerTree>::Consume(this=0x00007fffdc000f40, consumer=0x00007fffffffdab0)> const&) at pipeline.h:161:7
    frame #21: 0x00007ffff7357e56 libflutter_linux_gtk.so`flutter::Rasterizer::Draw(this=0x0000000000e7d7b0, pipeline=<unavailable>, discardCallback=<unavailable>)>) at rasterizer.cc:176:52
    frame #22: 0x00007ffff73b1d7b libflutter_linux_gtk.so`flutter::Shell::OnAnimatorDraw(this=0x00007fffdc030f08)::$_35::operator()() const at shell.cc:1167:23
    frame #23: 0x00007ffff73b1ccd libflutter_linux_gtk.so`decltype(__f=0x00007fffdc030f08)::$_35&>(fp)()) std::__1::__invoke<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_35&>(flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_35&) at type_traits:3530:1
    frame #24: 0x00007ffff73b1c7d libflutter_linux_gtk.so`void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Shell::OnAnimatorDraw(__args=0x00007fffdc030f08)::$_35&>(flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_35&) at __functional_base:348:9
    frame #25: 0x00007ffff73b1c4d libflutter_linux_gtk.so`std::__1::__function::__alloc_func<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_35, std::__1::allocator<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_35>, void ()>::operator(this=0x00007fffdc030f08)() at functional:1533:16
    frame #26: 0x00007ffff73b0f29 libflutter_linux_gtk.so`std::__1::__function::__func<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_35, std::__1::allocator<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_35>, void ()>::operator(this=0x00007fffdc030f00)() at functional:1707:12
    frame #27: 0x00007ffff639e0b2 libflutter_linux_gtk.so`std::__1::__function::__value_func<void ()>::operator(this=0x00007fffffffe010)() const at functional:1860:16
    frame #28: 0x00007ffff639cba5 libflutter_linux_gtk.so`std::__1::function<void ()>::operator(this=0x00007fffffffe010)() const at functional:2419:12
    frame #29: 0x00007ffff67758ea libflutter_linux_gtk.so`flutter::EmbedderTaskRunner::PostTask(this=0x00000000004c3700, baton=7022344801873852779) at embedder_task_runner.cc:77:3
    frame #30: 0x00007ffff6779692 libflutter_linux_gtk.so`flutter::EmbedderThreadHost::PostTask(this=0x00000000004e8dd0, runner=4994816, task=7022344801873852779) const at embedder_thread_host.cc:270:25
    frame #31: 0x00007ffff674cb2c libflutter_linux_gtk.so`flutter::EmbedderEngine::RunTask(this=0x000000000056e3f0, task=0x00007fffdc445c28) at embedder_engine.cc:260:24
    frame #32: 0x00007ffff670d72c libflutter_linux_gtk.so`::FlutterEngineRunTask(engine=0x000000000056e3f0, task=0x00007fffdc445c28) at embedder.cc:1863:62
    frame #33: 0x00007ffff636cde5 libflutter_linux_gtk.so`flutter_source_dispatch(source=0x00007fffdc445bc0, callback=0x0000000000000000, user_data=0x0000000000000000)(void*), void*) at fl_engine.cc:154:7
    frame #34: 0x00007ffff354ae6b libglib-2.0.so.0`g_main_context_dispatch + 603
    frame #35: 0x00007ffff354b118 libglib-2.0.so.0`___lldb_unnamed_symbol181$$libglib-2.0.so.0 + 488
    frame #36: 0x00007ffff354b1cf libglib-2.0.so.0`g_main_context_iteration + 47
    frame #37: 0x00007ffff3763545 libgio-2.0.so.0`g_application_run + 453
    frame #38: 0x000000000040239b jp_flutter`main(argc=1, argv=0x00007fffffffe3f8) at main.cc:9:10
    frame #39: 0x00007ffff302fd0a libc.so.6`__libc_start_main + 234
    frame #40: 0x000000000040227a jp_flutter`_start + 42

About to head out for a bit, but dumping some spelunking for later.

Top of the stack when we hit the null deref is: embedder.cc(515) which suggests the surface returned from SkSurface::MakeFromBackendRenderTarget is bad, called from line 608 then we blow up when trying to clean up on line 515. We didn't bail out at lines 576 or 582 right above those. backing_store.open_gl.type is set to kFlutterOpenGLTargetTypeFramebuffer based on the stack. The create callback we call on line 574 is compositor_create_backing_store_callback which delegates to fl_renderer_create_backing_store which will delegate to either fl_renderer_gl.cc or fl_renderer_headless.cc after the refactor in flutter/engine#24011 (in this case should be the GL version).

The backing store provider code lives in fl_backing_store_provider.cc

When I dump the backing store struct after creation I get:

backing_store
(lldb) p backing_store
(FlutterBackingStore) $18 = {
  struct_size = 80
  user_data = 0x0000000000000000
  type = kFlutterBackingStoreTypeOpenGL
  did_update = false
   = {
    open_gl = {
      type = kFlutterOpenGLTargetTypeFramebuffer
       = {
        texture = {
          target = 32856
          name = 2
          format = 6078336
          user_data = 0x0000000000000000
          destruction_callback = 0x0000000000000000
          width = 0
          height = 0
        }
        framebuffer = {
          target = 32856
          name = 2
          user_data = 0x00000000005cbf80
          destruction_callback = 0x0000000000000000
        }
      }
    }
    software = {
      allocation = 0x0000000000000001
      row_bytes = 8589967448
      height = 6078336
      user_data = 0x0000000000000000
      destruction_callback = 0x0000000000000000
    }
  }
}

The SkSurface::MakeFromBackendRenderTarget call then returns null. It was called with parameters:

MakeFromBackendRenderTarget params
context = 0x0000000000fe9b80,
backend_render_target = {
  config.size.width = 950,
  config.size.height = 2074,
}
1, // sample count
0, // stencil bits
framebuffer_info = {
  fFormat = framebuffer.target = 32856,
  fFBOID = framebuffer.name = 2,
},
kBottomLeft_GrSurfaceOrigin,  // surface origin
kN32_SkColorType,             // color type
SkColorSpace::MakeSRGB(),     // color space
&surface_properties, // out param
static_cast<SkSurface::RenderTargetReleaseProc>(framebuffer->destruction_callback = 0x0),  // release proc
framebuffer.user_data = 0x00000000005cbf80 // release context

Seems the framebuffer.destruction_callback was populated/set null, hence the segfault on line 515. The move from using our previous implementation to gdk_gl_context_make_current in fl_renderer_make current, and co. seem like suspicious candidates to me. Haven't looked at the implementation but calling glGetError immediately after returns 0 and gdk_gl_context_get_current seems to return the right pointer.

@cbracken
Copy link
Member

cbracken commented Mar 6, 2021

/cc @huanghongxun @robert-ancell @wmww who were on the original patch flutter/engine#24011

cbracken added a commit to cbracken/flutter_engine that referenced this issue Mar 6, 2021
In MakeSkSurfaceFromBackingStore and other places in embedder.cc, we
call a texture or framebuffer destruction callback without first
verifying it's non-null. This adds a check before such calls.

Currently fl_renderer_gl_create_backing_store() in the Linux GTK
embedder and ExternalTextureGL::PopulateTexture() in the Windows
embedder either explicitly or implicitly set a null destruction
callback.

This prevents a crash reported when running under OpenGL ES 2.0 reported
in flutter/flutter#76881.

While this prevents the crash, it does not fix the underlying issue.
@cbracken
Copy link
Member

cbracken commented Mar 7, 2021

@robert-ancell @wmww one thing I noticed while poking around in here: should we be setting a backing_store_out->open_gl.framebuffer.destruction_callback that cleans up in fl_renderer_gl_create_backing_store? Looks like there is a dispose function that I assume should be called when the FlBackingStoreProvider* is being released, but didn't keep looking to see if/where that's happening.

The crash above is due to the lack of that callback, though realistically we shouldn't be dereferencing a null callback to begin with. Sent out flutter/engine#24845 separately to avoid that crash.

@huanghongxun
Copy link

huanghongxun commented Mar 8, 2021

@robert-ancell @wmww one thing I noticed while poking around in here: should we be setting a backing_store_out->open_gl.framebuffer.destruction_callback that cleans up in fl_renderer_gl_create_backing_store? Looks like there is a dispose function that I assume should be called when the FlBackingStoreProvider* is being released, but didn't keep looking to see if/where that's happening.

The crash above is due to the lack of that callback, though realistically we shouldn't be dereferencing a null callback to begin with. Sent out flutter/engine#24845 separately to avoid that crash.

we clean up backing store provider instance at https://github.com/flutter/engine/blob/122c99d7af18b685f04ed77e0eb3c1f3cb6e2210/shell/platform/linux/fl_renderer_gl.cc#L82

It's expected to create and destroy the backing store provider in the same thread. But destruction_callback is called in raster thread.

cbracken added a commit to flutter/engine that referenced this issue Mar 9, 2021
In MakeSkSurfaceFromBackingStore and other places in embedder.cc, we
call a texture or framebuffer destruction callback without first
verifying it's non-null. This adds a check before such calls.

Currently fl_renderer_gl_create_backing_store() in the Linux GTK
embedder and ExternalTextureGL::PopulateTexture() in the Windows
embedder either explicitly or implicitly set a null destruction
callback.

This prevents a crash reported when running under OpenGL ES 2.0 reported
in flutter/flutter#76881.

While this prevents the crash, it does not fix the underlying issue.
@cbracken cbracken added the P1 High-priority issues at the top of the work list label Mar 11, 2021
hjfreyer pushed a commit to hjfreyer/engine that referenced this issue Mar 22, 2021
In MakeSkSurfaceFromBackingStore and other places in embedder.cc, we
call a texture or framebuffer destruction callback without first
verifying it's non-null. This adds a check before such calls.

Currently fl_renderer_gl_create_backing_store() in the Linux GTK
embedder and ExternalTextureGL::PopulateTexture() in the Windows
embedder either explicitly or implicitly set a null destruction
callback.

This prevents a crash reported when running under OpenGL ES 2.0 reported
in flutter/flutter#76881.

While this prevents the crash, it does not fix the underlying issue.
chriscraws pushed a commit to chriscraws/engine that referenced this issue Mar 23, 2021
In MakeSkSurfaceFromBackingStore and other places in embedder.cc, we
call a texture or framebuffer destruction callback without first
verifying it's non-null. This adds a check before such calls.

Currently fl_renderer_gl_create_backing_store() in the Linux GTK
embedder and ExternalTextureGL::PopulateTexture() in the Windows
embedder either explicitly or implicitly set a null destruction
callback.

This prevents a crash reported when running under OpenGL ES 2.0 reported
in flutter/flutter#76881.

While this prevents the crash, it does not fix the underlying issue.
@github-actions
Copy link

github-actions bot commented Aug 4, 2021

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 Aug 4, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a: desktop Running on desktop c: crash Stack traces logged to the console c: fatal crash Crashes that terminate the process c: regression It was better in the past than it is now engine flutter/engine repository. See also e: labels. found in release: 1.27 Found to occur in 1.27 has reproducible steps The issue has been confirmed reproducible and is ready to work on P1 High-priority issues at the top of the work list platform-linux Building on or for Linux specifically
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants