Hello,

I have a problem with an rpyc service, running under a ForkingServer. On
the client side, I connect and create a (strong referenced) async wrapper
to a method on my remote service. Then I trigger my service via the async
wrapper. The invocation returns immediately, but my on the server side,
except for a forked process, nothing happens.

Only when I invoke AsyncResult.wait() the server will start executing my
request.

Below is a part of my server side log. The second field in the log is the
process ID.

2011-11-23 15:17:08,217 - 30638 - DSSTESTSERVICE/39876 - INFO - server
started on [0.0.0.0]:39876
2011-11-23 15:17:16,027 - 30638 - DSSTESTSERVICE/39876 - INFO - accepted
127.0.0.1:57696
2011-11-23 15:17:16,029 - 30786 - DSSTESTSERVICE/39876 - INFO - welcome
[127.0.0.1]:57696
2011-11-23 15:17:16,031 - 30786 - dsstestservice.on_connect - DEBUG -
Entering method, pid=(30786)
2011-11-23 15:18:26,384 - 30786 - dsstestservice.write - DEBUG - Entering
method
...
2011-11-23 15:18:38,648 - 30786 - dsstestservice.write - DEBUG - Exiting
method
2011-11-23 15:19:36,704 - 30786 - dsstestservice.on_disconnect - DEBUG -
Entering method, pid=(30786)
2011-11-23 15:19:36,705 - 30786 - DSSTESTSERVICE/39876 - INFO - goodbye
[127.0.0.1]:57696

As you can see, the parent rpyc server (pid 30638) is started at 15:17. A
few seconds later, I connect to it resulting in the subprocess (30786) and
immediately invoke the async wrapper. Then I wait numerous seconds (until
15:18:26 it seems) before I invoke AsyncResult.wait(). Only then does the
request end up being executed on the server.

I have been spinning my head around this for numerous hours already but as
far as I could see from the docs, I'm not doing anything wrong.

Please elaborate!

Ringo

Reply via email to