Closed Bug 1534647 Opened 6 years ago Closed 6 years ago

Perma mb TEST-UNEXPECTED-FAIL | No test output (missing mozunit.main() call?): /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozfile/tests/test_load.py

Categories

(Testing :: Mozbase, defect, P5)

Version 3
defect

Tracking

(firefox-esr60 unaffected, firefox66 unaffected, firefox67 unaffected, firefox68 fixed)

RESOLVED FIXED
mozilla68
Tracking Status
firefox-esr60 --- unaffected
firefox66 --- unaffected
firefox67 --- unaffected
firefox68 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: gbrown)

References

Details

(Keywords: intermittent-failure, regression)

Attachments

(1 file)

#[markdown(off)]
Filed by: aciure [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=233374281&repo=autoland

https://queue.taskcluster.net/v1/task/FJQr9bWMRmy04zK_RuIOuQ/runs/0/artifacts/public/logs/live_backing.log

[task 2019-03-12T14:08:40.716Z] 0:40.38 /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozcrash/tests/test_symbols_path.py
[task 2019-03-12T14:08:40.716Z] 0:40.38 ============================= test session starts ==============================
[task 2019-03-12T14:08:40.716Z] 0:40.38 platform darwin -- Python 3.7.1, pytest-3.6.2, py-1.5.4, pluggy-0.6.0 -- /Users/cltbld/tasks/task_1552399473/checkouts/gecko/obj-x86_64-apple-darwin14.5.0/_virtualenvs/gecko-9o-SZLg7-/usr/local/bin/python3/bin/python
[task 2019-03-12T14:08:40.716Z] 0:40.38 rootdir: /Users/cltbld/tasks/task_1552399473/checkouts/gecko, inifile: /Users/cltbld/tasks/task_1552399473/checkouts/gecko/config/mozunit/mozunit/pytest.ini
[task 2019-03-12T14:08:40.717Z] 0:40.38 collecting ... collected 3 items
[task 2019-03-12T14:08:40.719Z] 0:40.38
[task 2019-03-12T14:08:40.720Z] 0:40.38 testing/mozbase/mozcrash/tests/test_symbols_path.py::test_symbols_path_not_present PASSED
[task 2019-03-12T14:08:40.720Z] 0:40.38 testing/mozbase/mozcrash/tests/test_symbols_path.py::test_symbols_path_unicode PASSED
[task 2019-03-12T14:08:40.720Z] 0:40.38 testing/mozbase/mozcrash/tests/test_symbols_path.py::test_symbols_path_url PASSED
[task 2019-03-12T14:08:40.720Z] 0:40.38
[task 2019-03-12T14:08:40.720Z] 0:40.38 =========================== 3 passed in 0.56 seconds ===========================
[task 2019-03-12T14:08:41.322Z] 0:40.98 /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozfile/tests/test_load.py
[task 2019-03-12T14:08:41.323Z] 0:40.98 Traceback (most recent call last):
[task 2019-03-12T14:08:41.323Z] 0:40.98 File "/Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozfile/tests/test_load.py", line 12, in <module>
[task 2019-03-12T14:08:41.323Z] 0:40.98 from wptserve.handlers import handler
[task 2019-03-12T14:08:41.323Z] 0:40.98 File "/Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/web-platform/tests/tools/wptserve/wptserve/__init__.py", line 1, in <module>
[task 2019-03-12T14:08:41.323Z] 0:40.98 from .server import WebTestHttpd, WebTestServer, Router # noqa: F401
[task 2019-03-12T14:08:41.323Z] 0:40.98 File "/Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/web-platform/tests/tools/wptserve/wptserve/server.py", line 6, in <module>
[task 2019-03-12T14:08:41.326Z] 0:40.99 import ssl
[task 2019-03-12T14:08:41.326Z] 0:40.99 File "/tools/python37/lib/python3.7/ssl.py", line 98, in <module>
[task 2019-03-12T14:08:41.326Z] 0:40.99 import _ssl # if we can't import it, let the error propagate
[task 2019-03-12T14:08:41.326Z] 0:40.99 ModuleNotFoundError: No module named '_ssl'
[task 2019-03-12T14:08:41.326Z] 0:40.99 TEST-UNEXPECTED-FAIL | No test output (missing mozunit.main() call?): /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozfile/tests/test_load.py
[task 2019-03-12T14:08:41.327Z] 0:40.99 Setting retcode to 1 from /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozfile/tests/test_load.py
[task 2019-03-12T14:08:41.663Z] 0:41.32 /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozfile/tests/test_extract.py
[task 2019-03-12T14:08:41.663Z] 0:41.32 ============================= test session starts ==============================
[task 2019-03-12T14:08:41.666Z] 0:41.33 platform darwin -- Python 3.7.1, pytest-3.6.2, py-1.5.4, pluggy-0.6.0 -- /Users/cltbld/tasks/task_1552399473/checkouts/gecko/obj-x86_64-apple-darwin14.5.0/_virtualenvs/gecko-9o-SZLg7-/usr/local/bin/python3/bin/python
[task 2019-03-12T14:08:41.666Z] 0:41.33 rootdir: /Users/cltbld/tasks/task_1552399473/checkouts/gecko, inifile: /Users/cltbld/tasks/task_1552399473/checkouts/gecko/config/mozunit/mozunit/pytest.ini
[task 2019-03-12T14:08:41.666Z] 0:41.33 collecting ... collected 4 items
[task 2019-03-12T14:08:41.666Z] 0:41.33
[task 2019-03-12T14:08:41.666Z] 0:41.33 testing/mozbase/mozfile/tests/test_extract.py::TestExtract::test_extract PASSED
[task 2019-03-12T14:08:41.666Z] 0:41.33 testing/mozbase/mozfile/tests/test_extract.py::TestExtract::test_extract_tarball PASSED
[task 2019-03-12T14:08:41.666Z] 0:41.33 testing/mozbase/mozfile/tests/test_extract.py::TestExtract::test_extract_zipfile PASSED
[task 2019-03-12T14:08:41.667Z] 0:41.33 testing/mozbase/mozfile/tests/test_extract.py::TestExtract::test_extract_zipfile_missing_file_attributes PASSED
[task 2019-03-12T14:08:41.667Z] 0:41.33
[task 2019-03-12T14:08:41.667Z] 0:41.33 =========================== 4 passed in 0.14 seconds ===========================
[task 2019-03-12T14:08:41.675Z] 0:41.33 /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozdevice/tests/test_is_app_installed.py
[task 2019-03-12T14:08:41.678Z] 0:41.34 ============================= test session starts ==============================
[task 2019-03-12T14:08:41.678Z] 0:41.34 platform darwin -- Python 3.7.1, pytest-3.6.2, py-1.5.4, pluggy-0.6.0 -- /Users/cltbld/tasks/task_1552399473/checkouts/gecko/obj-x86_64-apple-darwin14.5.0/_virtualenvs/gecko-9o-SZLg7-/usr/local/bin/python3/bin/python
[task 2019-03-12T14:08:41.678Z] 0:41.34 rootdir: /Users/cltbld/tasks/task_1552399473/checkouts/gecko, inifile: /Users/cltbld/tasks/task_1552399473/checkouts/gecko/config/mozunit/mozunit/pytest.ini
[task 2019-03-12T14:08:41.678Z] 0:41.34 collecting ... collected 5 items
[task 2019-03-12T14:08:41.678Z] 0:41.34
[task 2019-03-12T14:08:41.678Z] 0:41.34 testing/mozbase/mozdevice/tests/test_is_app_installed.py::test_is_app_installed PASSED
[task 2019-03-12T14:08:41.678Z] 0:41.34 testing/mozbase/mozdevice/tests/test_is_app_installed.py::test_is_app_installed_not_installed PASSED
[task 2019-03-12T14:08:41.679Z] 0:41.34 testing/mozbase/mozdevice/tests/test_is_app_installed.py::test_is_app_installed_partial_name PASSED
[task 2019-03-12T14:08:41.679Z] 0:41.34 testing/mozbase/mozdevice/tests/test_is_app_installed.py::test_is_app_installed_package_manager_error PASSED
[task 2019-03-12T14:08:41.679Z] 0:41.34 testing/mozbase/mozdevice/tests/test_is_app_installed.py::test_is_app_installed_no_installed_package_found PASSED

This is a tier 2 perma-fail. It will eventually be duped to one of the see-also bugs, but let's leave it open for now to collect failure reports.

See Also: → 1530738, 1529331, 1532630
Summary: Intermittent 0:40.99 TEST-UNEXPECTED-FAIL | No test output (missing mozunit.main() call?): /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozfile/tests/test_load.py → Intermittent TEST-UNEXPECTED-FAIL | No test output (missing mozunit.main() call?): /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozfile/tests/test_load.py
Summary: Intermittent TEST-UNEXPECTED-FAIL | No test output (missing mozunit.main() call?): /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozfile/tests/test_load.py → Perma mb TEST-UNEXPECTED-FAIL | No test output (missing mozunit.main() call?): /Users/cltbld/tasks/task_1552399473/checkouts/gecko/testing/mozbase/mozfile/tests/test_load.py

(In reply to Geoff Brown [:gbrown] from comment #1)

It will eventually be duped to one of the see-also bugs

It turns out that's not true. This is a separate issue.

There was some related discussion in bug 1529331, about python versions and updates. Of possible interest from that bug:

https://bugzilla.mozilla.org/show_bug.cgi?id=1529331#c13

I am not aware of any python upgrades on the machines

:dividehex, do you know more about the python version on the osx machines?

Releng requested it in bug 1501497. Also relevant (and what spurred it): https://wiki.mozilla.org/ReleaseEngineering/Python_Standards#Updates

and https://bugzilla.mozilla.org/show_bug.cgi?id=1529331#c12

Not convinced it will work as it depends on a) Python 3.5 still being available on the macOS workers and b) Pipenv >> being able to locate Python 3.5 but I've pushed a patch to try that forces these tests to run on Python 3.5:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=dfea6b543dde3d60bfe7882bb5daf66f3926565b

If Python 3.5 is indeed still available on the workers, then we may need to understand why Pipenv isn't
locating it. There have been new releases of Pipenv, and I believe it now uses pythonfinder to locate Python
on the system. Perhaps we could consider vendoring this, or implementing something similar ourselves.

My try push is failing on Windows due to "Python 3.5 was not found on your system…" and it looks like we're running
Python 3.6 for recent jobs on Windows. The macOS jobs are still pending, but the Linux jobs passed. We should pick
a Python version and make sure it's available across all of our platforms.

I think the python 3.7 installed via bug 1501497 must be lacking ssl support. Is it our own build? I think there are some extra steps to include ssl support...might that have been missed?

Flags: needinfo?(catlee)

While having ssl support is an issue, I don't see any harm in skipping the test if there's no SSL support on the platform, because in these tests, it's just knowing if we can use wptserve.

Happy to provide the patch if you want, lmk with a needinfo

Flags: needinfo?(gbrown)

Thanks Tarek, that's another good idea.

So we can resolve this several ways:

  • fix python 3.7 on osx (comment 8)
  • use python 3.6 (or maybe 3.5) on osx
  • skip the test if ssl is not available

:davehunt, :catlee - Thoughts?

Flags: needinfo?(gbrown) → needinfo?(dave.hunt)

