summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2018-04-18 18:03:07 -0700
committerIvan Kohler <ivan@freeside.biz>2018-04-18 18:03:07 -0700
commit7738617402d4f0a6fd6b75fa8c56b48c715a3c51 (patch)
treeef7d823508ee595c93c6b9569145522b9e9e73f9
parent69c7d00baa39ccc2fbee0f12d03f49403f04c3cf (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;