-
Notifications
You must be signed in to change notification settings - Fork 7.4k
Closed
Description
Describe the problem
In #5504, we added support of direct actor call in Java. However, there are cases/features not welly supported by direct actor call. I list them below and will address them later.
- If the returned object of an actor task was deleted by LRU, attempts to get the object should fail with an
OBJECT_UNRECONSTRUCTABLEerror (in Java, theUnreconstructableException). This is covered by Java test casetestUnreconstructableActorObject. Currently the error is generated by raylet and in direct actor call mode raylet is not involved in actor tasks, so this error will not be put into object store and the attempts to get the object will hang. - Cross-language calls with byte array arguments. Byte array arguments are serialized with metadata
RAWduring cross-language calls, and direct actor call only supports passing parameters by value. So metadata cannot be passed to the callee. This is covered by Java test casetestCallingPythonActorand is addressed in Support metadata for passing by value task arguments #5527. - Java test case
testActorProcessDyinghangs when tearing down test case, specificly, when destroying native core worker. The stack trace shows that the destructor ofClientCallManagerhangs at joining thepolling_thread_thread, and the thread is waiting forcq_.Nextto return. This is a case we don't know the reason. However, we tried to replace direct actor call connection from gRPC to asio, and it got fixed. So the bug should be gRPC specific.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels