Closed Bug 893254 Opened 12 years ago Closed 7 years ago

Make psutil installable throughout automation

Categories

(Infrastructure & Operations Graveyard :: CIDuty, task, P3)

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: gps, Unassigned)

References

Details

psutil (https://code.google.com/p/psutil/) is a nifty Python package for getting at detailed system and process information. We need it to record resource usage as part of running automation jobs (bug 859573). Aki tells me it needs to be added to an internal PyPI mirror or something. What makes psutil special is it is a compiled Python extension (it has C source files). A machine needs a working compiler and the Python development headers to install psutil from source. Alternatively, we should be able create a pre-built psutil package. However, this may require matching Python distributions everywhere (yay uniformity). Depending on the timeline for this, a gradual deployment is acceptable. The work in bug 859573 can likely be adapted to make psutil optional. I would like 100% deployment some day, however.
It's available: http://puppetagain.pub.build.mozilla.org/data/python/packages/psutil-0.7.1.tar.gz However, we may hit compilation issues, as noted above.
From a b2g emulator unittest run: 16:42:03 INFO - building '_psutil_linux' extension 16:42:03 INFO - creating build/temp.linux-i686-2.6 16:42:03 INFO - creating build/temp.linux-i686-2.6/psutil 16:42:03 INFO - gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fPIC -I/usr/include/python2.6 -c psutil/_psutil_linux.c -o build/temp.linux-i686-2.6/psutil/_psutil_linux.o 16:42:03 INFO - unable to execute gcc: No such file or directory 16:42:03 INFO - error: command 'gcc' failed with exit status 1 16:42:03 INFO - ---------------------------------------- 16:42:03 INFO - Command /home/cltbld/talos-slave/test/build/venv/bin/python -c "import setuptools;__file__='/home/cltbld/talos-slave/test/build/venv/build/psutil/setup.py';execfile(__file__)" install --single-version-externally-managed --record /tmp/pip-LeTY4k-record/install-record.txt --install-headers /home/cltbld/talos-slave/test/build/venv/include/site/python2.6 failed with error code 1 16:42:03 INFO - Storing complete log in /home/cltbld/.pip/pip.log 16:42:03 ERROR - Return code: 1 16:42:03 FATAL - Unable to install psutil==0.7.1! 16:42:03 FATAL - Exiting -1 16:42:03 INFO - Running post-action listener: _resource_record_post_action 16:42:03 INFO - Running post-action listener: _start_resource_monitoring 16:42:03 ERROR - Exception during post-action for create-virtualenv: Traceback (most recent call last): 16:42:03 ERROR - File "/home/cltbld/talos-slave/test/scripts/mozharness/base/script.py", line 959, in run_action 16:42:03 ERROR - method(action, success=success and self.return_code == 0) 16:42:03 ERROR - File "/home/cltbld/talos-slave/test/scripts/mozharness/base/python.py", line 377, in _start_resource_monitoring 16:42:03 ERROR - from mozsystemmonitor.resourcemonitor import SystemResourceMonitor 16:42:03 ERROR - ImportError: No module named mozsystemmonitor.resourcemonitor 16:42:03 FATAL - Aborting due to failure in post-action listener. 16:42:03 FATAL - Exiting -1 16:42:03 INFO - Running post-run listener: _resource_record_post_run program finished with exit code 255
It looks like psutil fails to install on most everywhere except Linux. And even then it's not working everywhere. OS X problem appears to be missing compiler. Ditto for Windows. I understand that you may not want compilers installed everywhere, so my guess is we'll soon be talking about a pre-compiled package.
This doesn't block resource monitoring landing. It just makes it work more places.
No longer blocks: 859573
Blocks: 896718
Component: Release Engineering: Automation (General) → Release Engineering: Platform Support
QA Contact: catlee → coop
Product: mozilla.org → Release Engineering
Can I get someone to itemize (In reply to Gregory Szorc [:gps] from comment #4) > It looks like psutil fails to install on most everywhere except Linux. And > even then it's not working everywhere. OS X problem appears to be missing > compiler. Ditto for Windows. Does that mean all the build/trybuild systems are already covered since they have compilers? If so, that would leave the test systems: Linux (rpm via mock) talos-linux32-ix/tst-linux32-ec2/tst-linux32-spot talos-linux64-ix/tst-linux64-spot/tst-linux64-ec2 Mac (dmg via puppet) t-mavericks-r5 talos-mtnlion-r5 talos-r4-snow Windows (installers via GPO) t-w732-ix/t-xp32-ix t-w864-ix/tst-w64-ec2 That's six packages total if my groupings are legit.
Priority: -- → P3
Also, how is this bug related to bug 899599 and bug 917346?
I /think/ bug 899599 tracks getting psutil to work inside the build system. This and bug 917346 track getting psutil to play nice with mozharness's virtualenv. There is probably room for duplication. IMO, we should just use wheels for all Python packaging in automation. The results are guaranteed consistent and we don't have to worry about having the right compiler bits present on the machines.
Blocks: 1162594
In bug 1050343 :markco added psutil support for a pkgzip install of psutil into C:\mozilla-build\sitepackages. Can we reuse that somehow for the virtualenv?
I don't think is relevant in the post-tcmigration world.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
Component: Platform Support → Buildduty
Product: Release Engineering → Infrastructure & Operations
Product: Infrastructure & Operations → Infrastructure & Operations Graveyard
You need to log in before you can comment on or make changes to this bug.