forked from goodboy/tractor
1
0
Fork 0

Don't mix trip with multiprocessing for now

It seems that mixing the two backends in the test suite results in hangs
due to lingering forkservers and resource managers from
`multiprocessing`? Likely we'll need either 2 separate CI runs to work
or someway to be sure that these lingering servers are killed in between
tests.
try_trip^2
Tyler Goodlet 2020-01-24 00:55:40 -05:00
parent bc259b7eab
commit 783fe53b06
2 changed files with 12 additions and 7 deletions

View File

@ -38,7 +38,7 @@ def pytest_generate_tests(metafunc):
methods = get_all_start_methods() methods = get_all_start_methods()
if platform.system() != "Windows": if platform.system() != "Windows":
methods += ['trio_run_in_process'] methods = ['trio_run_in_process']
if 'fork' in methods: # fork not available on windows, so check before removing if 'fork' in methods: # fork not available on windows, so check before removing
# XXX: the fork method is in general incompatible with # XXX: the fork method is in general incompatible with

View File

@ -284,16 +284,21 @@ async def spawn_and_error(breadth, depth) -> None:
@tractor_test @tractor_test
async def test_nested_multierrors(loglevel, start_method): async def test_nested_multierrors(loglevel):
"""Test that failed actor sets are wrapped in `trio.MultiError`s. """Test that failed actor sets are wrapped in `trio.MultiError`s.
This test goes only 2 nurseries deep but we should eventually have tests This test goes only 2 nurseries deep but we should eventually have tests
for arbitrary n-depth actor trees. for arbitrary n-depth actor trees.
""" """
# XXX: forkserver can't seem to handle any more then 2 depth # if start_method == 'trio_run_in_process':
# process trees for whatever reason. depth = 2
# Any more process levels then this and we start getting pretty slow anyway subactor_breadth = 3
depth = 3 # else:
subactor_breadth = 2 # # XXX: multiprocessing can't seem to handle any more then 2 depth
# # process trees for whatever reason.
# # Any more process levels then this and we see bugs that cause
# # hangs and broken pipes all over the place...
# depth = 1
# subactor_breadth = 2
with trio.fail_after(120): with trio.fail_after(120):
try: try: