New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 873208 link

Starred by 2 users

Issue metadata

Status: Available
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux , Mac
Pri: 3
Type: Bug

Blocked on:
issue 855747

Blocking:
issue 872245



Sign in to add a comment

isolate webkit_layout_tests fails

Project Member Reported by erikc...@chromium.org, Aug 10

Issue description

"""
erikchen@erikchen-macpro3 ~/projects/chromium/src  (test54)$ tools/mb/mb.py isolate //out/gn webkit_layout_tests
ninja -C out/gn webkit_layout_tests -j 480 -l 24
ninja: Entering directory `out/gn'
ninja: no work to do.
python tools/swarming_client/isolate.py check -i out/gn/webkit_layout_tests.isolate -s out/gn/webkit_layout_tests.isolated
Failed to find an input file: Input directory /Users/erikchen/projects/chromium/src/out/gn/gen/layout_test_data/mojo/public/interfaces/bindings/tests/data/validation must have a trailing slash
  -> returned 1
"""

It appears that mojo/public/interfaces/bindings/tests/BUILD.gn lists a directory as a file:

"""
 17 copy("validation_test_data") {                                                  
 18   testonly = true                                                               
 19   sources = [                                                                                                                                                                                                                              
 20     "data/validation",                                                         
 21   ]                                                                             
 22   outputs = [                                                                   
 23     "$root_gen_dir/layout_test_data/{{source_root_relative_dir}}/{{source_file_part}}",
 24   ]                                                                             
 25 }      
"""
 
Blocking: 872245
Labels: OS-Linux OS-Mac
Summary: isolate webkit_layout_tests fails (was: isolate webkit_layout_tests fails on macOS)
This also affects Linux.
Project Member

Comment 2 by bugdroid1@chromium.org, Aug 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/61d147f69bcac7055ec2ca5117d48b742b113268

commit 61d147f69bcac7055ec2ca5117d48b742b113268
Author: erikchen <erikchen@chromium.org>
Date: Tue Aug 14 17:32:49 2018

Fix GN generation of mojo data files.

The sources for validation_test_data was being listed as a directory rather than
a list of files. This is incorrect -- directories cannot be listed as sources
for the copy command in GN. This in turn caused isolate.py to think that the
file .../data/validation was a dependency, which then caused isolate.py to throw
an error since .../data/validation is a directory, not a file.

This CL explicitly lists all file dependencies.

Bug: 873208
Change-Id: I02ee6b28016bf36a612cd44079080274fcbf3744
Reviewed-on: https://chromium-review.googlesource.com/1171111
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Erik Chen <erikchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582961}
[modify] https://crrev.com/61d147f69bcac7055ec2ca5117d48b742b113268/mojo/public/interfaces/bindings/tests/BUILD.gn

Status: Fixed (was: Assigned)
Cc: dpranke@google.com thakis@chromium.org mar...@chromium.org
This makes me think that we're probably not even using isolate.py for archiving anywhere. Maybe we should get rid of that code? Developers can obtain the go binaries if they need to manually isolate.
Status: Available (was: Fixed)
as discussed in person, I believe GN's copy command should actually work to copy directories, although it is almost always a bad idea to use it that way.

From the description, I'm actually guessing that this is a bug in mb.py, not isolate.py or GN.
"""The sources for validation_test_data was being listed as a directory rather than
a list of files. This is incorrect -- directories cannot be listed as sources
for the copy command in GN. This in turn caused isolate.py to think that the
file .../data/validation was a dependency, which then caused isolate.py to throw
an error since .../data/validation is a directory, not a file."""

^ This is wrong. copies can contain directories. It's usually not a good idea, but as long as you don't have subdirs it happens to mostly work (also see https://bugs.chromium.org/p/chromium/issues/detail?id=855747#c1).
GN thinks that the source is a file:
"""
 19   sources = [                                                                                                                                                                                                                              
 20     "data/validation",                                                         
 21   ]             
"""

Adding a trailing slash causes GN to fail, with an error stating that only files are valid targets. dirk has started a discussion to determine whether this is WAI or a bug.
(Said discussion is happening in bug 855747)
Blockedon: 855747
We don't use isolate.py to archive src.git's output, true. I'd be happy to switch to a pure Go implementation, which would also allow switching the format to be proper JSON and probably get rid of the variables while at it.

Sign in to add a comment