[OpenSIPS-Devel] [OpenSIPS/opensips] 4a5ac7: tm: fix $rd reversion after chained async() resume

Bogdan Andrei IANCU noreply at github.com
Mon Feb 23 11:19:00 UTC 2026


  Branch: refs/heads/master
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 4a5ac7124e63e10f2daf405f3c69d3d1e39109a3
      https://github.com/OpenSIPS/opensips/commit/4a5ac7124e63e10f2daf405f3c69d3d1e39109a3
  Author: Norm Brandinger <n.brandinger at gmail.com>
  Date:   2026-02-11 (Wed, 11 Feb 2026)

  Changed paths:
    M modules/tm/async.c

  Log Message:
  -----------
  tm: fix $rd reversion after chained async() resume

When async() is called from a resume route (chained async), the
FL_TM_FAKE_REQ check in t_handle_async() prevents
update_cloned_msg_from_msg() from saving message state to the
transaction's shm clone. This causes $rd, $du, and other msg fields
modified in the resume route to revert to their previous values when
the next async operation completes through the reactor path.

Remove the FL_TM_FAKE_REQ guard from the conditional. The
update_cloned_msg_from_msg() function already handles faked_req
sources correctly: it defers freeing old shm lumps (lines 1325-1336
of sip_msg.c), and free_faked_req() completes the deferred cleanup.

Fixes #3676


  Commit: 2a1c511265d82648c984807c02c4b50ed073ca42
      https://github.com/OpenSIPS/opensips/commit/2a1c511265d82648c984807c02c4b50ed073ca42
  Author: Bogdan Andrei IANCU <bogdan at opensips.org>
  Date:   2026-02-23 (Mon, 23 Feb 2026)

  Changed paths:
    M modules/tm/async.c

  Log Message:
  -----------
  Merge pull request #3821 from NormB/fix/tm-async-rd-reversion

tm: fix $rd reversion after chained async() resume


Compare: https://github.com/OpenSIPS/opensips/compare/60f57643aa54...2a1c511265d8

To unsubscribe from these emails, change your notification settings at https://github.com/OpenSIPS/opensips/settings/notifications



More information about the Devel mailing list