[OpenSIPS-Devel] [OpenSIPS/opensips] 223d89: clusterer: Fix links going down during sync; Optim...

Liviu Chircu noreply at github.com
Wed Dec 4 15:58:55 UTC 2024


  Branch: refs/heads/3.4
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 223d89a6b1a8769dd76735367ceb38c81ee8d5d3
      https://github.com/OpenSIPS/opensips/commit/223d89a6b1a8769dd76735367ceb38c81ee8d5d3
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2024-12-04 (Wed, 04 Dec 2024)

  Changed paths:
    M modules/clusterer/clusterer.c
    M modules/clusterer/topology.c

  Log Message:
  -----------
  clusterer: Fix links going down during sync; Optimize pinging

This patch makes it so *any* succesfully sent BIN packet is also
considered a Ping (for sender) and Pong (for receiver).  This helps
improve the stability of the inter-node links, which will no longer go
down during a lengthy sync operation (e.g. 50K+ registered phones, which
take a few seconds to sync, and which would also significantly delay any
Ping/Pong packets happening to be queued up on that same TCP stream).

Moreover, thanks to the "last ping" timestamp updates during regular
BIN replication mentioned above, the clusterer pinging timer will now
only generate Ping packets during idle times (no BIN traffic produced).

(cherry picked from commit 7d74f3dc6233cf0cd6ad517a2329b837e2bac8bb)


  Commit: aa1aa937e5bce75a3e8b6c2717b2ab0ce979a25b
      https://github.com/OpenSIPS/opensips/commit/aa1aa937e5bce75a3e8b6c2717b2ab0ce979a25b
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2024-12-04 (Wed, 04 Dec 2024)

  Changed paths:
    M modules/usrloc/dlist.h
    M modules/usrloc/ucontact.h
    M modules/usrloc/udomain.c
    M modules/usrloc/ul_cluster.c
    M modules/usrloc/urecord.c

  Log Message:
  -----------
  usrloc HA: Improve management for replicated "labels"

This patch aims to fix the occasional "differring rlabels"
debugging error messages which may occur after a restart in usrloc HA
scenarios, especially if the active SIP box is restarted while
processing REGISTER requests in parallel.

Since both record and contact labels are dynamic, per-instance and lost
on restart, conflicts are to be expected.  The idea behind the fix is to
simply adapt the replicated contact_id to the local instance, thus
preferring the local labels to the remote labels whenever detecting
conflict.

(cherry picked from commit 90a00795b1d0685394818c4a69c235f487389878)


  Commit: b1038d4a2264a32d8eba1809e6a5121e7706aa43
      https://github.com/OpenSIPS/opensips/commit/b1038d4a2264a32d8eba1809e6a5121e7706aa43
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2024-12-04 (Wed, 04 Dec 2024)

  Changed paths:
    M modules/clusterer/topology.c

  Log Message:
  -----------
  clusterer: Fix a subtle subtraction bug

The "--node->no_ping_retries" operation is bogus, because that field
is only written during DB reload, or when dynamically learning a new
node.  This can lead to the following state, where a node's link flips
between ON/OFF on each ping attempt:

[Nov 29 20:23:15] INFO:clusterer:do_action_trans_2: Ping reply not received, node [2] is down
[Nov 29 20:23:15] INFO:clusterer:handle_pong: Node [2] is UP
[Nov 29 20:23:42] INFO:clusterer:do_action_trans_2: Ping reply not received, node [2] is down
[Nov 29 20:23:42] INFO:clusterer:handle_pong: Node [2] is UP
[Nov 29 20:24:30] INFO:clusterer:do_action_trans_2: Ping reply not received, node [2] is down
[Nov 29 20:24:30] INFO:clusterer:handle_pong: Node [2] is UP

(cherry picked from commit 02c4d14d79ff6cfd76b4220cdece80c0853e4e1f)


  Commit: 7cd555003519fda6076750201b17b480c4e40776
      https://github.com/OpenSIPS/opensips/commit/7cd555003519fda6076750201b17b480c4e40776
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2024-12-04 (Wed, 04 Dec 2024)

  Changed paths:
    M modules/clusterer/Makefile
    M modules/clusterer/clusterer.h
    M modules/clusterer/topology.c

  Log Message:
  -----------
  clusterer: Add some dev debugging logs

(cherry picked from commit 5eae5fb1580feb512cc9a065c558a72d85405afb)


Compare: https://github.com/OpenSIPS/opensips/compare/ca35a937b0be...7cd555003519

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



More information about the Devel mailing list