[OpenSIPS-Devel] [OpenSIPS/opensips] f0f6a2: usrloc: Learn the active node AoR rlabel (as backu...

Liviu Chircu noreply at github.com
Fri Aug 13 19:39:20 EST 2021


  Branch: refs/heads/3.1
  Home:   https://github.com/OpenSIPS/opensips
  Commit: f0f6a22f329f602930e4579840dd1a20a7acf2f7
      https://github.com/OpenSIPS/opensips/commit/f0f6a22f329f602930e4579840dd1a20a7acf2f7
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2021-08-13 (Fri, 13 Aug 2021)

  Changed paths:
    M modules/usrloc/ul_cluster.c

  Log Message:
  -----------
  usrloc: Learn the active node AoR rlabel (as backup node)

When using timer-based contact cleanup in Active/Passive user location
scenarios, the two timers may run in such a way that the backup node
still has a given AoR, while the AoR does _not_ exist on the active
node...

Now, if a phone registers, the backup node complains that the
replicated AoR's auto-generated rlabel differs from its own one, since
the old AoR has yet to be cleaned up.  And as long as the AoR has no
contacts, we can safely re-learn (overwrite) the AoR's rlabel on the
backup node and fix this race condition.

Credits to Giovanni Maruzzelli for reporting this issue and providing
accurate debug logs!

Fixes #2524

(cherry picked from commit 24ec0d23d6f9193548bf0f4296acdba039a4483b)


  Commit: 977dd04f2c2b6d52cade148f1610a054bf4b0b50
      https://github.com/OpenSIPS/opensips/commit/977dd04f2c2b6d52cade148f1610a054bf4b0b50
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2021-08-13 (Fri, 13 Aug 2021)

  Changed paths:
    M modules/mid_registrar/save.c
    M modules/usrloc/ucontact.h
    M modules/usrloc/urecord.c

  Log Message:
  -----------
  mid-registrar: Improve replication behavior on INSERT

Ensure all mid-registrar data tied to a contact gets included in
the very first "INSERT" packet.  This prevents some unnecessary error
logs on the backup box when doing a quick REGISTER/De-REGISTER in
Active/Passive scenarios:

ERROR:mid_registrar:unregister_record: 'from' key not found, skipping De-REGISTER
ERROR:mid_registrar:mid_reg_aor_event: failed to unregister contact

Credits to Giovanni Maruzzelli for an accurate report and detailed
logs on this issue!

Fixes #2525

(cherry picked from commit c11f92698c6f345d8921d645177f71aa36c9791d)


  Commit: 907023eb1165cf86977e4019dfd8b56c39d2523d
      https://github.com/OpenSIPS/opensips/commit/907023eb1165cf86977e4019dfd8b56c39d2523d
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2021-08-13 (Fri, 13 Aug 2021)

  Changed paths:
    M modules/mid_registrar/ulcb.c
    M modules/usrloc/dlist.c
    M modules/usrloc/ucontact.c
    M modules/usrloc/ucontact.h
    M modules/usrloc/ul_cluster.h
    M modules/usrloc/usrloc.c
    M modules/usrloc/usrloc.h

  Log Message:
  -----------
  mid-registrar: Avoid generating De-REGISTER from Passive node

    * enhance the usrloc API with a contact ownership checking function
    * mid-registrar now only generates De-REGISTER for owned contacts

Credits to Giovanni Maruzzelli for detailed reporting and instructions
on how to reproduce this issue!

Fixes #2559

(cherry picked from commit 4128f67d271b4851a194ebf69da0349c4403e2a9)


Compare: https://github.com/OpenSIPS/opensips/compare/3b8bdb794da3...907023eb1165



More information about the Devel mailing list