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)
>>>
>>

Reply via email to