(In reply to Geoff Brown [:gbrown] from comment #8)

I think the python 3.7 installed via bug 1501497 must be lacking ssl support. Is it our own build? I think there are some extra steps to include ssl support...might that have been missed?

it's probably the case that the ssl development libraries weren't available on the machine where python was built. python's configure system silently disables important features like this if it can't find the right libraries locally.

I wonder if pyenv would help solve this?

Flags: needinfo?(catlee)

When we started to add Python 3 support to mozbase, it was decided to use Python 3.5 as our target version. I think it's great to support later versions, but still feel we should indicate the earliest version we support. The expectation was that the tests would run against this version, and the classifiers in the packages were updated accordingly. I think we should consider once more what our minimum supported version should be, ensure that version is available across all platforms, and run the tests using that version.

Flags: needinfo?(dave.hunt)

Yes, I think it's a bug that the tests are running with 3.7 here in the first place. They should run with whatever version we intend to require to build Firefox (gps was aiming for 3.5, though not sure if this is still the case since he left).

So is the releng update policy inappropriate? https://wiki.mozilla.org/ReleaseEngineering/Python_Standards#Updates

Or do we want the latest python3 to be available, in addition to older versions (or at least 3.5)?

These tests currently run /usr/local/bin/python3.

In bug 1529331 comment 12 I attempted to run the mozbase tests against Python 3.5, but it was not found on some platforms. I think it's fine to have later versions available, and to be explicit in the version we want to execute the tests against.

Yeah, I don't think the policy is bad. We might even want to run some critically important tests against multiple versions of python 3. I think catlee's idea of using pyenv might be beneficial here. Maybe we can install pyenv + the python versions we care about in the docker images. Then tasks can do something like:

$ PYENV_VERSION=3.5 ./mach python-test ...

Actually if the build tasks use this as well, there might not even be a need for that policy as it would all be controlled in-tree.

Edit: I guess OSX and Windows would still need out-of-tree updates, but we can still use pyenv there to make things easier.

To be clear, this isn't the right bug to be figuring out how to handle multiple python versions. Let's just use gbrown's patch from comment 7 or skip this test on py3+osx for now.

Geoff, did you want to try and get your patch ready for review?

Flags: needinfo?(gbrown)

Quick fix for python3 mozbase perma-fail on osx: Use python 3.6 explicitly, rather
than the system default 3.7, which appears to be broken currently (lacking ssl support).

See Also: → 1542327

Here's a quick fix.

I filed bug 1542327 to get osx python 3.7 fixed.

I'll leave it to others to sort out the general issue of handling multiple python versions.

Flags: needinfo?(gbrown)
See Also: → 1542354
Pushed by gbrown@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f6bf51e87b1a Switch python3 version to 3.6 on osx hosts; r=ahal
Assignee: nobody → gbrown
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
See Also: → 1592945
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: