summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2018-04-18 18:03:10 -0700
committerIvan Kohler <ivan@freeside.biz>2018-04-18 18:03:10 -0700
commitb6785c0b3eef8cce1d67c53824d00a1afd9cc36a (patch)
tree7dfdb452f69966d8bbb58a354afe44b0d6ddfb67
parentf9dc3d967e8c8d05a151f3035786b14888046d6f (diff)
ip allocation mutex for high-traffic implementations, RT#79825
-rw-r--r--FS/FS/IP_Mixin.pm4
1 files changed, 4 insertions, 0 deletions
diff --git a/FS/FS/IP_Mixin.pm b/FS/FS/IP_Mixin.pm
index beb41d290..3ec769313 100644
--- a/FS/FS/IP_Mixin.pm
+++ b/FS/FS/IP_Mixin.pm
@@ -130,6 +130,10 @@ sub assign_ip_addr {
my $self = shift;
my %opt = @_;
+ #otherwise we'll get the same assignment for concurrent identical calls
+ # this will serialize them
+ $_->lock_table foreach @subclasses;
+
my @blocks;
my $na = $self->NetAddr;