Closed Bug 1283879 Opened 8 years ago Closed 8 years ago

ASan builds shouldn't try to download symbols (since they don't produce symbols zips)

Categories

(Release Engineering :: Applications: MozharnessCore, defect)

defect
Not set
normal

Tracking

(firefox51 fixed)

RESOLVED FIXED
Tracking Status
firefox51 --- fixed

People

(Reporter: ted, Assigned: kmoir)

References

Details

Attachments

(1 file, 4 obsolete files)

jmaher noticed some error spew in this log:
https://treeherder.mozilla.org/logviewer.html#?repo=autoland&job_id=69788#L586

05:27:14 WARNING - Can't figure out symbols_url from installer_url: https://queue.taskcluster.net/v1/task/U1qDiQjCQQ6xcvLlJo7GLA/artifacts/public/build/target.tar.bz2! 

(and then a Python traceback)

This is an ASan build, and those builds --disable-crashreporter so they don't build and upload a symbol package. They shouldn't try to download symbols at all.
So we should only check if download_symbols is equal to ondemand and True?
Assignee: nobody → kmoir
kmoir: this isn't really blocking ASan as tier-1 in TC since it's just a warning, but can I ask you to get this finished up?
sure, I'm looking at the mozconfigs and mozharness scripts now to see where this is set
Notes from Callek if dustin's stuff lands

0:52 AM <Callek> kmoir: regarding your asan symbols stuff, if its in TC, this should be relatively easy: https://reviewboard.mozilla.org/r/61884/diff/6#42 -- see line 60 in that file...  (yes this is predecated on dustins stuff landing finally)
10:53 AM <Callek> kmoir: you'd probably add it to https://reviewboard.mozilla.org/r/61884/diff/6#44 though
10:53 AM <kmoir> ok
10:54 AM <Callek> (easier than having to edit how ever many files and untangle the yaml inherits I mean :-)
The asan builds run the same tests as the regular linux ones which specify symbols-path=%(symbols_path)s in the mozharness configs.  I have a try run ready to go once the trees reopen to test a fix.
From the log in comment 0 I can see that we specify "--download-symbols=ondemand" for ASAN builds. Why are we doing that if there are no symbols available anyway? 

On taskcluster I can see that we use the opt test task definition for such builds which exactly specify this setting:

https://dxr.mozilla.org/mozilla-central/source/taskcluster/ci/legacy/tasks/branches/base_jobs.yml#264
https://dxr.mozilla.org/mozilla-central/source/taskcluster/ci/legacy/tasks/tests/fx_linux64_crashtest_opt.yml#7

Shouldn't we have separate task definitions for ASAN tests?
:ted, :gbrown - thoughts ^ ?
Flags: needinfo?(ted)
Flags: needinfo?(gbrown)
I don't really have any opinion on the specifics of how things are defined.
Flags: needinfo?(ted)
When I was setting up the asan tests in taskcluster, I did not know about this issue. Buildbot  specifies "--download-symbols=ondemand" for asan and opt tests, so it looked to me like the tc asan tests could re-use the opt task definitions. If we need different options for asan, we need separate task definitions. There may be an easier way to do that once bug 1281004 lands.
Flags: needinfo?(gbrown)
I'm going to mark this as dependent on bug 1281004.  I tried a few try runs but couldn't get it working and since it will all be refactored soon, it makes sense to just do it once.
Depends on: 1281004
Bug 1281004 is resolved - can we wrap this up soon?
Flags: needinfo?(kmoir)
Yes, I am looking at this but I don't know how to solve it yet.
Flags: needinfo?(kmoir)
I'm fairly sure that Dustin can point us to the right direction. 

I had a quick look and the only place I could find where we customize tasks for ASAN tasks is:
https://dxr.mozilla.org/mozilla-central/source/taskcluster/taskgraph/transforms/tests/desktop_test.py?q=file%3Adesktop_test.py&redirect_type=single#40

Maybe we have to also overwrite the mozharness settings for download_symbols?
Flags: needinfo?(dustin)
Yes, I'd suggest adding another transform there which recognizes test jobs on asan platforms and changes the download-symbols property.
Flags: needinfo?(dustin)
thanks dustin, I'll try that
I tried a bunch of try runs to try to fix this via transforms for the mh values

https://hg.mozilla.org/try/rev/563d1abc5e2b833384dde526979c9b7b19273ca0

but it still shows up in the payload

for instance search for 

desktop-test-linux64-asan/opt-jsreftest-e10s-2

in this task graph
https://public-artifacts.taskcluster.net/PeE7lGqYRhCXT0IHKA9CMg/0/public/full-task-graph.json

and you can see that  "--download-symbols=ondemand" is still in the command in the payload.  I'm trying now to change the payload via transforms but not sure if this is advisable.
Maybe the transform here has a higher priority?

https://dxr.mozilla.org/mozilla-central/source/taskcluster/taskgraph/transforms/tests/all_kinds.py#60

Wouldn't we be able to directly add the ASAN case there without the need for another transform?
Attached patch bug1283879.patch (obsolete) — Splinter Review
The desktop_test.py transforms run before the all_kinds.py transforms:
  https://hg.mozilla.org/try/file/563d1abc5e2b/taskcluster/ci/desktop-test/kind.yml#l8

