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 docs_test is failing, closing the tree #147609

Closed
zanderso opened this issue Apr 30, 2024 · 7 comments · Fixed by dart-lang/pub#4258 or #147928
Closed

Linux docs_test is failing, closing the tree #147609

zanderso opened this issue Apr 30, 2024 · 7 comments · Fixed by dart-lang/pub#4258 or #147928
Assignees
Labels
P0 Critical issues such as a build break or regression

Comments

@zanderso
Copy link
Member

As in https://ci.chromium.org/ui/p/flutter/builders/prod/Linux%20docs_test/16443/infra

Errors of the form

dartdoc:stderr: Could not make "/b/s/w/ir/x/w/.pub-cache/bin/snippets" executable (exit code 1):
dartdoc:stderr: chmod: cannot access '/b/s/w/ir/x/w/.pub-cache/bin/snippets': No such file or directory

cc @gspencergoog

@zanderso zanderso added the P0 Critical issues such as a build break or regression label Apr 30, 2024
@gspencergoog
Copy link
Contributor

I am able to reproduce this locally.

Sample errors are:

dartdoc:stderr:   error: tool execution failed: Tool "snippet" returned non-zero exit code (1) when run as "/usr/local/google/home/gspencer/code/flutter/bin/cache/dart-sdk/bin/dart pub global run snippets --output-directory=doc/snippets --type=snippet" from /tmp/dartdoc.E0hsd
dartdoc:stderr: Input to snippet was:
dartdoc:stderr:
dartdoc:stderr: Here are some examples of how to create [EdgeInsets] instances:
dartdoc:stderr:
dartdoc:stderr: Typical eight-pixel margin on all sides:
dartdoc:stderr:
dartdoc:stderr: ```dart
dartdoc:stderr: const EdgeInsets.all(8.0)
dartdoc:stderr: ```
dartdoc:stderr: Stderr output was:
dartdoc:stderr: Could not make "/usr/local/google/home/gspencer/.pub-cache/bin/snippets" executable (exit code 1):
dartdoc:stderr: chmod: cannot access '/usr/local/google/home/gspencer/.pub-cache/bin/snippets': No such file or directory

This seems to imply that dartdoc or dart pub run is trying to chmod the executable for snippets, but can't find it. However the file referenced does exist, and is already executable, and if I run it outside of dartdoc, it executes normally.

Still scratching my head....

@gspencergoog
Copy link
Contributor

I've tried to bisect this, and even old revisions (from a few days ago, when it used to work) still fail on my Linux machine.

I've tried reverting to previous version of snippets and the previous version of dartdoc, neither of which fix the problem.

I've also nuked my .pub-cache to make sure it was clean.

@gspencergoog
Copy link
Contributor

Okay, it appears that this is a manifestation of #144408 which purports to be fixed, in this pr https://github.com/dart-lang/pub/pull/3285/files#diff-609b203653065d15282bde9c47cbf5c38885fa92957ce5b89adbf9be5db0b1c8R793 according to the comment in #144408 (comment)

@sigurdm Is this something you submitted a fix for? This is now a P0 for us, since it's no longer just affecting local hosts, but also affects the build. Did your fix get reverted?

@gspencergoog gspencergoog self-assigned this May 1, 2024
@jason-simmons
Copy link
Member

I was able to get this to work on my local setup by reverting https://dart.googlesource.com/pub/+/ed20b45589766d6fd135e93460b9e8255ccba519

The Flutter Dartdoc script is running a group of dart pub global run snippets commands concurrently. I can reproduce the Cannot open file, path = '.../.pub-cache/bin/snippets' error by running 20 instances of a dart pub global run snippets command concurrently in a shell script.

@sigurdm
Copy link
Contributor

sigurdm commented May 2, 2024

Sorry I did not get to the bottom of this today. Still unsure how that PR could cause that failure. Hopefully I'll get further here Monday.

Meanwhile I think avoiding global run when invoking the snippets package perhaps as in #147690 is the way to go.

auto-submit bot pushed a commit that referenced this issue May 3, 2024
## Description

This moves the snippets package back into the Flutter repo so that API documentation generation can happen without the use of `dart pub global run` because `pub run` doesn't handle concurrency well.

The change modifies the dartdoc building process to include building an executable from the snippets tool and installing that in the cache directory for use during docs generation.

The snippets tool will reside in dev/snippets, where it originally resided before being moved to https://github.com/flutter/assets-for-api-docs.

The snippets code itself is unchanged from the code that is in https://github.com/flutter/assets-for-api-docs/packages/snippets.

## Related Issues
 - #144408
 - #147609
 - #147645

## Tests
 - Added snippets tests to the overall testing build.
auto-submit bot pushed a commit that referenced this issue May 7, 2024
…l. (#147893)

## Description

This fixes the API doc generation that I broke when I moved the snippets tool into the framework.

It removes the last of the template support (properly this time), and makes sure all of the tests pass.

## Related Issues
 - #144408
 - #147609
 - #147645

## Tests
 - Fixed tests, including smoke test of doc generation.
@stuartmorgan
Copy link
Contributor

@gspencergoog Should the test be brought back out of bringup now? It looks like it's been green since you landed your PR.

@gspencergoog
Copy link
Contributor

Yes, I was just waiting to see if it would be green.

auto-submit bot pushed a commit that referenced this issue May 7, 2024
## Description

This reverts commit cb2197e to move `docs_test` and `docs_publish` back to normal mode after being fixed.

## Related Issues
 - #147609
 - #147645
itsjustkevin pushed a commit to itsjustkevin/flutter that referenced this issue May 8, 2024
This moves the snippets package back into the Flutter repo so that API documentation generation can happen without the use of `dart pub global run` because `pub run` doesn't handle concurrency well.

The change modifies the dartdoc building process to include building an executable from the snippets tool and installing that in the cache directory for use during docs generation.

The snippets tool will reside in dev/snippets, where it originally resided before being moved to https://github.com/flutter/assets-for-api-docs.

The snippets code itself is unchanged from the code that is in https://github.com/flutter/assets-for-api-docs/packages/snippets.

 - flutter#144408
 - flutter#147609
 - flutter#147645

 - Added snippets tests to the overall testing build.
itsjustkevin pushed a commit to itsjustkevin/flutter that referenced this issue May 8, 2024
…l. (flutter#147893)

## Description

This fixes the API doc generation that I broke when I moved the snippets tool into the framework.

It removes the last of the template support (properly this time), and makes sure all of the tests pass.

## Related Issues
 - flutter#144408
 - flutter#147609
 - flutter#147645

## Tests
 - Fixed tests, including smoke test of doc generation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P0 Critical issues such as a build break or regression
Projects
None yet
5 participants