Hey All,
This is the first time I'm writing on this group.
I have being using rpyc for more that 3 years now. It is a great package!!!
I encounter a scenario that is stuck in a deadlock and I would like to know
what am I doing wrong here.
I'm using rpyc 3.2.3 with python 2.7.8.
This is the code that reproduce the issue:
*script file:*
>>* cat /tmp/script_lock.py*
from threading import Lock
from time import sleep
lock = Lock()
def deadlock_repro(a):
print type(a)
with lock: # Thread-2 will be lock here
print 'going to sleep'
sleep(1)
print 'trying to access a'
print a # Thread-1 will be lock here
print 'finish'
------
*open a new rpyc_classic.py on port 5555:*
>> *rpyc_classic.py -p 5555*
-----
*running the following python code:*
>> *python*
from threading import Thread
import rpyc
conn = rpyc.classic.connect('localhost', 5555)
conn.modules["sys"].path += ["/tmp"]
t1 = Thread(target=conn.modules["script_lock"].deadlock_repro,
args=(range(10),) )
t2 = Thread(target=conn.modules["script_lock"].deadlock_repro,
args=(range(10),) )
t1.start()
t2.start()
t1.join() # this will never join
-----
here is an output example of the rpyc_classic:
[root@clx-0128 tmp]# rpyc_classic.py -p 5555
INFO:SLAVE/5555:server started on [0.0.0.0]:5555
INFO:SLAVE/5555:accepted ('127.0.0.1', 33495)
INFO:SLAVE/5555:welcome ('127.0.0.1', 33495)
<netref class '__builtin__.list'>
going to sleep
trying to access a
<netref class '__builtin__.list'>
Can someone please explain me what I'm doing wrong here?
Thanks
Eyal Cohen.
--
---
You received this message because you are subscribed to the Google Groups
"rpyc" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.