Fixup CI - #520

Merged
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2
Jan 15, 2023
Merged

Fixup CI#520
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2

Conversation

@altendky

Copy link
Copy Markdown
Contributor

No description provided.

@altendky
altendky marked this pull request as draft December 17, 2022 17:33
@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

https://github.com/MagicStack/uvloop/actions/runs/3721134010/jobs/6311076170#step:7:567

self.check_plugins = plugin_manager.Checkers(local_plugins.extension)
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 357, in __init__self.namespace, local_plugins=local_plugins
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 238, in __init__self._load_entrypoint_plugins()
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 254, in _load_entrypoint_plugins
eps = importlib_metadata.entry_points().get(self.namespace, ())
AttributeError: 'EntryPoints' object has no attribute 'get'

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

Kick ci

@altendkyaltendky reopened this Dec 17, 2022
@altendky

Copy link
Copy Markdown
ContributorAuthor

I haven't managed to recreate the hangs locally yet, so I guess I'll try to debug here in CI.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_1self.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_completereturn future.result()
File "/Users/runner/work/uvloop/uvloop/tests/test_unix.py", line 591, in start_serverawait 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_forraise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

kick ci

@altendkyaltendky reopened this Dec 18, 2022
@altendky

altendky commented Dec 18, 2022

Copy link
Copy Markdown
ContributorAuthor

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.

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.

@altendky
altendky marked this pull request as ready for review December 18, 2022 16:58
@shuuji3shuuji3 mentioned this pull request Jan 2, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

Kicking CI to make sure it is fresh.

@altendkyaltendky closed this Jan 3, 2023
@altendkyaltendky reopened this Jan 3, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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 importSSLas 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'

@altendky
altendky marked this pull request as draft January 3, 2023 15:10
@altendky

Copy link
Copy Markdown
ContributorAuthor

We constrain pyopenssl but not cryptography and this, along with their deps not being constrained, allowed for incompatible versions to get installed.

@elprans
elprans requested a review from fantixJanuary 3, 2023 19:53
@altendky
altendky marked this pull request as ready for review January 3, 2023 20:30
@altendky

Copy link
Copy Markdown
ContributorAuthor

kicking ci for a fresh run

@altendkyaltendky reopened this Jan 12, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 66 not greater than or equal to 69

@altendkyaltendky reopened this Jan 12, 2023

@fantixfantix left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I think the failing test on 3.11 is related to #471 and I'll try to fix it there.

