On 13/01/18 11:34, Nagy László Zsolt wrote: > Hi! > > I have a multi threaded Windows service written in Python. It is running > on 3.6.2. Sometimes I cannot stop the service, because on of the > threads won't exit. I have narrowed down the problem to request and > _lib.SSL_read. I have used a modified version of this gem: > http://code.activestate.com/recipes/577334-how-to-debug-deadlocked-multi-threaded-programs/ > > So even thould I cannot stop the service (only kill it from task > manager), I can tell that this is the rebellious thread: > > > File: "C:\Python36-32\lib\site-packages\requests\api.py", line 112, in post
Unfortunately, this traceback doesn't contain any of your own code, so we can't really tell what you're trying to do, or whether this call *should* be terminating. > [snip] > > File: "C:\Python36-32\lib\site-packages\OpenSSL\SSL.py", line 1624, in > recv_into > result = _lib.SSL_read(self._ssl, buf, nbytes) so - this is calling a C library. At that point, if the C function doesn't return, there's not really anything Python can do. My point is: if the server is simply not sending a response (because it's waiting for you to send more data, or whatever) but *is* keeping the TCP connection alive - this could make sense. Are you setting a timeout? -- Thomas > > It is possible that there are network outages on this machine, but I > don't think that this should result in an infinite block. > > The bigest problem is that the only way to restart the service is to > login remotely, start the task manager and terminate the > pythonservice.exe process. > > Do any of you have a clue why is this happening? How to fix this? > > Thanks, > > Laszlo > > > -- https://mail.python.org/mailman/listinfo/python-list