[OpenSIPS-Devel] [OpenSIPS/opensips] 2e11a6: Revert "fraud_detection: Fix hash-level locking is...

Liviu Chircu noreply at github.com
Mon Sep 23 13:19:23 EDT 2019


  Branch: refs/heads/3.0
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 2e11a65eec261b2c5b53406b0eab654261a118e0
      https://github.com/OpenSIPS/opensips/commit/2e11a65eec261b2c5b53406b0eab654261a118e0
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M modules/fraud_detection/frd_hashmap.c
    M modules/fraud_detection/frd_hashmap.h
    M modules/fraud_detection/frd_stats.c

  Log Message:
  -----------
  Revert "fraud_detection: Fix hash-level locking issues"

This reverts commit 32ec7a291db3a9ac8865a439b04874a9e1798e8e.

(cherry picked from commit e7fa2d18584883178a03773031d3432d632e6bd8)


  Commit: 8276fdd95ef21dd2f263de4f8ac086073059ab02
      https://github.com/OpenSIPS/opensips/commit/8276fdd95ef21dd2f263de4f8ac086073059ab02
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M modules/fraud_detection/frd_hashmap.c
    M modules/fraud_detection/frd_hashmap.h
    M modules/fraud_detection/frd_stats.c

  Log Message:
  -----------
  fraud_detection: Fix incomplete locking logic

The get_item() function results were insufficiently guarded, such
that the SIP workers may concurrently perform insert operations on the
same map object, possibly leading to shm corruption.

Fixes #1389

(cherry picked from commit ccdc8d2d1bd3adba3a91c669443c22c4bfa82894)


  Commit: 676289827d6931a8c070a095259fa9370e0fafb6
      https://github.com/OpenSIPS/opensips/commit/676289827d6931a8c070a095259fa9370e0fafb6
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M modules/fraud_detection/fraud_detection.c
    M modules/fraud_detection/frd_events.c
    M modules/fraud_detection/frd_events.h
    M modules/fraud_detection/frd_load.c

  Log Message:
  -----------
  fraud_detection: Fix a dangling SHM access bug

This patch fixes a race condition where a fraud_detection reload could
free the global SHM "threshold" objects which are still being referenced
N times (once for each ongoing dialog -- callback is invoked on
termination).

The solution is to simply store the integer values of the thresholds
into the callback data, and avoid storing any SHM pointers which have no
lifetime guarantees.

(cherry picked from commit 04704dc05e48e1773252d0e038db89e2183ccb64)


  Commit: 7b0fefc3ebc5f9ea3282f78703aa67eb8ad22213
      https://github.com/OpenSIPS/opensips/commit/7b0fefc3ebc5f9ea3282f78703aa67eb8ad22213
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M modules/fraud_detection/fraud_detection.c
    M modules/fraud_detection/frd_stats.c
    M modules/fraud_detection/frd_stats.h

  Log Message:
  -----------
  fraud_detection: Fix a seq calls computation bug

The sequential calls of a user should be counted using the dialed
numbers, NOT the matched fraud rule prefixes (which are almost always
shorter).

Reported by Benjamin Pasquet from OpenIP

(cherry picked from commit 749fbef8875051d58e998ea0338bcbba12e28b1d)


  Commit: 4fc72beffa3eb80bb6d5420f451c48abed24730f
      https://github.com/OpenSIPS/opensips/commit/4fc72beffa3eb80bb6d5420f451c48abed24730f
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M modules/fraud_detection/fraud_detection.c
    M modules/fraud_detection/frd_hashmap.c
    M modules/fraud_detection/frd_stats.h

  Log Message:
  -----------
  fraud_detection: Various small improvements

    * refactor unreadable/unmaintainable code
    * fix bad hash sizes, leading to unused buckets
    * improve some key errors reported to the users

(cherry picked from commit 4a0558b2710b45e93c1ea2b1e60c794b0969a708)


  Commit: 661ae58bb35643a3f268abbb33acea822c21db78
      https://github.com/OpenSIPS/opensips/commit/661ae58bb35643a3f268abbb33acea822c21db78
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M db/schema/fraud_detection.xml
    M scripts/db_berkeley/opensips/fraud_detection
    M scripts/mysql/fraud_detection-create.sql
    M scripts/oracle/fraud_detection-create.sql
    M scripts/postgres/fraud_detection-create.sql
    M scripts/sqlite/fraud_detection-create.sql

  Log Message:
  -----------
  fraud_detection DB schema: Fix missing default values

(cherry picked from commit fda854eeedeb52c63121d2e99573d8f47525b844)


Compare: https://github.com/OpenSIPS/opensips/compare/3c18dbfc198d...661ae58bb356



More information about the Devel mailing list