Open Bug 1225568 Opened 9 years ago Updated 2 years ago

build_resources.json missing for windows automation builds

Categories

(Firefox Build System :: General, defect)

defect

Tracking

(firefox45 fixed)

REOPENED
mozilla45
Tracking Status
firefox45 --- fixed

People

(Reporter: chmanchester, Unassigned)

References

Details

Attachments

(1 file, 1 obsolete file)

Not sure if this is a mozharness or build system bug. In http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-inbound-win64/1447711297/mozilla-inbound-win64-bm85-build1-build2997.txt.gz we have:

15:34:14     INFO - No build_resources.json found, not logging stats

Opt builds appear to be impacted (for whatever reason).
See also bug 893254 and any other open bug filed by me with "psutil" in the summary.

tl;dr Windows builders don't have the ability to compile Python packages with C extensions.

There is also some weirdness with how mach and the build system interact with psutil. configure builds psutil. But mach starts resource monitoring via psutil before it invokes configure. So there is a chicken and egg problem for initial builds.
Builds on try are building psutil during configure and generating plausible stats (although I can't find them in perfherder, something else to track down). Builds on inbound don't always run configure -- so far it appears we only get psutil when we clobber.

We install psutil from a wheel for all the testers now, this seems like it should be fixable.
Bug 1225568 - Intall psutil in scripts/fx_desktop_build.py so we can get build stats on dep builds.

Build stats get logged on try, but only intermittently on inbound. The psutil
extension gets built on windows build machines during configure, but that
step only runs consistently after a clobber. This patch installs psutil from
a wheel in the mozharness virtualenv so it's available in mozharness independent
of what happens in the build.
Attachment #8688720 - Flags: review?(jlund)
(In reply to Chris Manchester [:chmanchester] from comment #4)
> Created attachment 8688720 [details]
> MozReview Request: Bug 1225568 - Intall psutil in
> scripts/fx_desktop_build.py so we can get build stats on dep builds.
> 
> Bug 1225568 - Intall psutil in scripts/fx_desktop_build.py so we can get
> build stats on dep builds.
> 
> Build stats get logged on try, but only intermittently on inbound. The psutil
> extension gets built on windows build machines during configure, but that
> step only runs consistently after a clobber. This patch installs psutil from
> a wheel in the mozharness virtualenv so it's available in mozharness
> independent
> of what happens in the build.

This is the approach we took in bug 1196393.
(In reply to Chris Manchester [:chmanchester] from comment #3)
> Looks ok on Windows, let's see how other platforms look:
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=a168628bdcde

Has failed spectacularly.
jlund, can you upload comment 7 to internal pypi when you get a chance (or redirect me appropriately)? Thank you.
Flags: needinfo?(jlund)
We should not be producing wheels with binary content for Linux since distribution of wheels with binaries for Linux has known problems (libc and 3rd party library dependencies aren't properly captured, for example). Source only wheels or wheels with binaries for Mac and Windows are solved problems.

The workaround is to ensure that all Linux machines are able to build Python C extensions and have the build dependencies for these C extensions. I know having a compiler sitting around isn't that awesome. But until Python gets its act together, they leave us little choice.

Note: if our Linux environment is homogeneous, we might be able to get away with wheels with Linux binaries. Just don't do it on PyPI.
Ok, I built the wheel on a build loaner because that's the one consistent Linux environment we're having this problem. I guess the testers might start picking up this wheel and fail, but if they do we could get mozharness to pass --no-use-wheel when installing psutil.

All our builders can build C extensions, the problem is we don't when we don't run configure on windows. Always installing psutil from a wheel before the build step is just a workaround, limiting the workaround to windows might work too.
The current interaction between mach, virtualenvs, psutil, and the build system is horribly sub-optimal. If you stop by my desk sometime, we can discuss ways to make it suck less. Fixing interaction with psutil is a low hanging fruit in the grand scheme of things.
Comment on attachment 8689227 [details]
psutil-3.1.1-cp27-none-linux_x86_64.whl

I want to try something else before uploading this.
Attachment #8689227 - Attachment is obsolete: true
Flags: needinfo?(jlund)
Installing from a wheel on just windows looks fine in https://treeherder.mozilla.org/#/jobs?repo=try&revision=ad5660660fd0

Agreed it's all a mess, but this should help us get more complete stats logged in the short term.
Comment on attachment 8688720 [details]
MozReview Request: Bug 1225568 - Install psutil from a wheel for windows builds so we can get build stats on dep builds. r=jlund

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/25385/diff/1-2/
Attachment #8688720 - Attachment description: MozReview Request: Bug 1225568 - Intall psutil in scripts/fx_desktop_build.py so we can get build stats on dep builds. → MozReview Request: Bug 1225568 - Install psutil from a wheel for windows builds so we can get build stats on dep builds. r=jlund
Attachment #8688720 - Flags: review?(jlund)
Comment on attachment 8688720 [details]
MozReview Request: Bug 1225568 - Install psutil from a wheel for windows builds so we can get build stats on dep builds. r=jlund

https://reviewboard.mozilla.org/r/25385/#review23061

lgtm

::: testing/mozharness/scripts/fx_desktop_build.py:95
(Diff revision 2)
> +                # building C extensions on linux builders).

as you discovered, these are largely default shared items across all platforms. Since we are defining our own 'virtualenv_modules' in windows only builds, it might be better to remove this default and copy it in the other base configs.

Up to you
Attachment #8688720 - Flags: review?(jlund) → review+
(In reply to Jordan Lund (:jlund) from comment #15)
> Comment on attachment 8688720 [details]
> MozReview Request: Bug 1225568 - Install psutil from a wheel for windows
> builds so we can get build stats on dep builds. r=jlund
> 
> https://reviewboard.mozilla.org/r/25385/#review23061
> 
> lgtm
> 
> ::: testing/mozharness/scripts/fx_desktop_build.py:95
> (Diff revision 2)
> > +                # building C extensions on linux builders).
> 
> as you discovered, these are largely default shared items across all
> platforms. Since we are defining our own 'virtualenv_modules' in windows
> only builds, it might be better to remove this default and copy it in the
> other base configs.
> 
> Up to you

This sounds like the way to go, but I'd like to do that in a follow up (I'm not entirely sure this is going to fix the entire problem, try only has the successful scenario).
This appears to have fixed the specific problem of a missing build_resources.json. We're still not getting the whole structure logged on some builds, but I'll continue investigation in bug 1222549.
https://hg.mozilla.org/mozilla-central/rev/39db40982d31
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
After more investigation this is still failing intermittently in several ways -- the patch here hasn't helped the situation really.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
https://hg.mozilla.org/mozilla-central/rev/6ba6d14598d0
Status: REOPENED → RESOLVED
Closed: 9 years ago9 years ago
Resolution: --- → FIXED
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Product: Core → Firefox Build System
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: