mirror of
https://github.com/wassname/ray.git
synced 2026-07-05 09:42:22 +08:00
Deprecate non-direct-call API (#7336)
This commit is contained in:
@@ -15,7 +15,6 @@ import pickle
|
||||
import pytest
|
||||
|
||||
import ray
|
||||
from ray import signature
|
||||
import ray.ray_constants as ray_constants
|
||||
import ray.cluster_utils
|
||||
import ray.test_utils
|
||||
@@ -191,69 +190,6 @@ def test_global_state_api(shutdown_only):
|
||||
assert job_table[0]["NodeManagerAddress"] == node_ip_address
|
||||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
ray_constants.direct_call_enabled(),
|
||||
reason="object and task API not supported")
|
||||
def test_global_state_task_object_api(shutdown_only):
|
||||
ray.init()
|
||||
|
||||
job_id = ray.utils.compute_job_id_from_driver(
|
||||
ray.WorkerID(ray.worker.global_worker.worker_id))
|
||||
driver_task_id = ray.worker.global_worker.current_task_id.hex()
|
||||
|
||||
nil_actor_id_hex = ray.ActorID.nil().hex()
|
||||
|
||||
@ray.remote
|
||||
def f(*xs):
|
||||
return 1
|
||||
|
||||
x_id = ray.put(1)
|
||||
result_id = f.remote(1, "hi", x_id)
|
||||
|
||||
# Wait for one additional task to complete.
|
||||
wait_for_num_tasks(1 + 1)
|
||||
task_table = ray.tasks()
|
||||
assert len(task_table) == 1 + 1
|
||||
task_id_set = set(task_table.keys())
|
||||
task_id_set.remove(driver_task_id)
|
||||
task_id = list(task_id_set)[0]
|
||||
|
||||
task_spec = task_table[task_id]["TaskSpec"]
|
||||
assert task_spec["ActorID"] == nil_actor_id_hex
|
||||
assert task_spec["Args"] == [
|
||||
signature.DUMMY_TYPE, 1, signature.DUMMY_TYPE, "hi",
|
||||
signature.DUMMY_TYPE, x_id
|
||||
]
|
||||
assert task_spec["JobID"] == job_id.hex()
|
||||
assert task_spec["ReturnObjectIDs"] == [result_id]
|
||||
|
||||
assert task_table[task_id] == ray.tasks(task_id)
|
||||
|
||||
# Wait for two objects, one for the x_id and one for result_id.
|
||||
wait_for_num_objects(2)
|
||||
|
||||
def wait_for_object_table():
|
||||
timeout = 10
|
||||
start_time = time.time()
|
||||
while time.time() - start_time < timeout:
|
||||
object_table = ray.objects()
|
||||
tables_ready = (object_table[x_id]["ManagerIDs"] is not None and
|
||||
object_table[result_id]["ManagerIDs"] is not None)
|
||||
if tables_ready:
|
||||
return
|
||||
time.sleep(0.1)
|
||||
raise RayTestTimeoutException(
|
||||
"Timed out while waiting for object table to "
|
||||
"update.")
|
||||
|
||||
object_table = ray.objects()
|
||||
assert len(object_table) == 2
|
||||
|
||||
assert object_table[x_id] == ray.objects(x_id)
|
||||
object_table_entry = ray.objects(result_id)
|
||||
assert object_table[result_id] == object_table_entry
|
||||
|
||||
|
||||
# TODO(rkn): Pytest actually has tools for capturing stdout and stderr, so we
|
||||
# should use those, but they seem to conflict with Ray's use of faulthandler.
|
||||
class CaptureOutputAndError:
|
||||
|
||||
Reference in New Issue
Block a user