Consodiate CI Python tests and fix bug about multiple ray.init (#4195)

This commit is contained in:
Hao Chen
2019-03-01 14:38:28 -08:00
committed by Robert Nishihara
parent 9c48cc27aa
commit 6f1a29ad3f
4 changed files with 23 additions and 52 deletions
+4 -51
View File
@@ -158,12 +158,8 @@ script:
# ray tune tests
- python python/ray/tune/test/dependency_test.py
- python -m pytest -v --durations=10 python/ray/tune/test/trial_runner_test.py
- python -m pytest -v --durations=10 python/ray/tune/test/trial_scheduler_test.py
- python -m pytest -v --durations=10 python/ray/tune/test/experiment_test.py
- python -m pytest -v --durations=10 python/ray/tune/test/tune_server_test.py
- python -m pytest -v --durations=10 python/ray/tune/test/ray_trial_executor_test.py
- python -m pytest -v --durations=10 python/ray/tune/test/automl_searcher_test.py
# `cluster_tests.py` runs on Jenkins, not Travis.
- python -m pytest -v --durations=30 --ignore=python/ray/tune/cluster_tests.py python/ray/tune/test
# ray rllib tests
- python python/ray/rllib/test/test_catalog.py
@@ -171,53 +167,10 @@ script:
- python python/ray/rllib/test/test_optimizers.py
- python python/ray/rllib/test/test_evaluators.py
# streaming library tests
- python -m pytest -v --durations=10 python/ray/tests/test_batched_queue.py
- python -m pytest -v --durations=10 python/ray/tests/test_logical_graph.py
# ray tests
# Python3.5+ only. Otherwise we will get `SyntaxError` regardless of how we set the tester.
- python -c 'import sys;exit(sys.version_info>=(3,5))' || python -m pytest -v --durations=10 python/ray/experimental/test/async_test.py
# ray tests
# TODO(williamma12): We cannot use pytests built-in test discovery because
# it causes a lot of the tests to fail on travis' apple builds even though
# it runs without issue on an apple build locally.
- python -m pytest -v --durations=10 python/ray/tests/test_global_state.py
- python -m pytest -v --durations=10 python/ray/tests/test_queue.py
- python -m pytest -v --durations=10 python/ray/tests/test_ray_init.py
- python -m pytest -v --durations=10 python/ray/tests/test_mini.py
- python -m pytest -v --durations=10 python/ray/tests/test_basic.py
- python -m pytest -v --durations=10 python/ray/tests/test_array.py
- python -m pytest -v --durations=10 python/ray/tests/test_actor.py
- python -m pytest -v --durations=10 python/ray/tests/test_autoscaler.py
- python -m pytest -v --durations=10 python/ray/tests/test_tensorflow.py
- python -m pytest -v --durations=10 python/ray/tests/test_failure.py
- python -m pytest -v --durations=10 python/ray/tests/test_microbenchmarks.py
- python -m pytest -v --durations=10 python/ray/tests/test_stress.py
- python -m pytest -v --durations=10 python/ray/tests/test_component_failures.py
- python -m pytest -v --durations=10 python/ray/tests/test_multi_node.py
- python -m pytest -v --durations=10 python/ray/tests/test_multi_node_2.py
- python -m pytest -v --durations=10 python/ray/tests/test_recursion.py
- python -m pytest -v --durations=10 python/ray/tests/test_monitors.py
- python -m pytest -v --durations=10 python/ray/tests/test_cython.py
- python -m pytest -v --durations=10 python/ray/tests/test_credis.py
- python -m pytest -v --durations=10 python/ray/tests/test_node_manager.py
- python -m pytest -v --durations=10 python/ray/tests/test_signal.py
# TODO(yuhguo): object_manager_test.py requires a lot of CPU/memory, and
# better be put in Jenkins. However, it fails frequently in Jenkins, but
# works well in Travis. We should consider moving it back to Jenkins once
# we figure out the reason.
- python -m pytest -v --durations=10 python/ray/tests/test_object_manager.py
# ray temp file tests
- python -m pytest -v --durations=10 python/ray/tests/test_tempfile.py
# ray debug tools tests
- python -m pytest -v --durations=10 python/ray/tests/test_debug_tools.py
# modin test files
- python -m pytest -v --durations=10 python/ray/tests/test_modin.py
- python -m pytest -v --durations=30 python/ray/tests
deploy:
- provider: s3
access_key_id: AKIAJ2L7XDUSZVTXI5QA
+10 -1
View File
@@ -57,9 +57,11 @@ class RemoteFunction(object):
self._function_signature = ray.signature.extract_signature(
self._function)
# # Export the function.
# Export the function.
worker = ray.worker.get_global_worker()
worker.function_actor_manager.export(self)
# In which session this function was exported last time.
self._last_export_session = worker._session_index
def __call__(self, *args, **kwargs):
raise Exception("Remote functions cannot be called directly. Instead "
@@ -97,6 +99,13 @@ class RemoteFunction(object):
"""An experimental alternate way to submit remote functions."""
worker = ray.worker.get_global_worker()
worker.check_connected()
if self._last_export_session < worker._session_index:
# If this function was exported in a previous session, we need to
# export this function again, because current GCS doesn't have it.
self._last_export_session = worker._session_index
worker.function_actor_manager.export(self)
kwargs = {} if kwargs is None else kwargs
args = ray.signature.extend_args(self._function_signature, args,
kwargs)
+5
View File
@@ -13,6 +13,11 @@ import warnings
import ray
from ray.tests.cluster_utils import Cluster
# TODO(yuhguo): This test file requires a lot of CPU/memory, and
# better be put in Jenkins. However, it fails frequently in Jenkins, but
# works well in Travis. We should consider moving it back to Jenkins once
# we figure out the reason.
if (multiprocessing.cpu_count() < 40
or ray.utils.get_system_memory() < 50 * 10**9):
warnings.warn("This test must be run on large machines.")
+4
View File
@@ -161,6 +161,9 @@ class Worker(object):
# This event is checked regularly by all of the threads so that they
# know when to exit.
self.threads_stopped = threading.Event()
# Index of the current session. This number will
# increment every time when `ray.shutdown` is called.
self._session_index = 0
@property
def task_context(self):
@@ -2064,6 +2067,7 @@ def disconnect():
if hasattr(worker, "logger_thread"):
worker.logger_thread.join()
worker.threads_stopped.clear()
worker._session_index += 1
worker.connected = False
worker.cached_functions_to_run = []