Test failures on no-GIL interpreter macOS 26 ARM64 with UBSan
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 77.2k
- Fork
- 35.9k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
Bug report
Bug description:
Here's my Action file: https://github.com/clin1234/sanitizer-experiments/blob/main/.github/workflows/cpython.yml
Log: https://github.com/clin1234/sanitizer-experiments/actions/runs/26239722888/job/77222501727
On macOS 26 ARM64, with the following flags on Clang 22: CFLAGS='-fsanitize-address-use-after-scope -fsanitize-coverage=trace-cmp -fstack-clash-protection' GDBM_CFLAGS="-I$(brew --prefix gdbm)/include"
GDBM_LIBS="-L$(brew --prefix gdbm)/lib -lgdbm"
./configure
--with-undefined-behavior-sanitizer
--with-pydebug
--disable-gil
--enable-safety
--enable-slower-safety
--with-lto=yes
--config-cache
--prefix=/opt/python-dev
--disable-ipv6
--with-openssl="$(brew --prefix openssl@3.5)"
In particular, these tests fail:
- test.test_asyncio.test_streams: (test.test_asyncio.test_streams.StreamTests.test_unhandled_cancel) and (test.test_asyncio.test_streams.StreamTests.test_unhandled_exception) due to OSError: [Errno None] error while attempting to bind on address (30, b'\xc5\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'): bind(): bad family
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/test_asyncio/test_streams.py", line 1225, in _basetest_unhandled_exceptions
self.loop.run_until_complete(main())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/asyncio/base_events.py", line 725, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/test_asyncio/test_streams.py", line 1218, in main
server = await asyncio.start_server(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
handle_echo, 'localhost', port)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/asyncio/streams.py", line 84, in start_server
return await loop.create_server(factory, host, port, **kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/asyncio/base_events.py", line 1646, in create_server
raise OSError(err.errno, msg) from None
- test_dict and test_embed: 76 failures from the same error:
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
WARN: Could not find the standard library directory! sys.prefix is set to /opt/python-dev, is this correct?
Fatal Python error: Failed to import encodings module
Python runtime state: core initialized
Exception ignored in the internal traceback machinery:
ModuleNotFoundError: No module named 'traceback'
ModuleNotFoundError: No module named 'encodings'
- (test.test_exception_group.DeepRecursionInSplitAndSubgroup.test_deep_split) and (test.test_exception_group.DeepRecursionInSplitAndSubgroup.test_deep_subgroup) with AssertionError: RecursionError not raised in tests test_deep_split
- test_list due to timeout:
(test.test_list.ListTest.test_repr_deep) ... Timeout (0:10:00)!
Thread 0x00000001f33b3080 (most recent call first):
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/unittest/case.py", line 245 in handle
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/unittest/case.py", line 835 in assertRaises
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/list_tests.py", line 69 in test_repr_deep
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/unittest/case.py", line 637 in _callTestMethod
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/unittest/case.py", line 691 in run
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/unittest/case.py", line 747 in __call__
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/unittest/suite.py", line 122 in run
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/unittest/suite.py", line 84 in __call__
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/unittest/suite.py", line 122 in run
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/unittest/suite.py", line 84 in __call__
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/unittest/runner.py", line 256 in run
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/single.py", line 84 in _run_suite
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/single.py", line 42 in run_unittest
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/single.py", line 162 in test_func
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/single.py", line 118 in regrtest_runner
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/single.py", line 165 in _load_run_test
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/single.py", line 210 in _runtest_env_changed_exc
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/single.py", line 319 in _runtest
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/single.py", line 348 in run_single_test
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/worker.py", line 99 in worker_process
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/worker.py", line 137 in main
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/test/libregrtest/worker.py", line 141 in <module>
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/runpy.py", line 87 in _run_code
File "/Users/runner/work/sanitizer-experiments/sanitizer-experiments/Lib/runpy.py", line 201 in _run_module_as_main
== Tests result: FAILURE ==
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS
Linked PRs
- gh-150256
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với workflow sanitizer tại .github/workflows/cpython.yml và tái hiện các lỗi trong test_asyncio/test_streams.py, test_dict, test_embed, test_exception_group và test_list. So sánh kết quả với PR được liên kết gh-150256; issue không xác định một thay đổi cụ thể duy nhất cần thực hiện, vì vậy để hoàn thành sẽ cần có một bản sửa được thống nhất và các bài kiểm thử bị ảnh hưởng phải vượt qua trên macOS ARM64 với cấu hình sanitizer được báo cáo.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- macos, python
- Lĩnh vực
- operating-systems, testing-qa
- Loại issue
- Lỗi
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 20/100