Closed Bug 1493623 Opened 6 years ago Closed 6 years ago

Build telemetry is invalid: not a valid value for dictionary value @ data[u'build_opts'][u'compiler']

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(firefox64 fixed)

RESOLVED FIXED
mozilla64
Tracking Status
firefox64 --- fixed

People

(Reporter: robwu, Assigned: ted)

References

Details

Attachments

(1 file)

Running "mach build" ends with the following warning:

 1:25.84 Overall system resources - Wall time: 86s; CPU: 13%; Read bytes: 1671168; Write bytes: 1946611712; Read time: 173; Write time: 12517
Build telemetry is invalid:
not a valid value for dictionary value @ data[u'build_opts'][u'compiler']
{u'argv': [],
 u'build_opts': {u'artifact': True,
                 u'ccache': False,
                 u'compiler': 'None',
                 u'debug': False,
                 u'opt': False,
                 u'sccache': False},
 u'client_id': u'<SOME UUID HERE>',
 u'command': u'build',
 u'duration_ms': 85561,
 u'success': True,
 u'system': { <DICT WITH SYSTEM INFO HERE> },
 u'time': u'2018-09-24T09:59:31.133854Z'}
To view resource usage of the build, run |mach resource-usage|.
 1:25.88 Your build was successful!


I'm using artifact builds, i.e. the following .mozconfig:
ac_add_options --enable-artifact-builds

and am observing the above issue on macOS and Linux, after updating my checkout from last week to the latest version ( https://hg.mozilla.org/mozilla-central/shortlog/095ec59a8800 ).

This might be caused by the change from bug 1237610 .
Looks like the 'compiler' field of the ping is being set to the string literal 'None' (not `None`, notably). Probably an edge case is missed somewhere.

Did you also strip values in the "argv" field, or did they just not appear in output? That field needs to be a non-empty list of strings.
I didn't strip argv. The only removed content is the client_id and system (both between angle brackets).
(In reply to Connor Sheehan [:sheehan] from comment #1)
> Looks like the 'compiler' field of the ping is being set to the string
> literal 'None' (not `None`, notably). Probably an edge case is missed
> somewhere.

Oops, I guess I did not test this with an artifact build! This makes sense because we don't set `CC_TYPE` in artifact builds, and we're just taking that value here:
https://searchfox.org/mozilla-central/rev/0640ea80fbc8d48f8b197cd363e2535c95a15eb3/python/mozbuild/mozbuild/telemetry.py#205


> Did you also strip values in the "argv" field, or did they just not appear
> in output? That field needs to be a non-empty list of strings.

We only save anything after the mach command name in `argv`, so you will get an empty list if you just `mach build`. That should validate OK the way voluptuous handles lists.
Assignee: nobody → ted
I verified that this patch builds successfully with both an artifact and a regular build locally. For the artifact build we just wind up omitting the `compiler` data.
Comment on attachment 9011477 [details]
bug 1493623 - don't try to collect compiler type for build telemetry in artifact builds. r?build

Nathan Froyd [:froydnj] has approved the revision.
Attachment #9011477 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f35c055ccbaa
don't try to collect compiler type for build telemetry in artifact builds. r=froydnj
https://hg.mozilla.org/mozilla-central/rev/f35c055ccbaa
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: