Closed altendky closed 1 year ago
Maybe just skip the flake8 check in 3.7 so we can use the latest? It is 3.8.1+. Or stick with flake8 5 as this has now.
Might be worth a nightly build as well to catch failures early? I haven't really dug in but I'm guessing a setuptools update broke this.
https://github.com/MagicStack/uvloop/actions/runs/3721513697/jobs/6311716324#step:7:647
FAIL: test_call_later_rounding (test_base.TestBaseAIO)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/runner/work/uvloop/uvloop/tests/test_base.py", line 220, in test_call_later_rounding
self.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69
Kick ci
I haven't managed to recreate the hangs locally yet, so I guess I'll try to debug here in CI.
https://github.com/MagicStack/uvloop/actions/runs/3722977120/jobs/6314201846#step:7:582
ERROR: test_create_unix_server_ssl_1 (test_unix.Test_AIO_UnixSSL)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/runner/work/uvloop/uvloop/tests/test_unix.py", line 599, in test_create_unix_server_ssl_1
self.loop.run_until_complete(start_server())
File "/Users/runner/hostedtoolcache/Python/3.8.15/x64/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/Users/runner/work/uvloop/uvloop/tests/test_unix.py", line 591, in start_server
await asyncio.wait_for(asyncio.gather(*tasks), TIMEOUT)
File "/Users/runner/hostedtoolcache/Python/3.8.15/x64/lib/python3.8/asyncio/tasks.py", line 501, in wait_for
raise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError
Looks like test_remote_shutdown_receives_trailing_data()
might be the culprit. Maybe tomorrow I'll try undoing the other difference narrowing changes I've made since they don't seem relevant.
https://github.com/MagicStack/uvloop/actions/runs/3725634404/jobs/6318565550#step:8:948
FAIL: test_call_later_rounding (test_base.TestBaseAIO.test_call_later_rounding)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/runner/work/uvloop/uvloop/tests/test_base.py", line 220, in test_call_later_rounding
self.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69
kick ci
I think the current state here is worth considering.
1) Skips test_remote_shutdown_receives_trailing_data()
in the cases where it is causing hangs. Certainly this should be fixed, but I think it might be appropriate to get CI back into a generally functional state sooner than later.
2) Increases output around the flake8 and mypy failure cases, specifically including the exception text (no traceback) and the stderr.
3) Updates flake8 to the last version supporting Python 3.7 and a corresponding pycodestyle version. Perhaps another PR should update flake8 to latest and skip running that test on 3.7.
I certainly didn't try all the permutations, but I tried going back on a few points to try to identify a trigger for the test hangs that had changed since the last successful run. No success identifying such a trigger.
ubuntu-20.04
I tried running locally including calling the tests in a few different ways and failed to trigger a hang. Local is Ubuntu 20.04 Linux.
I've also noted above a couple different testing flakes that I've seen while running here.
Separately, with green CI available, I would expect to submit PRs for:
1) GitHub managed workflow concurrency (cancel old PR runs when a new commit is pushed)
2) Job timeouts at 30 minutes
3) Using released Python 3.11
4) Automatic tracking of pre-release through release Pythons without updating for each ~version~ alpha/beta/rc/final as they are released.
5) Latest flake8 skipped on Python <3.7
6) Install aiohttp for Python 3.11
7) Make master
look more like the win
branch in terms of system.pxd
to reduce future conflicts between the two branches.
8) Setup daily builds to more quickly identify these failures that just start happening. Then we know sooner, have a reference log available (not expired and removed by GitHub), and the diff between working and not is smaller.
Other points of interest that I don't know how to do already but might work on would be Windows support (I see the existing branch and comments about preferred next steps) and fixing the hanging test_remote_shutdown_receives_trailing_data()
test.
Kicking CI to make sure it is fresh.
New one to fix...
https://github.com/MagicStack/uvloop/actions/runs/3830530519/jobs/6518521286#step:7:472
ERROR: test_tcp (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_tcp
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/unittest/loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "/home/runner/work/uvloop/uvloop/tests/test_tcp.py", line 14, in <module>
from OpenSSL import SSL as openssl_ssl
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/OpenSSL/__init__.py", line 8, in <module>
from OpenSSL import crypto, SSL
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/OpenSSL/crypto.py", line 3268, in <module>
_lib.OpenSSL_add_all_algorithms()
AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'
We constrain pyopenssl but not cryptography and this, along with their deps not being constrained, allowed for incompatible versions to get installed.
kicking ci for a fresh run
https://github.com/MagicStack/uvloop/actions/runs/3905648871/jobs/6672910215#step:8:982
Traceback (most recent call last):
File "/Users/runner/work/uvloop/uvloop/tests/test_base.py", line 220, in test_call_later_rounding
self.assertGreaterEqual(finished - started, 69)
AssertionError: 66 not greater than or equal to 69
https://github.com/MagicStack/uvloop/actions/runs/3721134010/jobs/6311076170#step:7:567