Hi, Playing with the _lazy parameter on the server side, can you please supply the simplest example, after changing it to True, where should I call the _init_service?
Thanks On Tuesday, November 13, 2012 4:45:33 PM UTC+2, Assaf wrote: > > BTW, We wanted to check with 3.0.7, we get the same behaviour, here's the > exception. > > [SLAVE INFO 06:40:25 tid=944] welcome X.X.X.X:34961 > [SLAVE INFO 06:40:47 tid=944] goodbye X.X.X.X:34961 > Exception in thread Thread-2: > Traceback (most recent call last): > File "C:\xavi-xpyv\python27.zip\threading.py", line 551, in > __bootstrap_inner > self.run() > File "C:\xavi-xpyv\python27.zip\threading.py", line 504, in run > self.__target(*self.__args, **self.__kwargs) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\utils\server.py > ", line 110, in _authenticate_and_serve_client > self._serve_client(sock, credentials) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\utils\server.py > ", line 126, in _serve_client > conn._init_service() > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 90, in _init_service > self._local_root.on_connect() > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\service.py > ", line 106, in on_connect > self._conn.modules = ModuleNamespace(self._conn.root.getmodule) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 365, in root > self._remote_root = self.sync_request(consts.HANDLE_GETROOT) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 339, in sync_request > self.serve(0.1) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 304, in serve > self._dispatch(data) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 276, in _dispatch > self._dispatch_reply(seq, args) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 236, in _dispatch_reply > obj = self._unbox(raw) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 199, in _unbox > proxy = self._netref_factory(oid, clsname, modname) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 211, in _netref_factory > info = self.sync_request(consts.HANDLE_INSPECT, oid) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 339, in sync_request > self.serve(0.1) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 301, in serve > data = self._recv(timeout, wait_for_lock = True) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\protocol.py", > line 261, in _recv > data = self._channel.recv() > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\channel.py > ", line 36, in recv > header = self.stream.read(self.FRAME_HEADER.size) > File > "C:\xavi-xpyv\lib\site-packages\rpyc-3.0.7-py2.7.egg\rpyc\core\stream.py" > , line 105, in read > raise EOFError(ex) > EOFError: [Errno 10054] An existing connection was forcibly closed by the > remote > > On Monday, November 12, 2012 12:33:21 PM UTC+2, Tomer Filiba wrote: >> >> this seems like a strange bug of mutual initialization - the client waits >> for the server and the server waits for the client. >> try playing with the _lazy parameters. see: >> >> https://github.com/tomerfiliba/rpyc/blob/master/rpyc/core/protocol.py#L123 >> >> -tomer >> >> ----------------------------------------------------------------- >> >> *Tomer Filiba* >> tomerfiliba.com <http://www.facebook.com/tomerfiliba> >> <http://il.linkedin.com/in/tomerfiliba> >> >> >> >> On Mon, Nov 12, 2012 at 11:30 AM, Assaf <[email protected]> wrote: >> >>> Hi Tomer, >>> >>> I'm running RPyC classic server 3.2.2 on Windows (2008 R2 , 2012servers) . >>> >>> Runnnig nosetests on my local Linux, connecting to Windows servers. >>> >>> Sometimes the test makes it to the end, sometime it just hangs and I see >>> the following errors: >>> I have to restart the server in order to re-run tests. >>> >>> Can you please try and suggest a solution? >>> >>> Thanks >>> >>> Errors on screen: >>> ============= >>> INFO:SLAVE/18812:welcome [9.151.163.179]:60055 >>> INFO:SLAVE/18812:goodbye [9.151.163.179]:60055 >>> ERROR:SLAVE/18812:client connection terminated abruptly >>> Traceback (most recent call last): >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\utils\server.py >>> ", line 168, in _authenticate_and_serve_client >>> self._serve_client(sock2, credentials) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\utils\server.py >>> ", line 193, in _serve_client >>> conn._init_service() >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 150, in _init_service >>> self._local_root.on_connect() >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\service.py >>> ", line 138, in on_connect >>> self._conn.modules = ModuleNamespace(self._conn.root.getmodule) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 464, in root >>> self._remote_root = self.sync_request(consts.HANDLE_GETROOT) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 435, in sync_request >>> self.serve(0.1) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 386, in serve >>> self._dispatch(data) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 356, in _dispatch >>> self._dispatch_reply(seq, args) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 316, in _dispatch_reply >>> obj = self._unbox(raw) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 276, in _unbox >>> proxy = self._netref_factory(oid, clsname, modname) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 288, in _netref_factory >>> info = self.sync_request(consts.HANDLE_INSPECT, oid) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 435, in sync_request >>> self.serve(0.1) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 383, in serve >>> data = self._recv(timeout, wait_for_lock = True) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 341, in _recv >>> data = self._channel.recv() >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\channel.py >>> ", line 50, in recv >>> header = self.stream.read(self.FRAME_HEADER.size) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\stream.py" >>> , line 174, in read >>> raise EOFError(ex) >>> EOFError: [Errno 10054] An existing connection was forcibly closed by >>> the remote >>> host >>> Exception in thread Thread-26: >>> Traceback (most recent call last): >>> File "C:\xavi-xpyv\lib\threading.py", line 551, in __bootstrap_inner >>> self.run() >>> File "C:\xavi-xpyv\lib\threading.py", line 504, in run >>> self.__target(*self.__args, **self.__kwargs) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\utils\server.py >>> ", line 168, in _authenticate_and_serve_client >>> self._serve_client(sock2, credentials) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\utils\server.py >>> ", line 193, in _serve_client >>> conn._init_service() >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 150, in _init_service >>> self._local_root.on_connect() >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\service.py >>> ", line 138, in on_connect >>> self._conn.modules = ModuleNamespace(self._conn.root.getmodule) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 464, in root >>> self._remote_root = self.sync_request(consts.HANDLE_GETROOT) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 435, in sync_request >>> self.serve(0.1) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 386, in serve >>> self._dispatch(data) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 356, in _dispatch >>> self._dispatch_reply(seq, args) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 316, in _dispatch_reply >>> obj = self._unbox(raw) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 276, in _unbox >>> proxy = self._netref_factory(oid, clsname, modname) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 288, in _netref_factory >>> info = self.sync_request(consts.HANDLE_INSPECT, oid) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 435, in sync_request >>> self.serve(0.1) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 383, in serve >>> data = self._recv(timeout, wait_for_lock = True) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\protocol.py", >>> >>> line 341, in _recv >>> data = self._channel.recv() >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\channel.py >>> ", line 50, in recv >>> header = self.stream.read(self.FRAME_HEADER.size) >>> File >>> "C:\xavi-xpyv\lib\site-packages\rpyc-3.2.2-py2.7.egg\rpyc\core\stream.py" >>> , line 174, in read >>> raise EOFError(ex) >>> >>
