Closed Bug 1461221 Opened 6 years ago Closed 6 years ago

Build failure when psutil.disk_io_counters() returns None

Categories

(Firefox Build System :: General, defect)

60 Branch
defect
Not set
normal

Tracking

(firefox62 fixed)

RESOLVED FIXED
mozilla62
Tracking Status
firefox62 --- fixed

People

(Reporter: Arfrever.FTA, Assigned: gps)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0
Build ID: 20171001100744

Steps to reproduce:

psutil is optionally used by build system of Firefox.
psutil.disk_io_counters() can return None, but build system of Firefox does not account for this possibility.

https://hg.mozilla.org/mozilla-central/file/tip/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py#l65 contains:
def get_disk_io_counters():
    try:
        io_counters = psutil.disk_io_counters()
    except RuntimeError:
        io_counters = PsutilStub().disk_io_counters()

    return io_counters

https://hg.mozilla.org/mozilla-central/file/tip/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py#l239 contains:
            io = get_disk_io_counters()

Probable solution is to fix get_disk_io_counters() function. Maybe:

def get_disk_io_counters():
    try:
        io_counters = psutil.disk_io_counters()
        if io_counters is None:
            io_counters = PsutilStub().disk_io_counters()
    except RuntimeError:
        io_counters = PsutilStub().disk_io_counters()

    return io_counters


Actual results:

Error running mach:

    ['build', '--verbose']

The error occurred in code that was called by the mach command. This is either
a bug in the called code itself or in the way that mach is calling it.

You should consider filing a bug for this issue.

If filing a bug, please include the full output of mach, including this error
message.

The details of the failure are as follows:

TypeError: object of type 'NoneType' has no len()

  File "/var/tmp/portage/www-client/firefox-60.0/work/firefox-60.0/python/mozbuild/mozbuild/mach_commands.py", line 172, in build
    mach_context=self._mach_context)
  File "/var/tmp/portage/www-client/firefox-60.0/work/firefox-60.0/python/mozbuild/mozbuild/controller/building.py", line 942, in build
    monitor.init(warnings_path)
  File "/var/tmp/portage/www-client/firefox-60.0/work/firefox-60.0/python/mozbuild/mozbuild/controller/building.py", line 201, in init
    self.resources = SystemResourceMonitor(poll_interval=1.0)
  File "/var/tmp/portage/www-client/firefox-60.0/work/firefox-60.0/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py", line 250, in __init__
    self._io_len = len(io)
Component: Untriaged → General
Flags: needinfo?(nchen)
Product: Firefox → Firefox Build System
Keywords: in-triage
Keywords: in-triage
This feels like low hanging fruit. I'll take a look.
Assignee: nobody → gps
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Comment on attachment 8975904 [details]
Bug 1461221 - Account for psutil.disk_io_counters() returning None;

https://reviewboard.mozilla.org/r/244106/#review250068
Attachment #8975904 - Flags: review+
Attachment #8975904 - Flags: review?(core-build-config-reviews)
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e4ce7b972916
Account for psutil.disk_io_counters() returning None; r=mshal
Flags: needinfo?(nchen)
https://hg.mozilla.org/mozilla-central/rev/e4ce7b972916
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: