Callback function might do an operation which creates a new transaction, which will result in a deadlock.

Pre-Submission Checklist

Type Of Change

Checklist:

Description

Problem in detail described in ticket.

Summary is that the lock used to iterate expired transactions is also needed when creating a new transaction.
If the callback function (directly or indirectly) do something that creates a new transaction, it will result in a deadlock.

In my case, this was the ims_charging module where a start charging request times out. The callback does t_continue() where the routing logic then rejects the call. This will create a stop request to the charging server, and it will block.


You can view, comment on, or merge this pull request online at:

  https://github.com/kamailio/kamailio/pull/3643

Commit Summary

File Changes

(1 file)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/pull/3643@github.com>