free5gc / upf

Apache License 2.0
32 stars 51 forks source link

Fix: Blocking queue can lead to deadlock. #38

Closed srac0 closed 2 years ago

srac0 commented 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.

free5gc-org commented 2 years ago

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.