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

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


  Branch: refs/heads/master
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 24ec0d23d6f9193548bf0f4296acdba039a4483b
      https://github.com/OpenSIPS/opensips/commit/24ec0d23d6f9193548bf0f4296acdba039a4483b
  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


  Commit: c11f92698c6f345d8921d645177f71aa36c9791d
      https://github.com/OpenSIPS/opensips/commit/c11f92698c6f345d8921d645177f71aa36c9791d
  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


  Commit: 4128f67d271b4851a194ebf69da0349c4403e2a9
      https://github.com/OpenSIPS/opensips/commit/4128f67d271b4851a194ebf69da0349c4403e2a9
  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


Compare: https://github.com/OpenSIPS/opensips/compare/15321bab8686...4128f67d271b



More information about the Devel mailing list