From 76f2c6d58187ee263b7df5db8eb8dc6829458c3e Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Thu, 10 Nov 2022 12:09:38 +0000 Subject: [PATCH 1/3] upgrade to tornado 6.2 Co-Authored-By: Lawrence Mitchell --- continuous_integration/environment-3.10.yaml | 2 +- continuous_integration/environment-3.8.yaml | 2 +- continuous_integration/environment-3.9.yaml | 2 +- requirements.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/continuous_integration/environment-3.10.yaml b/continuous_integration/environment-3.10.yaml index e5549dd19d..8cc9615cda 100644 --- a/continuous_integration/environment-3.10.yaml +++ b/continuous_integration/environment-3.10.yaml @@ -38,7 +38,7 @@ dependencies: - sortedcollections - tblib - toolz - - tornado<6.2 + - tornado >=6.2 - zict # overridden by git tip below - zstandard >=0.9.0 - pip: diff --git a/continuous_integration/environment-3.8.yaml b/continuous_integration/environment-3.8.yaml index 353be57689..fa5cbefe96 100644 --- a/continuous_integration/environment-3.8.yaml +++ b/continuous_integration/environment-3.8.yaml @@ -41,7 +41,7 @@ dependencies: - sortedcollections - tblib - toolz - - tornado<6.2 + - tornado >=6.2 - zict - zstandard >=0.9.0 - pip: diff --git a/continuous_integration/environment-3.9.yaml b/continuous_integration/environment-3.9.yaml index 46362af94b..dfd82c00f0 100644 --- a/continuous_integration/environment-3.9.yaml +++ b/continuous_integration/environment-3.9.yaml @@ -44,7 +44,7 @@ dependencies: - tblib - toolz - torchvision # Only tested here - - tornado<6.2 + - tornado >=6.2 - zict - zstandard >=0.9.0 - pip: diff --git a/requirements.txt b/requirements.txt index 6d0f0cdbca..8e7f7180b0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,7 +9,7 @@ psutil >= 5.0 sortedcontainers !=2.0.0, !=2.0.1 tblib >= 1.6.0 toolz >= 0.10.0 -tornado >= 6.0.3, <6.2 +tornado >= 6.0.3 urllib3 zict >= 0.1.3 pyyaml From 9f89068f1dde4afa0bfd2677f7e377cf4878edde Mon Sep 17 00:00:00 2001 From: Lawrence Mitchell Date: Thu, 13 Oct 2022 10:49:18 +0100 Subject: [PATCH 2/3] Filter implicit deprecation warnings from tornado as well tornado 6.2 deprecates functionality that relies on deprecated asyncio calls (get_event_loop and friends); a few tests still use a pattern of implicitly creating a new loop (and test that appropriate deprecation warnings are uttered), so just catch these new tornado warnings for now, until the functionality is removed in distributed. --- distributed/deploy/tests/test_adaptive.py | 1 + distributed/deploy/tests/test_spec_cluster.py | 1 + distributed/tests/test_client.py | 4 ++++ distributed/tests/test_client_loop.py | 2 ++ distributed/tests/test_utils.py | 2 ++ 5 files changed, 10 insertions(+) diff --git a/distributed/deploy/tests/test_adaptive.py b/distributed/deploy/tests/test_adaptive.py index d88615a756..59ec50eaab 100644 --- a/distributed/deploy/tests/test_adaptive.py +++ b/distributed/deploy/tests/test_adaptive.py @@ -281,6 +281,7 @@ async def test_no_more_workers_than_tasks(): @pytest.mark.filterwarnings("ignore:There is no current event loop:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:make_current is deprecated:DeprecationWarning") def test_basic_no_loop(cleanup): loop = None try: diff --git a/distributed/deploy/tests/test_spec_cluster.py b/distributed/deploy/tests/test_spec_cluster.py index 31b95e2802..e0e7301fcf 100644 --- a/distributed/deploy/tests/test_spec_cluster.py +++ b/distributed/deploy/tests/test_spec_cluster.py @@ -83,6 +83,7 @@ def test_spec_sync(loop): @pytest.mark.filterwarnings("ignore:There is no current event loop:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:make_current is deprecated:DeprecationWarning") def test_loop_started_in_constructor(cleanup): # test that SpecCluster.__init__ starts a loop in another thread cluster = SpecCluster(worker_spec, scheduler=scheduler, loop=None) diff --git a/distributed/tests/test_client.py b/distributed/tests/test_client.py index 590fc13fd7..85e28262e7 100644 --- a/distributed/tests/test_client.py +++ b/distributed/tests/test_client.py @@ -2889,6 +2889,7 @@ async def test_startup_close_startup(s, a, b): @pytest.mark.filterwarnings("ignore:There is no current event loop:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:make_current is deprecated:DeprecationWarning") def test_startup_close_startup_sync(loop): with cluster() as (s, [a, b]): with Client(s["address"], loop=loop) as c: @@ -5613,6 +5614,8 @@ async def test_future_auto_inform(c, s, a, b): @pytest.mark.filterwarnings("ignore:There is no current event loop:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:make_current is deprecated:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:clear_current is deprecated:DeprecationWarning") def test_client_async_before_loop_starts(cleanup): async def close(): async with client: @@ -6924,6 +6927,7 @@ async def test_workers_collection_restriction(c, s, a, b): @pytest.mark.filterwarnings("ignore:There is no current event loop:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:make_current is deprecated:DeprecationWarning") @gen_cluster(client=True, nthreads=[("127.0.0.1", 1)]) async def test_get_client_functions_spawn_clusters(c, s, a): # see gh4565 diff --git a/distributed/tests/test_client_loop.py b/distributed/tests/test_client_loop.py index 35bb3a7e86..9d8316cdd0 100644 --- a/distributed/tests/test_client_loop.py +++ b/distributed/tests/test_client_loop.py @@ -30,6 +30,7 @@ def _check_cluster_and_client_loop(loop): # Test if Client stops LoopRunner on close. @pytest.mark.filterwarnings("ignore:There is no current event loop:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:make_current is deprecated:DeprecationWarning") def test_close_loop_sync_start_new_loop(cleanup): with _check_loop_runner(): _check_cluster_and_client_loop(loop=None) @@ -37,6 +38,7 @@ def test_close_loop_sync_start_new_loop(cleanup): # Test if Client stops LoopRunner on close. @pytest.mark.filterwarnings("ignore:There is no current event loop:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:make_current is deprecated:DeprecationWarning") def test_close_loop_sync_use_running_loop(cleanup): with _check_loop_runner(): # Start own loop or use current thread's one. diff --git a/distributed/tests/test_utils.py b/distributed/tests/test_utils.py index 853ba578f1..b2dae76fdb 100644 --- a/distributed/tests/test_utils.py +++ b/distributed/tests/test_utils.py @@ -405,6 +405,7 @@ def assert_not_running(loop): @pytest.mark.filterwarnings("ignore:There is no current event loop:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:make_current is deprecated:DeprecationWarning") def test_loop_runner(loop_in_thread): # Implicit loop loop = IOLoop() @@ -488,6 +489,7 @@ def test_loop_runner(loop_in_thread): @pytest.mark.filterwarnings("ignore:There is no current event loop:DeprecationWarning") +@pytest.mark.filterwarnings("ignore:make_current is deprecated:DeprecationWarning") def test_two_loop_runners(loop_in_thread): # Loop runners tied to the same loop should cooperate From fd74414f63d95f54bfcc25112b9d5b7d7f3168a8 Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Thu, 10 Nov 2022 15:01:59 +0000 Subject: [PATCH 3/3] get loop from fixture --- distributed/tests/test_client.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/distributed/tests/test_client.py b/distributed/tests/test_client.py index 85e28262e7..a063dd4eea 100644 --- a/distributed/tests/test_client.py +++ b/distributed/tests/test_client.py @@ -6593,9 +6593,9 @@ async def test_as_completed_condition_loop(c, s, a, b): sys.version_info >= (3, 10), reason="On Py3.10+ semaphore._loop is not bound until .acquire() blocks", ) -def test_client_connectionpool_semaphore_loop(s, a, b): - with Client(s["address"]) as c: - assert c.rpc.semaphore._loop is c.loop.asyncio_loop +def test_client_connectionpool_semaphore_loop(s, a, b, loop): + with Client(s["address"], loop=loop) as c: + assert c.rpc.semaphore._loop is loop.asyncio_loop @pytest.mark.slow