#8030 azure pipelines fail at "Install prerequisites" of Tox job
Closed: fixed by fcami. Opened by fcami.

Issue

"Install prerequisites" does:

        sudo dnf -y install nss-tools
        python3 -m pip install --upgrade pip setuptools pycodestyle

The second command fails with:

python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
##[error]Bash exited with code '127'.
##[section]Finishing: Install prerequisites

Log available at: https://dev.azure.com/freeipa/freeipa/_build/results?buildId=805&view=logs&jobId=2fb0eb09-97d5-54f0-ea8f-50bdaefda98e


Metadata Update from @fcami:
- Issue tagged with: test-failure

Hi, @fcami.
In this AP job Python specific version (3.6, for instance) is taken from tools dir (/__t/Python/3.6.9/x64/bin), but there is no corresponding libpython.
Just now I've checked this on host (vmImage: 'Ubuntu-16.04', not within container), it works as expected.
Unfortunately, there are no detail docs on it
https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/use-python-version?view=azure-devops

I think AP issue should be opened to clarify behavior.
Concerning Tox job I don't know why is Python version pinned to 3.6. May it be relaxed to 3.7?
My proposal is completely removing UsePythonVersion@0 task from this job.

Hi @slev
Thanks for the investigations!
I've opened a PR to switch to 3.7. I'm not sure why it was pinned on 3.6 anyway.

Metadata Update from @fcami:
- Custom field on_review adjusted to https://github.com/freeipa/freeipa/pull/3492

It was pinned to the version because we needed to on to some above the default. Since then, an upgrade happened, it seems, so we need to move up.

master:

  • 70b96d76cb97b386da27e05d81240f946b206378 azure-pipelines.yml: switch to Python 3.7

ipa-4-8:

  • f4bbe0008cecff25796d80ab91da845116b4bb2c azure-pipelines.yml: switch to Python 3.7

Metadata Update from @fcami:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

Hi, @abbra , @fcami.
This is a strace log of the current Tox job.
strace_python37.log
You can see that due to UsePythonVersion@0 Python3.7 was used from /__t/Python/3.7.4.
When /__t/Python/3.7.4/x64/bin/python3 (Ubuntu's python) is launched, ld loads container's libpython. So, it is a luck, that this job passed. I think, this is not what we want.

I've opened an upstream ticket https://github.com/microsoft/azure-pipelines-tasks/issues/11070

Metadata