Closed srac0 closed 2 years ago
Blocking queue can lead to a deadlock.
When the queue is full, mq_send() is blocked, EventSend() cannot finish its execution, and the mutex is never released.
https://github.com/srac0/upf/blob/1257e6138aba3b61823d3d9372f27e16cf2c15e6/lib/utlt/src/utlt_mq.c#L59
Then, the next requests will not be handled because it is impossible to acquire the mutex.
There is something wrong in UPF when msg queue is full and the blocking queue is not the root cause. We'll not accept the PR, and re-open https://github.com/free5gc/free5gc/issues/218 and try to find the root cause.
Blocking queue can lead to a deadlock.
When the queue is full, mq_send() is blocked, EventSend() cannot finish its execution, and the mutex is never released.
https://github.com/srac0/upf/blob/1257e6138aba3b61823d3d9372f27e16cf2c15e6/lib/utlt/src/utlt_mq.c#L59
Then, the next requests will not be handled because it is impossible to acquire the mutex.