Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MAINT: remove pytest.warns(None) warnings in pytest 7 #1264

Merged
merged 5 commits into from Sep 16, 2022

Conversation

tomMoral
Copy link
Contributor

@tomMoral tomMoral commented Feb 7, 2022

try to see if we can use pytest7 by removing warns(None).

@codecov
Copy link

codecov bot commented Feb 7, 2022

Codecov Report

Base: 94.00% // Head: 94.00% // Increases project coverage by +0.00% 🎉

Coverage data is based on head (d54d1be) compared to base (ac4ebd5).
Patch coverage: 93.33% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1264   +/-   ##
=======================================
  Coverage   94.00%   94.00%           
=======================================
  Files          52       52           
  Lines        7294     7295    +1     
=======================================
+ Hits         6857     6858    +1     
  Misses        437      437           
Impacted Files Coverage Δ
joblib/test/test_dask.py 91.19% <50.00%> (+0.03%) ⬆️
joblib/test/test_numpy_pickle.py 94.10% <100.00%> (ø)
joblib/test/test_parallel.py 97.05% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@ogrisel
Copy link
Contributor

ogrisel commented Feb 7, 2022

I merged master to hope for a green CI. If this is the case, then +1 for merge on my side.

@ogrisel
Copy link
Contributor

ogrisel commented Feb 8, 2022

There is a seemingly reproducible failure in test_nested_loop_error_in_grandchild_resource_tracker_silent on linux_py38_distributed that I could not trigger in #1263 but that does not seem related to this PR...

UserWarning: resource_tracker: There appear to be 1 leaked semlock objects to clean up at shutdown

Edit: in retrospect test_nested_loop_error_in_grandchild_resource_tracker_silent does not seem related to the fixes in #1263 either.

@tomMoral
Copy link
Contributor Author

tomMoral commented Feb 8, 2022

I think this is the bug I triggered in #588 and I fixed it there so if th CI is green, I would merge this one.

@ogrisel ogrisel mentioned this pull request Feb 8, 2022
@tomMoral
Copy link
Contributor Author

tomMoral commented Feb 8, 2022

Ok it does not seem a flaky one.
Also, I get some hanging with pytest -vl joblib/test/test_parallel.py::test_nested_parallel_warnings[loky-loky-False] on local.

Let's not merge this one but see if the refactoring in #588 can fix this?

@ogrisel
Copy link
Contributor

ogrisel commented Feb 8, 2022

Maybe we need to insert warnings.simplefilter("always") each time:

with warnings.catch_warnings(record=True) as record:
    warnings.simplefilter("always")
    ...

as documented in https://docs.python.org/3/library/warnings.html#testing-warnings ?

@ogrisel
Copy link
Contributor

ogrisel commented Feb 23, 2022

I rebased on master with the new version of loky (3.1.0). In retrospect I should have merged instead of rebasing to get the old CI logs but that's too late...

@ogrisel
Copy link
Contributor

ogrisel commented Feb 23, 2022

I can reproduce the freeze locally and use fault handler to debug:

diff --git a/conftest.py b/conftest.py
index e246e95..68e58b8 100644
--- a/conftest.py
+++ b/conftest.py
@@ -51,6 +51,12 @@ def pytest_configure(config):
         log = mp.util.log_to_stderr(logging.DEBUG)
         log.handlers[0].setFormatter(logging.Formatter(
             '[%(levelname)s:%(processName)s:%(threadName)s] %(message)s'))
+    import faulthandler
+    import signal, os
+    faulthandler.register(signal.SIGUSR1)
+    print(
+        f"Installed faulthandler, trigger with: kill -{signal.SIGUSR1} {os.getpid()}"
+    )
 
 
 def pytest_unconfigure(config):

Need to launch pytest without stdout/stderr capture (-s flag):

pytest -svl "joblib/test/test_parallel.py::test_nested_parallel_warnings[loky-loky-False]"
[...]
==================================================================== 1 passed in 1.22s ====================================================================
[DEBUG:MainProcess:MainThread] Interpreter shutting down. Waking up executor_manager_thread [(<_ExecutorManagerThread(ExecutorManagerThread, started 6173569024)>, (<unlocked _thread.lock object at 0x11b66ac00>, <joblib.externals.loky.process_executor._ThreadWakeup object at 0x11b798a00>))]
[DEBUG:MainProcess:ExecutorManagerThread] closing call_queue
[DEBUG:MainProcess:ExecutorManagerThread] telling queue thread to quit
[DEBUG:MainProcess:ExecutorManagerThread] Queue.join_thread()
[DEBUG:MainProcess:ExecutorManagerThread] closing result_queue
[DEBUG:MainProcess:ExecutorManagerThread] closing thread_wakeup
[DEBUG:MainProcess:ExecutorManagerThread] joining processes
[DEBUG:MainProcess:QueueFeederThread] feeder thread got sentinel -- exiting
[INFO:LokyProcess-1:MainThread] Shutting down worker on sentinel
[DEBUG:LokyProcess-1:MainThread] Exited cleanly
[INFO:LokyProcess-1:MainThread] process shutting down
[DEBUG:LokyProcess-1:MainThread] running all "atexit" finalizers with priority >= 0
[DEBUG:LokyProcess-1:MainThread] telling queue thread to quit
[DEBUG:LokyProcess-1:QueueFeederThread] feeder thread got sentinel -- exiting
[INFO:LokyProcess-1:MainThread] calling join() for process LokyProcess-1:1
[INFO:LokyProcess-2:MainThread] Shutting down worker on sentinel
[DEBUG:LokyProcess-2:MainThread] Exited cleanly
[INFO:LokyProcess-2:MainThread] process shutting down
[DEBUG:LokyProcess-2:MainThread] running all "atexit" finalizers with priority >= 0
[DEBUG:LokyProcess-2:MainThread] telling queue thread to quit
[INFO:LokyProcess-2:MainThread] calling join() for process LokyProcess-2:2
[DEBUG:LokyProcess-2:QueueFeederThread] feeder thread got sentinel -- exiting
[DEBUG:LokyProcess-1:2:MainThread] psutil return memory size: 95158272
[DEBUG:LokyProcess-2:1:MainThread] psutil return memory size: 89489408
Thread 0x000000016ff93000 (most recent call first):
  File "/Users/ogrisel/code/joblib/joblib/externals/loky/backend/popen_loky_posix.py", line 56 in poll
  File "/Users/ogrisel/code/joblib/joblib/externals/loky/backend/popen_loky_posix.py", line 77 in wait
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/multiprocessing/process.py", line 149 in join
  File "/Users/ogrisel/code/joblib/joblib/externals/loky/process_executor.py", line 819 in join_executor_internals
  File "/Users/ogrisel/code/joblib/joblib/externals/loky/process_executor.py", line 564 in run
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 973 in _bootstrap_inner
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 930 in _bootstrap

Thread 0x000000016ef87000 (most recent call first):
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/concurrent/futures/thread.py", line 75 in _worker
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 910 in run
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 973 in _bootstrap_inner
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 930 in _bootstrap

Current thread 0x0000000103484580 (most recent call first):
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 1069 in _wait_for_tstate_lock
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 1053 in join
  File "/Users/ogrisel/code/joblib/joblib/externals/loky/process_executor.py", line 193 in _python_exit
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 1435 in _shutdown

@ogrisel
Copy link
Contributor

ogrisel commented Feb 23, 2022

So the executor manager thread of a nested ThreadPoolExecutor is waiting on a worker thread that never completes. And the interpreter exit of the main thread is probably joining on the dangling executor manager thread. Hence the deadlock.

This might be a race-condition in concurrent.future.ThreadPoolExecutor...

Edit: this is wrong, the executor manager thread does not come from ThreadPoolExecutor, it comes from loky process_executor.py. Actually I don't understand why we have this thread in the deadlock of the main process:

Thread 0x000000016ef87000 (most recent call first):
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/concurrent/futures/thread.py", line 75 in _worker

why would we have a threadpool worker in the main process?

@ogrisel
Copy link
Contributor

ogrisel commented Feb 23, 2022

Note that I after I terminated my process with control C, I got the following output that did show up in my terminal 5 min later (the process was probably zombified in the background):

[INFO:LokyProcess-1:1:MainThread] Shutting down worker after timeout 300.000s
[DEBUG:LokyProcess-1:1:MainThread] Exited cleanly
[INFO:LokyProcess-1:1:MainThread] process shutting down
[DEBUG:LokyProcess-1:1:MainThread] running all "atexit" finalizers with priority >= 0
[DEBUG:LokyProcess-1:1:MainThread] running the remaining "atexit" finalizers
[INFO:LokyProcess-1:1:MainThread] process exiting with exitcode 0
[INFO:LokyProcess-1:2:MainThread] Shutting down worker after timeout 300.000s
[INFO:LokyProcess-2:2:MainThread] Shutting down worker after timeout 300.000s
[INFO:LokyProcess-2:1:MainThread] Shutting down worker after timeout 300.000s
[DEBUG:LokyProcess-2:2:MainThread] Exited cleanly
[INFO:LokyProcess-2:2:MainThread] process shutting down
[DEBUG:LokyProcess-2:2:MainThread] running all "atexit" finalizers with priority >= 0
[DEBUG:LokyProcess-2:2:MainThread] running the remaining "atexit" finalizers
[INFO:LokyProcess-2:2:MainThread] process exiting with exitcode 0
[INFO:LokyProcess-1:MainThread] calling join() for process LokyProcess-1:2
[DEBUG:LokyProcess-1:2:MainThread] Exited cleanly
[INFO:LokyProcess-1:2:MainThread] process shutting down
[DEBUG:LokyProcess-1:2:MainThread] running all "atexit" finalizers with priority >= 0
[DEBUG:LokyProcess-1:2:MainThread] running the remaining "atexit" finalizers
[INFO:LokyProcess-1:2:MainThread] process exiting with exitcode 0
[DEBUG:LokyProcess-2:1:MainThread] Exited cleanly
[INFO:LokyProcess-2:1:MainThread] process shutting down
[DEBUG:LokyProcess-2:1:MainThread] running all "atexit" finalizers with priority >= 0
[DEBUG:LokyProcess-2:1:MainThread] running the remaining "atexit" finalizers
[INFO:LokyProcess-2:1:MainThread] process exiting with exitcode 0
[DEBUG:LokyProcess-1:MainThread] running the remaining "atexit" finalizers
[DEBUG:LokyProcess-1:MainThread] Interpreter shutting down. Waking up executor_manager_thread [(<_ExecutorManagerThread(ExecutorManagerThread, started 6198784000)>, (<unlocked _thread.lock object at 0x118371d50>, <joblib.externals.loky.process_executor._ThreadWakeup object at 0x118495760>))]
[DEBUG:LokyProcess-1:ExecutorManagerThread] closing call_queue
[DEBUG:LokyProcess-1:ExecutorManagerThread] Queue.join_thread()
[DEBUG:LokyProcess-1:ExecutorManagerThread] closing result_queue
[DEBUG:LokyProcess-1:ExecutorManagerThread] closing thread_wakeup
[DEBUG:LokyProcess-1:ExecutorManagerThread] joining processes
[DEBUG:LokyProcess-1:ExecutorManagerThread] executor management thread clean shutdown of worker processes: []
[INFO:LokyProcess-1:MainThread] process exiting with exitcode 0
[INFO:LokyProcess-2:MainThread] calling join() for process LokyProcess-2:2
[DEBUG:LokyProcess-2:MainThread] running the remaining "atexit" finalizers
[DEBUG:LokyProcess-2:MainThread] Interpreter shutting down. Waking up executor_manager_thread [(<_ExecutorManagerThread(ExecutorManagerThread, started 6195785728)>, (<unlocked _thread.lock object at 0x10f955f90>, <joblib.externals.loky.process_executor._ThreadWakeup object at 0x10fa79760>))]
[DEBUG:LokyProcess-2:ExecutorManagerThread] closing call_queue
[DEBUG:LokyProcess-2:ExecutorManagerThread] Queue.join_thread()
[DEBUG:LokyProcess-2:ExecutorManagerThread] closing result_queue
[DEBUG:LokyProcess-2:ExecutorManagerThread] closing thread_wakeup
[DEBUG:LokyProcess-2:ExecutorManagerThread] joining processes
[DEBUG:LokyProcess-2:ExecutorManagerThread] executor management thread clean shutdown of worker processes: []
[INFO:LokyProcess-2:MainThread] process exiting with exitcode 0
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:310: UserWarning: resource_tracker: There appear to be 8 leaked semlock objects to clean up at shutdown
  warnings.warn(
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:310: UserWarning: resource_tracker: There appear to be 4 leaked folder objects to clean up at shutdown
  warnings.warn(
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:326: UserWarning: resource_tracker: /var/folders/_y/lfnx34p13w3_sr2k12bjb05w0000gn/T/joblib_memmapping_folder_50284_b465754505ba481e8f8a69dbb99c51b9_8a51cc37ceaa460d956f5bef7b8c810b: FileNotFoundError(2, 'No such file or directory')
  warnings.warn(f'resource_tracker: {name}: {e!r}')
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:326: UserWarning: resource_tracker: /var/folders/_y/lfnx34p13w3_sr2k12bjb05w0000gn/T/joblib_memmapping_folder_50284_b465754505ba481e8f8a69dbb99c51b9_189555705ddc458b8d0627bdbdb463a3: FileNotFoundError(2, 'No such file or directory')
  warnings.warn(f'resource_tracker: {name}: {e!r}')
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:326: UserWarning: resource_tracker: /var/folders/_y/lfnx34p13w3_sr2k12bjb05w0000gn/T/joblib_memmapping_folder_50284_a5616fafee724589ae0f53627e8b3b78_bd2373b7443e47f3aa13862127cb4eae: FileNotFoundError(2, 'No such file or directory')
  warnings.warn(f'resource_tracker: {name}: {e!r}')
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:326: UserWarning: resource_tracker: /var/folders/_y/lfnx34p13w3_sr2k12bjb05w0000gn/T/joblib_memmapping_folder_50284_b465754505ba481e8f8a69dbb99c51b9_a4343626dfae433d8f091c0c8a8af9ea: FileNotFoundError(2, 'No such file or directory')
  warnings.warn(f'resource_tracker: {name}: {e!r}')
[INFO:LokyProcess-1:1:MainThread] Shutting down worker after timeout 300.000s
[INFO:LokyProcess-2:2:MainThread] Shutting down worker after timeout 300.000s
[DEBUG:LokyProcess-1:1:MainThread] Exited cleanly
[INFO:LokyProcess-1:1:MainThread] process shutting down
[DEBUG:LokyProcess-1:1:MainThread] running all "atexit" finalizers with priority >= 0
[DEBUG:LokyProcess-1:1:MainThread] running the remaining "atexit" finalizers
[INFO:LokyProcess-1:1:MainThread] process exiting with exitcode 0
[DEBUG:LokyProcess-2:2:MainThread] Exited cleanly
[INFO:LokyProcess-2:2:MainThread] process shutting down
[DEBUG:LokyProcess-2:2:MainThread] running all "atexit" finalizers with priority >= 0
[DEBUG:LokyProcess-2:2:MainThread] running the remaining "atexit" finalizers
[INFO:LokyProcess-2:2:MainThread] process exiting with exitcode 0
[INFO:LokyProcess-1:2:MainThread] Shutting down worker after timeout 300.000s
[INFO:LokyProcess-2:1:MainThread] Shutting down worker after timeout 300.000s
[INFO:LokyProcess-2:MainThread] calling join() for process LokyProcess-2:1
[INFO:LokyProcess-1:MainThread] calling join() for process LokyProcess-1:2
[DEBUG:LokyProcess-2:1:MainThread] Exited cleanly
[DEBUG:LokyProcess-1:2:MainThread] Exited cleanly
[INFO:LokyProcess-2:1:MainThread] process shutting down
[INFO:LokyProcess-1:2:MainThread] process shutting down
[DEBUG:LokyProcess-2:1:MainThread] running all "atexit" finalizers with priority >= 0
[DEBUG:LokyProcess-2:1:MainThread] running the remaining "atexit" finalizers
[DEBUG:LokyProcess-1:2:MainThread] running all "atexit" finalizers with priority >= 0
[DEBUG:LokyProcess-1:2:MainThread] running the remaining "atexit" finalizers
[INFO:LokyProcess-2:1:MainThread] process exiting with exitcode 0
[INFO:LokyProcess-1:2:MainThread] process exiting with exitcode 0
[DEBUG:LokyProcess-1:MainThread] running the remaining "atexit" finalizers
[DEBUG:LokyProcess-2:MainThread] running the remaining "atexit" finalizers
[DEBUG:LokyProcess-2:MainThread] Interpreter shutting down. Waking up executor_manager_thread [(<_ExecutorManagerThread(ExecutorManagerThread, started 6201536512)>, (<unlocked _thread.lock object at 0x10f3c9f60>, <joblib.externals.loky.process_executor._ThreadWakeup object at 0x10f606730>))]
[DEBUG:LokyProcess-1:MainThread] Interpreter shutting down. Waking up executor_manager_thread [(<_ExecutorManagerThread(ExecutorManagerThread, started 6157889536)>, (<unlocked _thread.lock object at 0x111d99cf0>, <joblib.externals.loky.process_executor._ThreadWakeup object at 0x111fd6700>))]
[DEBUG:LokyProcess-2:ExecutorManagerThread] closing call_queue
[DEBUG:LokyProcess-1:ExecutorManagerThread] closing call_queue
[DEBUG:LokyProcess-1:ExecutorManagerThread] Queue.join_thread()
[DEBUG:LokyProcess-2:ExecutorManagerThread] Queue.join_thread()
[DEBUG:LokyProcess-1:ExecutorManagerThread] closing result_queue
[DEBUG:LokyProcess-2:ExecutorManagerThread] closing result_queue
[DEBUG:LokyProcess-1:ExecutorManagerThread] closing thread_wakeup
[DEBUG:LokyProcess-2:ExecutorManagerThread] closing thread_wakeup
[DEBUG:LokyProcess-1:ExecutorManagerThread] joining processes
[DEBUG:LokyProcess-2:ExecutorManagerThread] joining processes
[DEBUG:LokyProcess-1:ExecutorManagerThread] executor management thread clean shutdown of worker processes: []
[DEBUG:LokyProcess-2:ExecutorManagerThread] executor management thread clean shutdown of worker processes: []
[INFO:LokyProcess-1:MainThread] process exiting with exitcode 0
[INFO:LokyProcess-2:MainThread] process exiting with exitcode 0
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:310: UserWarning: resource_tracker: There appear to be 8 leaked semlock objects to clean up at shutdown
  warnings.warn(
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:310: UserWarning: resource_tracker: There appear to be 4 leaked folder objects to clean up at shutdown
  warnings.warn(
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:326: UserWarning: resource_tracker: /var/folders/_y/lfnx34p13w3_sr2k12bjb05w0000gn/T/joblib_memmapping_folder_56898_161ed69243bf42b4aa5d1cdc4d32bfa7_1fc67579d68e4330bc71767e68d1991d: FileNotFoundError(2, 'No such file or directory')
  warnings.warn(f'resource_tracker: {name}: {e!r}')
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:326: UserWarning: resource_tracker: /var/folders/_y/lfnx34p13w3_sr2k12bjb05w0000gn/T/joblib_memmapping_folder_56898_161ed69243bf42b4aa5d1cdc4d32bfa7_03ec3a44af3e4d409bcaee0756ca844e: FileNotFoundError(2, 'No such file or directory')
  warnings.warn(f'resource_tracker: {name}: {e!r}')
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:326: UserWarning: resource_tracker: /var/folders/_y/lfnx34p13w3_sr2k12bjb05w0000gn/T/joblib_memmapping_folder_56898_89197c9eb7834ab0bc87e5ca60fbc0c4_4ea6446dbd3b4416aa6565d17c882bf9: FileNotFoundError(2, 'No such file or directory')
  warnings.warn(f'resource_tracker: {name}: {e!r}')
/Users/ogrisel/code/joblib/joblib/externals/loky/backend/resource_tracker.py:326: UserWarning: resource_tracker: /var/folders/_y/lfnx34p13w3_sr2k12bjb05w0000gn/T/joblib_memmapping_folder_56898_161ed69243bf42b4aa5d1cdc4d32bfa7_1919bac327c34395a8044dc03d1a64c0: FileNotFoundError(2, 'No such file or directory')
  warnings.warn(f'resource_tracker: {name}: {e!r}')

@ogrisel
Copy link
Contributor

ogrisel commented Feb 23, 2022

Ok I added a raise RuntimeError at the beginning of the concurrent.futures.thread._worker function and got:

❯ pytest -svl "joblib/test/test_parallel.py::test_nested_parallel_warnings[loky-loky-False]"
Exception in thread Dask-Offload_0:
Traceback (most recent call last):
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 910, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/concurrent/futures/thread.py", line 64, in _worker
    raise RuntimeError()
RuntimeError

so it seems related to dask...

@ogrisel
Copy link
Contributor

ogrisel commented Feb 23, 2022

This thread is indeed related to dask. If I uninstall distributed then the pytest commands still deadlocks, but the deadlock is now simpler:

Thread 0x000000016fbb3000 (most recent call first):
  File "/Users/ogrisel/code/joblib/joblib/externals/loky/backend/popen_loky_posix.py", line 56 in poll
  File "/Users/ogrisel/code/joblib/joblib/externals/loky/backend/popen_loky_posix.py", line 77 in wait
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/multiprocessing/process.py", line 149 in join
  File "/Users/ogrisel/code/joblib/joblib/externals/loky/process_executor.py", line 819 in join_executor_internals
  File "/Users/ogrisel/code/joblib/joblib/externals/loky/process_executor.py", line 564 in run
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 973 in _bootstrap_inner
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 930 in _bootstrap

Thread 0x0000000102a30580 (most recent call first):
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 1069 in _wait_for_tstate_lock
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 1053 in join
  File "/Users/ogrisel/code/joblib/joblib/externals/loky/process_executor.py", line 193 in _python_exit
  File "/Users/ogrisel/mambaforge/envs/dev/lib/python3.9/threading.py", line 1435 in _shutdown

@lesteve lesteve changed the title FIX warnings in pytest7 FIX pytest.warns(None) warnings in pytest 7 Sep 15, 2022
@lesteve lesteve changed the title FIX pytest.warns(None) warnings in pytest 7 MAINT: remove pytest.warns(None) warnings in pytest 7 Sep 15, 2022
Copy link
Contributor

@ogrisel ogrisel left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks @tomMoral and @lesteve!

@ogrisel ogrisel merged commit 8aca6f4 into joblib:master Sep 16, 2022
Sign up for free to 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.

None yet

3 participants