diff --git a/Netdisco/lib/App/Netdisco/Util/Arpnip.pm b/Netdisco/lib/App/Netdisco/Util/Arpnip.pm index ab4522b0..c1145ecc 100644 --- a/Netdisco/lib/App/Netdisco/Util/Arpnip.pm +++ b/Netdisco/lib/App/Netdisco/Util/Arpnip.pm @@ -80,8 +80,12 @@ sub do_arpnip { # update subnets with new networks foreach my $cidr (@subnets) { - schema('netdisco')->resultset('Subnet') - ->update_or_create({net => $cidr, last_discover => \'now()'}); + try { + schema('netdisco')->txn_do(sub { + schema('netdisco')->resultset('Subnet') + ->update_or_create({net => $cidr, last_discover => \'now()'}); + }); + }; } debug sprintf ' [%s] arpnip - processed %s Subnet entries', $device->ip, scalar @subnets;