@fantix
fantix merged commit 7783f1c into MagicStack:masterJan 15, 2023
fantix added a commit that referenced this pull request Oct 12, 2023
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
@fantixfantix mentioned this pull request Oct 12, 2023
fantix added a commit that referenced this pull request Oct 13, 2023
Changes
=======
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
* Upgrade libuv to v1.46.0 (#571)
(by @fantix in 2e1978c for #571)
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@altendky@fantix
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Fixup CI - #520

Merged
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2
Jan 15, 2023
Merged

Fixup CI#520
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2

Conversation

@altendky

Copy link
Copy Markdown
Contributor

No description provided.

@altendky
altendky marked this pull request as draft December 17, 2022 17:33
@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

https://github.com/MagicStack/uvloop/actions/runs/3721134010/jobs/6311076170#step:7:567

self.check_plugins = plugin_manager.Checkers(local_plugins.extension)
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 357, in __init__self.namespace, local_plugins=local_plugins
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 238, in __init__self._load_entrypoint_plugins()
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 254, in _load_entrypoint_plugins
eps = importlib_metadata.entry_points().get(self.namespace, ())
AttributeError: 'EntryPoints' object has no attribute 'get'

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

Kick ci

@altendkyaltendky reopened this Dec 17, 2022
@altendky

Copy link
Copy Markdown
ContributorAuthor

I haven't managed to recreate the hangs locally yet, so I guess I'll try to debug here in CI.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_1self.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_completereturn future.result()
File "/Users/runner/work/uvloop/uvloop/tests/test_unix.py", line 591, in start_serverawait 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_forraise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

kick ci

@altendkyaltendky reopened this Dec 18, 2022
@altendky

altendky commented Dec 18, 2022

Copy link
Copy Markdown
ContributorAuthor

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.

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.

@altendky
altendky marked this pull request as ready for review December 18, 2022 16:58
@shuuji3shuuji3 mentioned this pull request Jan 2, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

Kicking CI to make sure it is fresh.

@altendkyaltendky closed this Jan 3, 2023
@altendkyaltendky reopened this Jan 3, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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 importSSLas 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'

@altendky
altendky marked this pull request as draft January 3, 2023 15:10
@altendky

Copy link
Copy Markdown
ContributorAuthor

We constrain pyopenssl but not cryptography and this, along with their deps not being constrained, allowed for incompatible versions to get installed.

@elprans
elprans requested a review from fantixJanuary 3, 2023 19:53
@altendky
altendky marked this pull request as ready for review January 3, 2023 20:30
@altendky

Copy link
Copy Markdown
ContributorAuthor

kicking ci for a fresh run

@altendkyaltendky reopened this Jan 12, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 66 not greater than or equal to 69

@altendkyaltendky reopened this Jan 12, 2023

@fantixfantix left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I think the failing test on 3.11 is related to #471 and I'll try to fix it there.

@fantix
fantix merged commit 7783f1c into MagicStack:masterJan 15, 2023
fantix added a commit that referenced this pull request Oct 12, 2023
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
@fantixfantix mentioned this pull request Oct 12, 2023
fantix added a commit that referenced this pull request Oct 13, 2023
Changes
=======
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
* Upgrade libuv to v1.46.0 (#571)
(by @fantix in 2e1978c for #571)
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@altendky@fantix
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fixup CI - #520

Merged
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2
Jan 15, 2023
Merged

Fixup CI#520
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2

Conversation

@altendky

Copy link
Copy Markdown
Contributor

No description provided.

@altendky
altendky marked this pull request as draft December 17, 2022 17:33
@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

https://github.com/MagicStack/uvloop/actions/runs/3721134010/jobs/6311076170#step:7:567

self.check_plugins = plugin_manager.Checkers(local_plugins.extension)
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 357, in __init__self.namespace, local_plugins=local_plugins
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 238, in __init__self._load_entrypoint_plugins()
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 254, in _load_entrypoint_plugins
eps = importlib_metadata.entry_points().get(self.namespace, ())
AttributeError: 'EntryPoints' object has no attribute 'get'

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

Kick ci

@altendkyaltendky reopened this Dec 17, 2022
@altendky

Copy link
Copy Markdown
ContributorAuthor

I haven't managed to recreate the hangs locally yet, so I guess I'll try to debug here in CI.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_1self.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_completereturn future.result()
File "/Users/runner/work/uvloop/uvloop/tests/test_unix.py", line 591, in start_serverawait 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_forraise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

kick ci

@altendkyaltendky reopened this Dec 18, 2022
@altendky

altendky commented Dec 18, 2022

Copy link
Copy Markdown
ContributorAuthor

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.

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.

@altendky
altendky marked this pull request as ready for review December 18, 2022 16:58
@shuuji3shuuji3 mentioned this pull request Jan 2, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

Kicking CI to make sure it is fresh.

@altendkyaltendky closed this Jan 3, 2023
@altendkyaltendky reopened this Jan 3, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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 importSSLas 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'

@altendky
altendky marked this pull request as draft January 3, 2023 15:10
@altendky

Copy link
Copy Markdown
ContributorAuthor

We constrain pyopenssl but not cryptography and this, along with their deps not being constrained, allowed for incompatible versions to get installed.

@elprans
elprans requested a review from fantixJanuary 3, 2023 19:53
@altendky
altendky marked this pull request as ready for review January 3, 2023 20:30
@altendky

Copy link
Copy Markdown
ContributorAuthor

kicking ci for a fresh run

@altendkyaltendky reopened this Jan 12, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 66 not greater than or equal to 69

@altendkyaltendky reopened this Jan 12, 2023

@fantixfantix left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I think the failing test on 3.11 is related to #471 and I'll try to fix it there.

@fantix
fantix merged commit 7783f1c into MagicStack:masterJan 15, 2023
fantix added a commit that referenced this pull request Oct 12, 2023
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
@fantixfantix mentioned this pull request Oct 12, 2023
fantix added a commit that referenced this pull request Oct 13, 2023
Changes
=======
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
* Upgrade libuv to v1.46.0 (#571)
(by @fantix in 2e1978c for #571)
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@altendky@fantix
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fixup CI - #520

Merged
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2
Jan 15, 2023
Merged

Fixup CI#520
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2

Conversation

@altendky

Copy link
Copy Markdown
Contributor

No description provided.

@altendky
altendky marked this pull request as draft December 17, 2022 17:33
@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

https://github.com/MagicStack/uvloop/actions/runs/3721134010/jobs/6311076170#step:7:567

self.check_plugins = plugin_manager.Checkers(local_plugins.extension)
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 357, in __init__self.namespace, local_plugins=local_plugins
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 238, in __init__self._load_entrypoint_plugins()
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 254, in _load_entrypoint_plugins
eps = importlib_metadata.entry_points().get(self.namespace, ())
AttributeError: 'EntryPoints' object has no attribute 'get'

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

Kick ci

@altendkyaltendky reopened this Dec 17, 2022
@altendky

Copy link
Copy Markdown
ContributorAuthor

I haven't managed to recreate the hangs locally yet, so I guess I'll try to debug here in CI.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_1self.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_completereturn future.result()
File "/Users/runner/work/uvloop/uvloop/tests/test_unix.py", line 591, in start_serverawait 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_forraise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

kick ci

@altendkyaltendky reopened this Dec 18, 2022
@altendky

altendky commented Dec 18, 2022

Copy link
Copy Markdown
ContributorAuthor

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.

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.

@altendky
altendky marked this pull request as ready for review December 18, 2022 16:58
@shuuji3shuuji3 mentioned this pull request Jan 2, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

Kicking CI to make sure it is fresh.

@altendkyaltendky closed this Jan 3, 2023
@altendkyaltendky reopened this Jan 3, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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 importSSLas 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'

@altendky
altendky marked this pull request as draft January 3, 2023 15:10
@altendky

Copy link
Copy Markdown
ContributorAuthor

We constrain pyopenssl but not cryptography and this, along with their deps not being constrained, allowed for incompatible versions to get installed.

@elprans
elprans requested a review from fantixJanuary 3, 2023 19:53
@altendky
altendky marked this pull request as ready for review January 3, 2023 20:30
@altendky

Copy link
Copy Markdown
ContributorAuthor

kicking ci for a fresh run

@altendkyaltendky reopened this Jan 12, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 66 not greater than or equal to 69

@altendkyaltendky reopened this Jan 12, 2023

@fantixfantix left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I think the failing test on 3.11 is related to #471 and I'll try to fix it there.

@fantix
fantix merged commit 7783f1c into MagicStack:masterJan 15, 2023
fantix added a commit that referenced this pull request Oct 12, 2023
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
@fantixfantix mentioned this pull request Oct 12, 2023
fantix added a commit that referenced this pull request Oct 13, 2023
Changes
=======
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
* Upgrade libuv to v1.46.0 (#571)
(by @fantix in 2e1978c for #571)
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@altendky@fantix
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Fixup CI - #520

Merged
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2
Jan 15, 2023
Merged

Fixup CI#520
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2

Conversation

@altendky

Copy link
Copy Markdown
Contributor

No description provided.

@altendky
altendky marked this pull request as draft December 17, 2022 17:33
@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

https://github.com/MagicStack/uvloop/actions/runs/3721134010/jobs/6311076170#step:7:567

self.check_plugins = plugin_manager.Checkers(local_plugins.extension)
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 357, in __init__self.namespace, local_plugins=local_plugins
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 238, in __init__self._load_entrypoint_plugins()
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 254, in _load_entrypoint_plugins
eps = importlib_metadata.entry_points().get(self.namespace, ())
AttributeError: 'EntryPoints' object has no attribute 'get'

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

Kick ci

@altendkyaltendky reopened this Dec 17, 2022
@altendky

Copy link
Copy Markdown
ContributorAuthor

I haven't managed to recreate the hangs locally yet, so I guess I'll try to debug here in CI.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_1self.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_completereturn future.result()
File "/Users/runner/work/uvloop/uvloop/tests/test_unix.py", line 591, in start_serverawait 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_forraise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

kick ci

@altendkyaltendky reopened this Dec 18, 2022
@altendky

altendky commented Dec 18, 2022

Copy link
Copy Markdown
ContributorAuthor

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.

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.

@altendky
altendky marked this pull request as ready for review December 18, 2022 16:58
@shuuji3shuuji3 mentioned this pull request Jan 2, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

Kicking CI to make sure it is fresh.

@altendkyaltendky closed this Jan 3, 2023
@altendkyaltendky reopened this Jan 3, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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 importSSLas 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'

@altendky
altendky marked this pull request as draft January 3, 2023 15:10
@altendky

Copy link
Copy Markdown
ContributorAuthor

We constrain pyopenssl but not cryptography and this, along with their deps not being constrained, allowed for incompatible versions to get installed.

@elprans
elprans requested a review from fantixJanuary 3, 2023 19:53
@altendky
altendky marked this pull request as ready for review January 3, 2023 20:30
@altendky

Copy link
Copy Markdown
ContributorAuthor

kicking ci for a fresh run

@altendkyaltendky reopened this Jan 12, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 66 not greater than or equal to 69

@altendkyaltendky reopened this Jan 12, 2023

@fantixfantix left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I think the failing test on 3.11 is related to #471 and I'll try to fix it there.

@fantix
fantix merged commit 7783f1c into MagicStack:masterJan 15, 2023
fantix added a commit that referenced this pull request Oct 12, 2023
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
@fantixfantix mentioned this pull request Oct 12, 2023
fantix added a commit that referenced this pull request Oct 13, 2023
Changes
=======
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
* Upgrade libuv to v1.46.0 (#571)
(by @fantix in 2e1978c for #571)
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@altendky@fantix
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fixup CI - #520

Merged
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2
Jan 15, 2023
Merged

Fixup CI#520
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2

Conversation

@altendky

Copy link
Copy Markdown
Contributor

No description provided.

@altendky
altendky marked this pull request as draft December 17, 2022 17:33
@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

https://github.com/MagicStack/uvloop/actions/runs/3721134010/jobs/6311076170#step:7:567

self.check_plugins = plugin_manager.Checkers(local_plugins.extension)
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 357, in __init__self.namespace, local_plugins=local_plugins
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 238, in __init__self._load_entrypoint_plugins()
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 254, in _load_entrypoint_plugins
eps = importlib_metadata.entry_points().get(self.namespace, ())
AttributeError: 'EntryPoints' object has no attribute 'get'

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

Kick ci

@altendkyaltendky reopened this Dec 17, 2022
@altendky

Copy link
Copy Markdown
ContributorAuthor

I haven't managed to recreate the hangs locally yet, so I guess I'll try to debug here in CI.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_1self.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_completereturn future.result()
File "/Users/runner/work/uvloop/uvloop/tests/test_unix.py", line 591, in start_serverawait 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_forraise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

kick ci

@altendkyaltendky reopened this Dec 18, 2022
@altendky

altendky commented Dec 18, 2022

Copy link
Copy Markdown
ContributorAuthor

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.

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.

@altendky
altendky marked this pull request as ready for review December 18, 2022 16:58
@shuuji3shuuji3 mentioned this pull request Jan 2, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

Kicking CI to make sure it is fresh.

@altendkyaltendky closed this Jan 3, 2023
@altendkyaltendky reopened this Jan 3, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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 importSSLas 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'

@altendky
altendky marked this pull request as draft January 3, 2023 15:10
@altendky

Copy link
Copy Markdown
ContributorAuthor

We constrain pyopenssl but not cryptography and this, along with their deps not being constrained, allowed for incompatible versions to get installed.

@elprans
elprans requested a review from fantixJanuary 3, 2023 19:53
@altendky
altendky marked this pull request as ready for review January 3, 2023 20:30
@altendky

Copy link
Copy Markdown
ContributorAuthor

kicking ci for a fresh run

@altendkyaltendky reopened this Jan 12, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 66 not greater than or equal to 69

@altendkyaltendky reopened this Jan 12, 2023

@fantixfantix left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I think the failing test on 3.11 is related to #471 and I'll try to fix it there.

@fantix
fantix merged commit 7783f1c into MagicStack:masterJan 15, 2023
fantix added a commit that referenced this pull request Oct 12, 2023
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
@fantixfantix mentioned this pull request Oct 12, 2023
fantix added a commit that referenced this pull request Oct 13, 2023
Changes
=======
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
* Upgrade libuv to v1.46.0 (#571)
(by @fantix in 2e1978c for #571)
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@altendky@fantix
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fixup CI - #520

Merged
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2
Jan 15, 2023
Merged

Fixup CI#520
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2

Conversation

@altendky

Copy link
Copy Markdown
Contributor

No description provided.

@altendky
altendky marked this pull request as draft December 17, 2022 17:33
@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

https://github.com/MagicStack/uvloop/actions/runs/3721134010/jobs/6311076170#step:7:567

self.check_plugins = plugin_manager.Checkers(local_plugins.extension)
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 357, in __init__self.namespace, local_plugins=local_plugins
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 238, in __init__self._load_entrypoint_plugins()
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 254, in _load_entrypoint_plugins
eps = importlib_metadata.entry_points().get(self.namespace, ())
AttributeError: 'EntryPoints' object has no attribute 'get'

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

Kick ci

@altendkyaltendky reopened this Dec 17, 2022
@altendky

Copy link
Copy Markdown
ContributorAuthor

I haven't managed to recreate the hangs locally yet, so I guess I'll try to debug here in CI.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_1self.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_completereturn future.result()
File "/Users/runner/work/uvloop/uvloop/tests/test_unix.py", line 591, in start_serverawait 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_forraise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

kick ci

@altendkyaltendky reopened this Dec 18, 2022
@altendky

altendky commented Dec 18, 2022

Copy link
Copy Markdown
ContributorAuthor

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.

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.

@altendky
altendky marked this pull request as ready for review December 18, 2022 16:58
@shuuji3shuuji3 mentioned this pull request Jan 2, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

Kicking CI to make sure it is fresh.

@altendkyaltendky closed this Jan 3, 2023
@altendkyaltendky reopened this Jan 3, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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 importSSLas 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'

@altendky
altendky marked this pull request as draft January 3, 2023 15:10
@altendky

Copy link
Copy Markdown
ContributorAuthor

We constrain pyopenssl but not cryptography and this, along with their deps not being constrained, allowed for incompatible versions to get installed.

@elprans
elprans requested a review from fantixJanuary 3, 2023 19:53
@altendky
altendky marked this pull request as ready for review January 3, 2023 20:30
@altendky

Copy link
Copy Markdown
ContributorAuthor

kicking ci for a fresh run

@altendkyaltendky reopened this Jan 12, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 66 not greater than or equal to 69

@altendkyaltendky reopened this Jan 12, 2023

@fantixfantix left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I think the failing test on 3.11 is related to #471 and I'll try to fix it there.

@fantix
fantix merged commit 7783f1c into MagicStack:masterJan 15, 2023
fantix added a commit that referenced this pull request Oct 12, 2023
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
@fantixfantix mentioned this pull request Oct 12, 2023
fantix added a commit that referenced this pull request Oct 13, 2023
Changes
=======
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
* Upgrade libuv to v1.46.0 (#571)
(by @fantix in 2e1978c for #571)
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@altendky@fantix
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Fixup CI - #520

Merged
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2
Jan 15, 2023
Merged

Fixup CI#520
fantix merged 23 commits into
MagicStack:masterfrom
altendky:patch-2

Conversation

@altendky

Copy link
Copy Markdown
Contributor

No description provided.

@altendky
altendky marked this pull request as draft December 17, 2022 17:33
@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

https://github.com/MagicStack/uvloop/actions/runs/3721134010/jobs/6311076170#step:7:567

self.check_plugins = plugin_manager.Checkers(local_plugins.extension)
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 357, in __init__self.namespace, local_plugins=local_plugins
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 238, in __init__self._load_entrypoint_plugins()
File "/Users/runner/hostedtoolcache/Python/3.7.15/x64/lib/python3.7/site-packages/flake8/plugins/manager.py", line 254, in _load_entrypoint_plugins
eps = importlib_metadata.entry_points().get(self.namespace, ())
AttributeError: 'EntryPoints' object has no attribute 'get'

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

altendky commented Dec 17, 2022

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

Kick ci

@altendkyaltendky reopened this Dec 17, 2022
@altendky

Copy link
Copy Markdown
ContributorAuthor

I haven't managed to recreate the hangs locally yet, so I guess I'll try to debug here in CI.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_1self.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_completereturn future.result()
File "/Users/runner/work/uvloop/uvloop/tests/test_unix.py", line 591, in start_serverawait 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_forraise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError

@altendky

Copy link
Copy Markdown
ContributorAuthor

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.

@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 65 not greater than or equal to 69

@altendky

Copy link
Copy Markdown
ContributorAuthor

kick ci

@altendkyaltendky reopened this Dec 18, 2022
@altendky

altendky commented Dec 18, 2022

Copy link
Copy Markdown
ContributorAuthor

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.

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.

@altendky
altendky marked this pull request as ready for review December 18, 2022 16:58
@shuuji3shuuji3 mentioned this pull request Jan 2, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

Kicking CI to make sure it is fresh.

@altendkyaltendky closed this Jan 3, 2023
@altendkyaltendky reopened this Jan 3, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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 importSSLas 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'

@altendky
altendky marked this pull request as draft January 3, 2023 15:10
@altendky

Copy link
Copy Markdown
ContributorAuthor

We constrain pyopenssl but not cryptography and this, along with their deps not being constrained, allowed for incompatible versions to get installed.

@elprans
elprans requested a review from fantixJanuary 3, 2023 19:53
@altendky
altendky marked this pull request as ready for review January 3, 2023 20:30
@altendky

Copy link
Copy Markdown
ContributorAuthor

kicking ci for a fresh run

@altendkyaltendky reopened this Jan 12, 2023
@altendky

Copy link
Copy Markdown
ContributorAuthor

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_roundingself.assertGreaterEqual(finished - started, 69)
AssertionError: 66 not greater than or equal to 69

@altendkyaltendky reopened this Jan 12, 2023

@fantixfantix left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I think the failing test on 3.11 is related to #471 and I'll try to fix it there.

@fantix
fantix merged commit 7783f1c into MagicStack:masterJan 15, 2023
fantix added a commit that referenced this pull request Oct 12, 2023
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
@fantixfantix mentioned this pull request Oct 12, 2023
fantix added a commit that referenced this pull request Oct 13, 2023
Changes
=======
* Port uvloop to Python 3.12 (#570)
(by @1st1, @fantix in 9f82bd7 for #569)
* Upgrade libuv to v1.46.0 (#571)
(by @fantix in 2e1978c for #571)
Fixes
=====
* CI fixes (#520, #553)
(by @altendky in 7783f1c, @dulmandakh in 1dd40f1)
* Make extract_stack resilient to lacking frames. (#563)
(by @jhance in 0687643 for #563)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@altendky@fantix