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

WPT sync is busted #27223

Closed
jdm opened this issue Jul 9, 2020 · 4 comments
Closed

WPT sync is busted #27223

jdm opened this issue Jul 9, 2020 · 4 comments

Comments

@jdm
Copy link
Member

@jdm jdm commented Jul 9, 2020

Error running mach:
    ['update-wpt', '--sync', '--no-upstream', '--patch']
The error occurred in code that was called by the mach command. This is either
a bug in the called code itself or in the way that mach is calling it.
You can invoke |./mach busted| to check if this issue is already on file. If it
isn't, please use |./mach busted file| to report it. If |./mach busted| is
misbehaving, you can also inspect the dependencies of bug 1543241.
If filing a bug, please include the full output of mach, including this error
message.
The details of the failure are as follows:
IOError: [Errno 2] No such file or directory: u'/element-timing/observe-svg-image.html'
  File "/repo/python/servo/testing_commands.py", line 514, in update_wpt
    return run_globals["update_tests"](**kwargs)
  File "/repo/tests/wpt/update.py", line 23, in update_tests
    rv = update.run_update(logger, **kwargs)
  File "/repo/tests/wpt/update/__init__.py", line 26, in run_update
    return updater.run()
  File "/repo/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/update.py", line 184, in run
    rv = update_runner.run()
  File "/repo/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/base.py", line 61, in run
    rv = step(self.logger).run(step_index, self.state)
  File "/repo/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/base.py", line 32, in run
    self.create(state)
  File "/repo/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/update.py", line 77, in create
    runner.run()
  File "/repo/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/base.py", line 61, in run
    rv = step(self.logger).run(step_index, self.state)
  File "/repo/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/base.py", line 32, in run
    self.create(state)
  File "/repo/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py", line 111, in create
    update.update(state.sync["path"], state.test_manifest)
  File "/repo/tests/wpt/sync/tools/manifest/update.py", line 38, in update
    return manifest.update(tree, parallel)
  File "/repo/tests/wpt/sync/tools/manifest/manifest.py", line 249, in update
    for result in results:
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 289, in <genexpr>
    return (item for chunk in result for item in chunk)
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 673, in next
    raise value

I suspect web-platform-tests/wpt#23733.

@jdm
Copy link
Member Author

@jdm jdm commented Jul 10, 2020

<jgraham> jdm: Can you try setting parallel=False on the manifest update and see f you get a useful error message that way

IOError: [Errno 2] No such file or directory: u'/svg/historical.html'

  File "/Users/jdm/src/servo-tmp/python/servo/testing_commands.py", line 514, in update_wpt
    return run_globals["update_tests"](**kwargs)
  File "/Users/jdm/src/servo-tmp/tests/wpt/update.py", line 23, in update_tests
    rv = update.run_update(logger, **kwargs)
  File "/Users/jdm/src/servo-tmp/tests/wpt/update/__init__.py", line 26, in run_update
    return updater.run()
  File "/Users/jdm/src/servo-tmp/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/update.py", line 184, in run
    rv = update_runner.run()
  File "/Users/jdm/src/servo-tmp/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/base.py", line 61, in run
    rv = step(self.logger).run(step_index, self.state)
  File "/Users/jdm/src/servo-tmp/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/base.py", line 32, in run
    self.create(state)
  File "/Users/jdm/src/servo-tmp/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/update.py", line 77, in create
    runner.run()
  File "/Users/jdm/src/servo-tmp/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/base.py", line 61, in run
    rv = step(self.logger).run(step_index, self.state)
  File "/Users/jdm/src/servo-tmp/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/base.py", line 32, in run
    self.create(state)
  File "/Users/jdm/src/servo-tmp/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py", line 111, in create
    update.update(state.sync["path"], state.test_manifest, parallel=False)
  File "/Users/jdm/src/servo-tmp/tests/wpt/sync/tools/manifest/update.py", line 38, in update
    return manifest.update(tree, parallel)
  File "/Users/jdm/src/servo-tmp/tests/wpt/sync/tools/manifest/manifest.py", line 249, in update
    for result in results:
  File "/Users/jdm/src/servo-tmp/tests/wpt/sync/tools/manifest/manifest.py", line 83, in compute_manifest_items
    new_type, manifest_items = source_file.manifest_items()
  File "/Users/jdm/src/servo-tmp/tests/wpt/sync/tools/manifest/sourcefile.py", line 1017, in manifest_items
    elif self.content_is_css_manual and not self.name_is_reference:
  File "/Users/jdm/src/servo-tmp/tests/wpt/sync/tools/manifest/utils.py", line 91, in __get__
    rv = obj.__dict__[self.name] = self.func(obj)
  File "/Users/jdm/src/servo-tmp/tests/wpt/sync/tools/manifest/sourcefile.py", line 831, in content_is_css_manual
    if self.root is None:
  File "/Users/jdm/src/servo-tmp/tests/wpt/sync/tools/manifest/utils.py", line 91, in __get__
    rv = obj.__dict__[self.name] = self.func(obj)
  File "/Users/jdm/src/servo-tmp/tests/wpt/sync/tools/manifest/sourcefile.py", line 458, in root
    with self.open() as f:
  File "/Users/jdm/src/servo-tmp/tests/wpt/sync/tools/manifest/sourcefile.py", line 275, in open
    file_obj = open(self.path, 'rb')
@jdm
Copy link
Member Author

@jdm jdm commented Jul 10, 2020

@jgraham I'm finding it difficult to figure out what I can do next here, since this only seems to trigger when I do the sync from upstream, and the code that's causing problems is part of that upstream sync so I can't modify it to add helpful debugging prints.

@jdm
Copy link
Member Author

@jdm jdm commented Jul 10, 2020

Ok, I discovered that I can comment out most of https://github.com/web-platform-tests/wpt/blob/ce7bfaec86b1c6c926bdb0f2150e33a3a1bf1f54/tools/wptrunner/wptrunner/update/sync.py#L150-L155 and still reproduce it without overwriting my local changes. So the sourcefile in question has a tests_root of / and a rel_path of svg/historical.html. And the manifest has a tests_root of / and url_base of /.

@jgraham
Copy link
Contributor

@jgraham jgraham commented Jul 10, 2020

class LoadManifest(Step):
    """Load the test manifest"""

    provides = ["manifest_path", "test_manifest"]

    def create(self, state):
        from manifest import manifest
        state.manifest_path = os.path.join(state.metadata_path, "MANIFEST.json")
        state.test_manifest = manifest.Manifest("/")

in sync.py needs to be updated to pass in the tests_root as the first argument to the manifest.

bors-servo added a commit that referenced this issue Jul 10, 2020
Add missing test path for manifest during WPT syncing.

Fixes #27223.
bors-servo added a commit that referenced this issue Jul 10, 2020
Add missing test path for manifest during WPT syncing.

Fixes #27223.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

2 participants
You can’t perform that action at this time.