def test_dataclient_server_drop(ray_start_regular_shared): from ray.util.client import ray as ray_client ray_client._inside_client_test = True @ray_client.remote def f(x): time.sleep(4) return x def stop_server(server): time.sleep(2) server.stop(0) server = ray_client_server.serve("localhost:50051") ray_client.connect("localhost:50051") thread = threading.Thread(target=stop_server, args=(server, )) thread.start() x = f.remote(2) with pytest.raises(ConnectionError): _ = ray_client.get(x) thread.join() ray_client.disconnect() ray_client._inside_client_test = False # Wait for f(x) to finish before ray.shutdown() in the fixture time.sleep(3)
def ray_start_client_server_pair(metadata=None): ray._inside_client_test = True server = ray_client_server.serve("localhost:50051") ray.connect("localhost:50051", metadata=metadata) try: yield ray, server finally: ray._inside_client_test = False ray.disconnect() server.stop(0)
def ray_start_client_server_pair(metadata=None, ray_connect_handler=None, **kwargs): ray._inside_client_test = True server = ray_client_server.serve( "127.0.0.1:50051", ray_connect_handler=ray_connect_handler ) ray.connect("127.0.0.1:50051", metadata=metadata, **kwargs) try: yield ray, server finally: ray._inside_client_test = False ray.disconnect() server.stop(0)
def ray_start_cluster_client_server_pair(address): ray._inside_client_test = True def ray_connect_handler(job_config=None): real_ray.init(address=address) server = ray_client_server.serve("localhost:50051", ray_connect_handler=ray_connect_handler) ray.connect("localhost:50051") try: yield ray, server finally: ray._inside_client_test = False ray.disconnect() server.stop(0)
def ray_start_client_server_pair(metadata=None, ray_connect_handler=None, **kwargs): ray._inside_client_test = True with disable_client_hook(): assert not ray.is_initialized() server = ray_client_server.serve("127.0.0.1:50051", ray_connect_handler=ray_connect_handler) ray.connect("127.0.0.1:50051", metadata=metadata, **kwargs) try: yield ray, server finally: ray._inside_client_test = False ray.disconnect() server.stop(0) del server start = time.monotonic() with disable_client_hook(): while ray.is_initialized(): time.sleep(1) if time.monotonic() - start > 30: raise RuntimeError("Failed to terminate Ray")
def disconnect(): if not ray.is_connected(): raise RuntimeError("Ray Client is currently disconnected.") return ray.disconnect()
def disconnect(): """Disconnects from server; is idempotent.""" return ray.disconnect()
def run_client(): ray_client.connect("localhost:50051") ray_client.disconnect()