You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I am trying to understand how exactly the timeouts are handled in python based azure functions. We are running the following scenario:
running "func start" on a virtual machine with process count == 8 and thread count == 12 and a timeout of 10 minutes
running a queue based function running with python 3.8
messages are processed concurrently and using a shared threadlock for thread unsafe objects (all locks are used in a with context)
The issue that we are seeing is that if one thread of a process runs into a timeout that thread is killed, as expected, but all other threads of that process stay open and running until their respective timeout is also reached. They do not finish processing their messages and seem to be deadlocked or sleeping.
My question is the following, what is actually going on here? Why does the azure function worker not kill the process directly and end all threads? Why does the thread that is killed not release the lock properly?
The text was updated successfully, but these errors were encountered:
Hi, I am trying to understand how exactly the timeouts are handled in python based azure functions. We are running the following scenario:
The issue that we are seeing is that if one thread of a process runs into a timeout that thread is killed, as expected, but all other threads of that process stay open and running until their respective timeout is also reached. They do not finish processing their messages and seem to be deadlocked or sleeping.
My question is the following, what is actually going on here? Why does the azure function worker not kill the process directly and end all threads? Why does the thread that is killed not release the lock properly?
The text was updated successfully, but these errors were encountered: