OpenLightingProject / ola

The Open Lighting Architecture - The Travel Adaptor for the Lighting Industry
https://www.openlighting.org/ola/
Other
646 stars 205 forks source link

Test failures - Debian Test sid amd64 - master branch #1948

Open peternewman opened 7 months ago

peternewman commented 7 months ago

Worked: https://github.com/OpenLightingProject/ola/actions/runs/8309326167/job/22740631359

The following additional packages will be installed:
  libblas3 libgfortran5 libjs-jquery libjs-jquery-ui liblapack3
  libpython3.12-minimal libpython3.12-stdlib ola-python ola-rdm-tests
  python3-numpy python3-protobuf python3.12 python3.12-minimal
Suggested packages:
  libjs-jquery-ui-docs bash-completion gcc gfortran python3-dev python3-pytest
  python3.12-venv python3.12-doc binfmt-support
Recommended packages:
  javascript-common
The following NEW packages will be installed:
  autopkgtest-satdep libblas3 libgfortran5 libjs-jquery libjs-jquery-ui
  liblapack3 libpython3.12-minimal libpython3.12-stdlib ola-python
  ola-rdm-tests python3-numpy python3-protobuf python3.12 python3.12-minimal
0 upgraded, 14 newly installed, 0 to remove and 9 not upgraded.

Failed: https://github.com/OpenLightingProject/ola/actions/runs/8383043621/job/22958169208

The following additional packages will be installed:
  gcc-14-base libblas3 libgcc-s1 libgfortran5 libjs-jquery libjs-jquery-ui
  liblapack3 libstdc++6 ola-python ola-rdm-tests python3-numpy
  python3-protobuf
Suggested packages:
  libjs-jquery-ui-docs bash-completion gcc gfortran python3-dev python3-pytest
Recommended packages:
  javascript-common
The following NEW packages will be installed:
  autopkgtest-satdep libblas3 libgfortran5 libjs-jquery libjs-jquery-ui
  liblapack3 ola-python ola-rdm-tests python3-numpy python3-protobuf
The following packages will be upgraded:
  gcc-14-base libgcc-s1 libstdc++6
3 upgraded, 10 newly installed, 0 to remove and 12 not upgraded.

Which then results in:

autopkgtest [23:33:25]: test command3: set -e ; for py in $(py3versions -s 2>/dev/null) ; do echo "Testing with $py:" ; $py $(which rdm_responder_test.py) --help ; done
autopkgtest [23:33:25]: test command3: [-----------------------
Testing with python3.12:
bash: line 1: python3.12: command not found
autopkgtest [23:33:26]: test command3: -----------------------]
autopkgtest [23:33:26]: test command3:  - - - - - - - - - - results - - - - - - - - - -
command3             FAIL non-zero exit status 127
autopkgtest [23:33:26]: test command3:  - - - - - - - - - - stderr - - - - - - - - - -
bash: line 1: python3.12: command not found

It looks like something has stopped pulling in Python 3 for some reason. I haven't worked out if it's a bug in a package and if so what one.

Would reverting the debian/tests/control bit of this solve it? https://github.com/OpenLightingProject/ola/commit/82906ac96f831654e11ecff28ca21c3845593782

Do you have any thoughts @DaAwesomeP ? I don't know if 0.10 branch is unaffected or we just haven't rebuilt it since something external changed?

DaAwesomeP commented 7 months ago

Considering this is only failing in Sid (the very bleeding edge Debian), there must have been a breaking change. This is why I added builds for all Debian version :D

I'll try to figure out what it is this week. It is possible there is an upstream bug that will resolve itself.

peternewman commented 7 months ago

I had a quick look and couldn't spot anything immediately obvious. I suspect something isn't pulling in enough Python or similar, although it's curious that our ola-python tests deliberately pull in the other stuff manually themselves.

I'll leave it in the required CI for now, but we can always drop it for now if a fix looks complicated.

I think you should be able to rebuild 0.10 branch, but let me know if not and I can kick off a manual one to see if that's related.

peternewman commented 7 months ago

I've removed Test Sid for now from the 0.10 and master CI. We just need to remember to re-add it when the issue is fixed.

DaAwesomeP commented 7 months ago

@yoe do you possibly know of any changes in the dependency solver in Sid that are causing it not to install Python as a dependency for ola-rdm-tests? This is working fine in stable and testing, just not Sid. Or maybe something is wrong with the default Python version or py3versions? See below:

Here is the failing one (command 3):

The following additional packages will be installed:
  gcc-14-base libblas3 libgcc-s1 libgfortran5 libjs-jquery libjs-jquery-ui
  liblapack3 libstdc++6 ola-python ola-rdm-tests python3-numpy
  python3-protobuf
Suggested packages:
  libjs-jquery-ui-docs bash-completion gcc gfortran python3-dev python3-pytest
Recommended packages:
  javascript-common
The following NEW packages will be installed:
  autopkgtest-satdep libblas3 libgfortran5 libjs-jquery libjs-jquery-ui
  liblapack3 ola-python ola-rdm-tests python3-numpy python3-protobuf
The following packages will be upgraded:
  gcc-14-base libgcc-s1 libstdc++6
3 upgraded, 10 newly installed, 0 to remove and 13 not upgraded.
...
...
...
autopkgtest [01:34:58]: test command3: set -e ; for py in $(py3versions -s 2>/dev/null) ; do echo "Testing with $py:" ; $py $(which rdm_responder_test.py) --help ; done
autopkgtest [01:34:58]: test command3: [-----------------------
Testing with python3.12:
bash: line 1: python3.12: command not found
autopkgtest [01:34:58]: test command3: -----------------------]
autopkgtest [01:34:58]: test command3:  - - - - - - - - - - results - - - - - - - - - -
command3             FAIL non-zero exit status 127
autopkgtest [01:34:59]: test command3:  - - - - - - - - - - stderr - - - - - - - - - -
bash: line 1: python3.12: command not found

The dependency solver thinks it already has a Python version installed, which I think is true because it installs ola-python ola-rdm-tests python3-numpy without needing to install a Python base. Because it does not have python3-all it does not think that it needs to install an additional version (i.e. 3.12), but for some reason py3versions is reporting that it is installed.

Here is another one that works fine in the same build (this one has python3-all manually in the test control, but really I think it only needs the Python dependency from ola-python to work at all):

The following additional packages will be installed:
  libpython3.12-minimal libpython3.12-stdlib python3-all python3-distutils
  python3-lib2to3 python3.12 python3.12-minimal
Suggested packages:
  python3.12-venv python3.12-doc binfmt-support
The following NEW packages will be installed:
  autopkgtest-satdep libpython3.12-minimal libpython3.12-stdlib python3-all
  python3-distutils python3-lib2to3 python3.12 python3.12-minimal
0 upgraded, 8 newly installed, 0 to remove and 13 not upgraded.
...
...
...
autopkgtest [01:35:07]: test command4: set -e ; for py in $(py3versions -s 2>/dev/null) ; do cd "$ADTTMP" ; echo "Testing with $py:" ; $py -c "from ola.ClientWrapper import ClientWrapper; print(ClientWrapper)" ; done
autopkgtest [01:35:07]: test command4: [-----------------------
Testing with python3.12:
<class 'ola.ClientWrapper.ClientWrapper'>
Testing with python3.11:
<class 'ola.ClientWrapper.ClientWrapper'>
autopkgtest [01:35:07]: test command4: -----------------------]
autopkgtest [01:35:07]: test command4:  - - - - - - - - - - results - - - - - - - - - -
command4             PASS

They both use for py in $(py3versions -s 2>/dev/null) ; do echo "Testing with $py:" ; and both attempt to use Python 3.12. Something is weird with py3versions in Debian Sid because it should not be reporting 3.12 if it is not available.