Kim's solution in comment 19 looks good.  It would be great to have the docstring updated as to why, and a comment pointing to this bug, for the next person (I realize there's no r? yet..)  Also, if this is generic to all asan builds then the filter should probably use some kind of pattern matching on the platform (platforms will get more structure in bug 1286086, and we can adapt the pattern at that point)
Attached patch bug1283879-2.patch (obsolete) — Splinter Review
The last patch didn't work.  The value of download-symbols as false is not defined in mh and therefore invalid.  I'm trying this patch now.  If it works I will update patch to indicate bug # and why.  Looking at treeherder there are only asan builds on Linux64 and we only run tests on opt.
Attachment #8778904 - Attachment is obsolete: true
That looks good.  You could also change the schema so that False is allowed and means the option is omitted.
Attached patch bug1283879-3.patch (obsolete) — Splinter Review
Attachment #8778969 - Attachment is obsolete: true
Attachment #8779002 - Flags: review?(dustin)
Attached patch bug1283879symbols.patch (obsolete) — Splinter Review
I have this patch too since False is not defined as a valid option in mozharness for download-symbols
Attachment #8779003 - Flags: review?(dustin)
Comment on attachment 8779002 [details] [diff] [review]
bug1283879-3.patch

Review of attachment 8779002 [details] [diff] [review]:
-----------------------------------------------------------------

::: taskcluster/taskgraph/transforms/tests/all_kinds.py
@@ +57,5 @@
>  @transforms.add
>  def set_download_symbols(config, tests):
>      """In general, we download symbols immediately for debug builds, but only
> +    on demand for everything else. ASAN builds shouldn't download
> +    symbols since they don't product symbol zips see bug 1283879"""

*produce

@@ +62,4 @@
>      for test in tests:
>          if test['test-platform'].split('/')[-1] == 'debug':
>              test['mozharness']['download-symbols'] = True
> +        elif test['build-platform'] == 'linux64-asan/opt':

Will there never be any other ASAN build than linux64 opt?
Attachment #8779002 - Flags: review?(dustin) → review+
Comment on attachment 8779003 [details] [diff] [review]
bug1283879symbols.patch

Review of attachment 8779003 [details] [diff] [review]:
-----------------------------------------------------------------

::: taskcluster/taskgraph/transforms/tests/test_description.py
@@ -144,5 @@
>          Required('no-read-buildbot-config', default=False): bool,
>  
>          # The setting for --download-symbols (if omitted, the option will not
>          # be passed to mozharness)
> -        Optional('download-symbols'): Any(True, False, 'ondemand'),

Looks good -- I see that the "False" case is already handled in make_task_description.py:

     download_symbols = {True: 'true', False: 'false'}.get(download_symbols, download_symbols)
Attachment #8779003 - Flags: review?(dustin) → review+
Pushed by kmoir@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/7f3cd5974457
ASan builds shouldn't try to download symbols (since they don't produce symbols zips) r=dustin DONTBUILD
no, I'm not aware of any ASAN builds in the works, they will stay on Linux64.
Attachment #8779002 - Flags: checked-in+
Attachment #8779003 - Flags: checked-in+
Backed out for failing "all_kinds.py:68:15 | multiple spaces after keyword (E271)" as requested by dustin:

https://hg.mozilla.org/integration/mozilla-inbound/rev/189b59814c4d34a93a731d2c2c97574aadd6e78e

Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=33517073&repo=mozilla-inbound
[task 2016-08-08T21:09:16.074168Z] + ./mach lint -l flake8 -f treeherder
[task 2016-08-08T21:09:23.972966Z] TEST-UNEXPECTED-ERROR | taskcluster/taskgraph/transforms/tests/all_kinds.py:68:15 | multiple spaces after keyword (E271)
Flags: needinfo?(kmoir)
Attachment #8779002 - Attachment is obsolete: true
Flags: needinfo?(kmoir)
Attachment #8779003 - Attachment is obsolete: true
Attachment #8779003 - Flags: checked-in+ → checked-in-
Comment on attachment 8779109 [details] [diff] [review]
bug1283879-4.patch

Review of attachment 8779109 [details] [diff] [review]:
-----------------------------------------------------------------

Thanks!
Attachment #8779109 - Flags: review?(dustin) → review+
Pushed by kmoir@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/210edbef152a
ASan builds shouldn't try to download symbols (since they don't produce symbols zips) r=dustin
Attachment #8779109 - Flags: checked-in+
fixed, verified on treeherder
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
It's not fixed yet, given that the code has not been landed on mozilla-central. Once that has been done it will be automatically marked as such.

Thank you for fixing it, Kim!
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
https://hg.mozilla.org/mozilla-central/rev/210edbef152a
Status: REOPENED → RESOLVED
Closed: 8 years ago8 years ago
Resolution: --- → FIXED
I think there was a typo on this.
Patch incoming.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Nevermind me. This is probably right.
Status: REOPENED → RESOLVED
Closed: 8 years ago8 years ago
Resolution: --- → FIXED
See Also: → 1303759
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: