-
Type: Build Failure
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Storage Engines
-
5
-
3
-
c(3x10^8)-StorEng - 2023-11-14
-
v7.2, v7.1
unit-test-macos on macos-1100-arm64
Host: macos-1100-arm64-55.macstadium.build.10gen.cc
Project: wiredtiger-mongo-v7.1
Commit: 8f162b57
Task Logs:
Mac builds have a check that the Python version being used to run Python scripts inside evergreen.yml is the same as that was used by CMake. The Python version checking code was refactored and simplified in WT-10667. For diagnostic purposes, the path to the Python binary along with the Python version numbers are printed out to the logs. If the version numbers matched, then the tests continue as normal, whereas if they are different (as in this ticket), then and error is displayed and the tests aborted.
Mismatches in Python versions can arise through evergreen changes, and/or via changes to the underlying system. So, it is possible that the actual changes in the first failing commit are not relevant.
This failure has been detected on the 7.1 branch, and also on some 'develop' builds (marked as 'setup failure' - here's an example) . The last successful task on 7.1 was on 24th Oct, and reported the following versions:
[2023/10/24 03:53:26.084] Python Version Analyser [2023/10/24 03:53:26.084] ======================= [2023/10/24 03:53:26.084] This tool confirms that the Python version being used matches that configured in CMake. [2023/10/24 03:53:26.084] Configuration: [2023/10/24 03:53:26.084] CMakeCache.txt file: ./CMakeCache.txt [2023/10/24 03:53:26.084] Config search string: _Python3_EXECUTABLE [2023/10/24 03:53:26.084] Results: [2023/10/24 03:53:26.084] This Python: [2023/10/24 03:53:26.084] path = /opt/homebrew/opt/python@3.11/bin/python3.11 [2023/10/24 03:53:26.084] version = Python 3.11.4 [2023/10/24 03:53:26.084] CMake Python [2023/10/24 03:53:26.084] path = /opt/homebrew/Frameworks/Python.framework/Versions/3.11/bin/python3.11 [2023/10/24 03:53:26.084] version = Python 3.11.4 [2023/10/24 03:53:26.084] Python versions (Python 3.11.4 and Python 3.11.4) are the same [2023/10/24 03:53:26.088] Finished command 'shell.exec' in function 'python config check' (step 2 of 3) in 43.152542ms. [2023/10/24 03:53:26.088] Running command 'shell.exec' in function 'unit test' (step 3 of 3).
The first failure was on 27th Oct, and reported the following versions:
[2023/10/27 09:33:40.183] Python Version Analyser [2023/10/27 09:33:40.183] ======================= [2023/10/27 09:33:40.183] This tool confirms that the Python version being used matches that configured in CMake. [2023/10/27 09:33:40.183] Configuration: [2023/10/27 09:33:40.183] CMakeCache.txt file: ./CMakeCache.txt [2023/10/27 09:33:40.183] Config search string: _Python3_EXECUTABLE [2023/10/27 09:33:40.183] Results: [2023/10/27 09:33:40.183] This Python: [2023/10/27 09:33:40.183] path = /opt/homebrew/opt/python@3.11/bin/python3.11 [2023/10/27 09:33:40.183] version = Python 3.11.6 [2023/10/27 09:33:40.183] CMake Python [2023/10/27 09:33:40.183] path = /opt/homebrew/Frameworks/Python.framework/Versions/3.12/bin/python3.12 [2023/10/27 09:33:40.183] version = Python 3.12.0
Note that both version numbers have increased, but there are now two inconsistent versions being picked up.
This is a similar failure from 'develop':
[2023/11/04 01:18:59.062] Python Version Analyser [2023/11/04 01:18:59.062] ======================= [2023/11/04 01:18:59.062] This tool confirms that the Python version being used matches that configured in CMake. [2023/11/04 01:18:59.062] Configuration: [2023/11/04 01:18:59.062] CMakeCache.txt file: ./CMakeCache.txt [2023/11/04 01:18:59.062] Config search string: _Python3_EXECUTABLE [2023/11/04 01:18:59.062] Results: [2023/11/04 01:18:59.062] This Python: [2023/11/04 01:18:59.062] path = /opt/homebrew/opt/python@3.11/bin/python3.11 [2023/11/04 01:18:59.062] version = Python 3.11.6 [2023/11/04 01:18:59.062] CMake Python [2023/11/04 01:18:59.062] path = /opt/homebrew/Frameworks/Python.framework/Versions/3.12/bin/python3.12 [2023/11/04 01:18:59.062] version = Python 3.12.0 [2023/11/04 01:18:59.062] ==== Python versions are DIFFERENT ===
This one passed, however:
[2023/11/03 15:10:41.546] Python Version Analyser [2023/11/03 15:10:41.546] ======================= [2023/11/03 15:10:41.546] This tool confirms that the Python version being used matches that configured in CMake. [2023/11/03 15:10:41.546] Configuration: [2023/11/03 15:10:41.546] CMakeCache.txt file: ./CMakeCache.txt [2023/11/03 15:10:41.546] Config search string: _Python3_EXECUTABLE [2023/11/03 15:10:41.546] Results: [2023/11/03 15:10:41.546] This Python: [2023/11/03 15:10:41.546] path = /opt/homebrew/opt/python@3.11/bin/python3.11 [2023/11/03 15:10:41.546] version = Python 3.11.6 [2023/11/03 15:10:41.546] CMake Python [2023/11/03 15:10:41.546] path = /opt/homebrew/Frameworks/Python.framework/Versions/3.11/bin/python3.11 [2023/11/03 15:10:41.546] version = Python 3.11.6 [2023/11/03 15:10:41.546] Python versions (Python 3.11.6 and Python 3.11.6) are the same
An earlier build from 23rd Oct on develop shows older versions of Python:
[2023/10/23 02:08:08.135] Python Version Analyser [2023/10/23 02:08:08.135] ======================= [2023/10/23 02:08:08.135] This tool confirms that the Python version being used matches that configured in CMake. [2023/10/23 02:08:08.135] Configuration: [2023/10/23 02:08:08.135] CMakeCache.txt file: ./CMakeCache.txt [2023/10/23 02:08:08.135] Config search string: _Python3_EXECUTABLE [2023/10/23 02:08:08.135] Results: [2023/10/23 02:08:08.135] This Python: [2023/10/23 02:08:08.135] path = /opt/homebrew/opt/python@3.11/bin/python3.11 [2023/10/23 02:08:08.135] version = Python 3.11.4 [2023/10/23 02:08:08.135] CMake Python [2023/10/23 02:08:08.135] path = /opt/homebrew/Frameworks/Python.framework/Versions/3.11/bin/python3.11 [2023/10/23 02:08:08.135] version = Python 3.11.4 [2023/10/23 02:08:08.135] Python versions (Python 3.11.4 and Python 3.11.4) are the same
The hypothesis is that Python has been updated on M1 Macs and inconsistent versions are being picked up. if so, this will likely require changes to how the Python versions are picked up in evergreen.yml.
We should consistently use the latest version of Python that is installed.
Note that the Intel Mac configs are different to the M1/ARM config ones, and so the Python version checking code has to be able to work on both.