Closed Bug 1402409 Opened 7 years ago Closed 7 years ago

./mach try doesn't work anymore, only ./mach try fuzzy

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1402233

People

(Reporter: jmaher, Unassigned)

References

Details

in trying to fix a bug, I have been doing a lot of try pushes- I get failures, at first it was:
Traceback (most recent call last):
  File "c:\Users\elvis\mozilla-inbound\taskcluster/mach_commands.py", line 409, in show_taskgraph
    parameters.check()
  File "c:\Users\elvis\mozilla-inbound\taskcluster\taskgraph\parameters.py", line 53, in check
    raise Exception("; ".join(msg))
Exception: missing parameters: try_mode, try_task_config, try_options; extra parameters: morph_templates, target_task_labels


:ahal, mentioned I needed to update to pick up :dustin's changes in bug 1383880, that works.  Sadly ./mach try fuzzy doesn't solve my needs all the time, I tried pushing with |./mach try -b do -p win32,win64 -u all -t none| and I get a failure:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=a8ed78224a69323e643ebe35990cad93299a3cec

which shows this error:
[task 2017-09-22T16:30:47.642334Z] Traceback (most recent call last):
[task 2017-09-22T16:30:47.642444Z]   File "/builds/worker/checkouts/gecko/taskcluster/mach_commands.py", line 154, in taskgraph_decision
[task 2017-09-22T16:30:47.642496Z]     return taskgraph.decision.taskgraph_decision(options)
[task 2017-09-22T16:30:47.642556Z]   File "/builds/worker/checkouts/gecko/taskcluster/taskgraph/decision.py", line 135, in taskgraph_decision
[task 2017-09-22T16:30:47.642741Z]     write_artifact('task-graph.json', tgg.morphed_task_graph.to_json())
[task 2017-09-22T16:30:47.642817Z]   File "/builds/worker/checkouts/gecko/taskcluster/taskgraph/generator.py", line 178, in morphed_task_graph
[task 2017-09-22T16:30:47.642868Z]     return self._run_until('morphed_task_graph')
[task 2017-09-22T16:30:47.642923Z]   File "/builds/worker/checkouts/gecko/taskcluster/taskgraph/generator.py", line 283, in _run_until
[task 2017-09-22T16:30:47.643033Z]     k, v = self._run.next()
[task 2017-09-22T16:30:47.643397Z]   File "/builds/worker/checkouts/gecko/taskcluster/taskgraph/generator.py", line 270, in _run
[task 2017-09-22T16:30:47.643469Z]     do_not_optimize)
[task 2017-09-22T16:30:47.643533Z]   File "/builds/worker/checkouts/gecko/taskcluster/taskgraph/optimize.py", line 55, in optimize_task_graph
[task 2017-09-22T16:30:47.643574Z]     do_not_optimize=do_not_optimize)
[task 2017-09-22T16:30:47.643839Z]   File "/builds/worker/checkouts/gecko/taskcluster/taskgraph/optimize.py", line 126, in remove_tasks
[task 2017-09-22T16:30:47.643891Z]     if opt.should_remove_task(task, params, arg):
[task 2017-09-22T16:30:47.644158Z]   File "/builds/worker/checkouts/gecko/taskcluster/taskgraph/optimize.py", line 376, in should_remove_task
[task 2017-09-22T16:30:47.644219Z]     scheduled = self.scheduled_by_push(params['head_repository'], params['head_rev'])
[task 2017-09-22T16:30:47.644306Z]   File "/builds/worker/checkouts/gecko/python/mozbuild/mozbuild/util.py", line 944, in method_call
[task 2017-09-22T16:30:47.644537Z]     cache[args] = self.func(instance, *args)
[task 2017-09-22T16:30:47.644639Z]   File "/builds/worker/checkouts/gecko/taskcluster/taskgraph/optimize.py", line 367, in scheduled_by_push
[task 2017-09-22T16:30:47.644683Z]     for p, m in rdr.files_info(changed_files).items():
[task 2017-09-22T16:30:47.644920Z]   File "/builds/worker/checkouts/gecko/python/mozbuild/mozbuild/frontend/reader.py", line 1342, in files_info
[task 2017-09-22T16:30:47.645007Z]     paths, _ = self.read_relevant_mozbuilds(paths)
[task 2017-09-22T16:30:47.645071Z]   File "/builds/worker/checkouts/gecko/python/mozbuild/mozbuild/frontend/reader.py", line 1306, in read_relevant_mozbuilds
[task 2017-09-22T16:30:47.645328Z]     self.config, metadata=metadata):
[task 2017-09-22T16:30:47.645398Z]   File "/builds/worker/checkouts/gecko/python/mozbuild/mozbuild/frontend/reader.py", line 1061, in read_mozbuild
[task 2017-09-22T16:30:47.645583Z]     raise bre
[task 2017-09-22T16:30:47.645662Z] BuildReaderError: 
[task 2017-09-22T16:30:47.645704Z] ==============================
[task 2017-09-22T16:30:47.645746Z] ERROR PROCESSING MOZBUILD FILE
[task 2017-09-22T16:30:47.645821Z] ==============================
[task 2017-09-22T16:30:47.645852Z] 
[task 2017-09-22T16:30:47.645895Z] The error occurred while processing the following file:
[task 2017-09-22T16:30:47.645916Z] 
[task 2017-09-22T16:30:47.645980Z]     /builds/worker/checkouts/gecko/testing/web-platform/moz.build
[task 2017-09-22T16:30:47.646006Z] 
[task 2017-09-22T16:30:47.646167Z] The error was triggered on line 9 of this file:
[task 2017-09-22T16:30:47.646201Z] 
[task 2017-09-22T16:30:47.646240Z]     ('mozilla/meta/MANIFEST.json', 'mozilla/tests/')
[task 2017-09-22T16:30:47.646266Z] 
[task 2017-09-22T16:30:47.646345Z] An error was encountered as part of executing the file itself. The error appears to be the fault of the script.
[task 2017-09-22T16:30:47.646377Z] 
[task 2017-09-22T16:30:47.646416Z] The error as reported by Python is:
[task 2017-09-22T16:30:47.646438Z] 
[task 2017-09-22T16:30:47.646509Z]     ["UnboundLocalError: local variable 'wptmanifest' referenced before assignment\n"]
[task 2017-09-22T16:30:47.646534Z] 
[task


after spending about an hour trying to figure out what is broken, I realize that a previous push of ./mach try fuzzy on the same base revision worked- I experimented and learned that ./mach try fails, but ./mach try fuzzy works.

I am not sure if |./mach try fuzzy| is invalid and I should go ahead and land my code- I have less confidence now.  I assume this is related to bug 1383880, I did an |hg update <rev_before_bug_1383880>| and ./mach try worked and ./mach try fuzzy failed- which is why I believe it is related to bug 1383880.
It looks related to bug 1203266 -- I see an `import` as the last statement in a block.. is that a typo, or intentional?

def read_wpt_manifest(context, paths):
    manifest_path, tests_root = paths
    full_path = mozpath.normpath(mozpath.join(context.srcdir, manifest_path))
    old_path = sys.path[:]
    try:
        # Setup sys.path to include all the dependencies required to import
        # the web-platform-tests manifest parser. web-platform-tests provides
        # a the localpaths.py to do the path manipulation, which we load,
        # providing the __file__ variable so it can resolve the relative
        # paths correctly.
        paths_file = os.path.join(context.config.topsrcdir, "testing",
                                  "web-platform", "tests", "tools", "localpaths.py")
        _globals = {"__file__": paths_file}
        execfile(paths_file, _globals)
        import manifest as wptmanifest
    finally:
        sys.path = old_path
        f = context._finder.get(full_path)
        return wptmanifest.manifest.load(tests_root, f)
Component: General → Build Config
Flags: needinfo?(cmanchester)
Product: Taskcluster → Core
Possible dupe of: Bug 1402233
oh, good find on the potential dup.  Probably that would make the error go away, still curious why we don't see this with |./mach try fuzzy| though- maybe a different parsing route for tasks or builds
Yes, it's a dupe. Long term solution is bug 1402010.

And, yes, the import being the last line is intentionally. That localpaths.py file adjusts sys.path. So hacky.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
Flags: needinfo?(cmanchester)
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.