[core] Ref counting for actor handles (#7434)

* tmp

* Move Exit handler into CoreWorker, exit once owner's ref count goes to 0

* fix build

* Remove __ray_terminate__ and add test case for distributed ref counting

* lint

* Remove unused

* Fixes for detached actor, duplicate actor handles

* Remove unused

* Remove creation return ID

* Remove ObjectIDs from python, set references in CoreWorker

* Fix crash

* Fix memory crash

* Fix tests

* fix

* fixes

* fix tests

* fix java build

* fix build

* fix

* check status

* check status
This commit is contained in:
Stephanie Wang
2020-03-10 17:45:07 -07:00
committed by GitHub
parent 119a303ea0
commit fdb528514b
23 changed files with 330 additions and 180 deletions
@@ -34,7 +34,7 @@ def py_func_call_java_actor(value):
@ray.remote
def py_func_call_java_actor_from_handle(value):
assert isinstance(value, bytes)
actor_handle = ray.actor.ActorHandle._deserialization_helper(value, False)
actor_handle = ray.actor.ActorHandle._deserialization_helper(value)
r = actor_handle.concat.remote(b"2")
return ray.get(r)
@@ -42,7 +42,7 @@ def py_func_call_java_actor_from_handle(value):
@ray.remote
def py_func_call_python_actor_from_handle(value):
assert isinstance(value, bytes)
actor_handle = ray.actor.ActorHandle._deserialization_helper(value, False)
actor_handle = ray.actor.ActorHandle._deserialization_helper(value)
r = actor_handle.increase.remote(2)
return ray.get(r)
@@ -52,7 +52,7 @@ def py_func_pass_python_actor_handle():
counter = Counter.remote(2)
f = ray.java_function("org.ray.api.test.CrossLanguageInvocationTest",
"callPythonActorHandle")
r = f.remote(counter._serialization_helper(False))
r = f.remote(counter._serialization_helper())
return ray.get(r)