-
-
Notifications
You must be signed in to change notification settings - Fork 31k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bpo-36511: Fix Windows arm32 buildbot pythoninfo, scp, and ssh #13454
Conversation
The debug part of the test pass should pass locally with these fixes, except for test_datetime. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would prefer a tighter skip on the tests, and deferring to @zware on the buildbot scripts (as with the build config change).
Lib/test/test_ssl.py
Outdated
@@ -1345,6 +1346,7 @@ def test_load_verify_cadata(self): | |||
ctx.load_verify_locations(cadata=b"broken") | |||
|
|||
|
|||
@unittest.skipIf(Py_DEBUG, "Crashes on debug python builds") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is certainly not a general issue - can we scope it down to the platform(s) where it crashes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will scope it down.
I think it's limited to UCRT. The problem is that SSL has FILE* from the ucrtbase.dll table and python has a FILE* from the ucrtbased.dll table.
I think we could limit it to win32+arm or platform.win32_is_iot( ). Unless there's a way to check if python is using UCRT? I couldn't find one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, it's because of mixing FILE* across debug/release builds? In that case we scope it down to Windows and enhance the skip message to say "Avoid mixing debug/release CRT on Windows"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
Enabling is_python_build( ) to return true on the test target uncovered more failing tests.
|
I simplified the deployment script to copy entire directories instead of picking files, except for PCBuild and Modules which have many files that aren't needed for the test run. This should make the script more resilient to test changes. I think the Windows ARM32 test pass is green now when I run the scripts manually, if #13073 is included. |
@@ -465,7 +466,7 @@ def test_exception(self): | |||
"pyexpat.c", "StartElement") | |||
self.check_traceback_entry(entries[2], | |||
"test_pyexpat.py", "StartElementHandler") | |||
if sysconfig.is_python_build(): | |||
if sysconfig.is_python_build() and not (sys.platform == 'win32' and platform.machine() == 'ARM'): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd rather fix this than skip it, but I haven't figured out where to start looking yet.
@tiran can you please review? |
@paulmon I'm happy to merge without Christian's review once the updates I suggested in my last one are done. |
Co-Authored-By: Steve Dower <steve.dower@microsoft.com>
Co-Authored-By: Steve Dower <steve.dower@microsoft.com>
@zooba I merged your suggested changes. I think it's ready |
@paulmon The |
I'm not sure I'm following you. Are suggesting adding a check for arm/arm64 to Py_DEBUG_WIN32? That would be incorrect for Windows IoT Core x86/x64 which also use UCRT for everything. |
No, I'm saying elsewhere you are referring to |
Thanks. I noticed the whitespace change but somehow didn't see the uppercase change. |
@zooba Thanks for the help |
…bot (pythonGH-13454) (cherry picked from commit f355069) Co-authored-by: Paul Monson <paulmon@users.noreply.github.com>
GH-14244 is a backport of this pull request to the 3.8 branch. |
@paulmon Seems like it still fails: https://buildbot.python.org/all/#/builders/197/builds/338 |
The raspberry pi was in a bad state. I have restarted it |
Also, ssh.exe and scp.exe somehow don't exist when running under the buildbot, which is breaking the script. |
@paulmon Different PATH setting? Or perhaps it's running with different file redirection settings (as a 32-bit app, maybe)? |
The PATH is echoed at the top of the log and includes the PATH to ssh. |
* master: (599 commits) Docs: Improved phrasing (pythonGH-14069) Remove redundant if check from optional argument function in argparse. (pythonGH-8766) bpo-37289: Add a test for if with ifexpr in the peephole optimiser to detect regressions (pythonGH-14127) Update What's New in Python 3.9 (pythonGH-14253) bpo-36511: Improve ARM32 buildbot scripts (pythonGH-14251) bpo-37151: remove _PyCFunction_FastCallDict (pythonGH-14269) Fix typo, 'widger' -> 'widget', in idlelib/tree.py (pythonGH-14263) Fix bpo number in News file. (pythonGH-14260) bpo-37342: Fix the incorrect nb_index's type in typeobj documentation (pythonGH-14241) Update What's New in Python 3.8 (pythonGH-14239) bpo-36710: Use tstate in pylifecycle.c (pythonGH-14249) Add missing single quote in io.TextIOWrapper.reconfigure documentation (pythonGH-14246) bpo-36511: Add buildbot scripts and fix tests for Windows ARM32 buildbot (pythonGH-13454) bpo-37333: Ensure IncludeTkinter has a value (pythonGH-14240) bpo-37331: Clarify format of socket handler messages in the documentation. (pythonGH-14234) bpo-37258: Not a bug, but added a unit test and updated documentation. (pythonGH-14229) bpo-36710: Remove PyImport_Cleanup() function (pythonGH-14221) Fix name of '\0'. (pythonGH-14222) bpo-36710: Add tstate parameter in import.c (pythonGH-14218) Document typing.ForwardRef (pythonGH-14216) ...
When running the buildbot for Windows ARM32 test.pythoninfo must be run remotely.
Also seperating deploy step from both pythoninfo and test.bat
Requires buildmaster config change to work:
python/buildmaster-config#91
@zooba @zware
https://bugs.python.org/issue36511