From ac1b77d44ad536c49f02fa80ac45d912463bb611 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Tue, 15 Oct 2013 21:35:26 +0100 Subject: [PATCH] Deadlock in Discover over access to the device_ports table --- Netdisco/Changes | 1 + Netdisco/lib/App/Netdisco/Core/Discover.pm | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Netdisco/Changes b/Netdisco/Changes index f993df0f..e6c99a62 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -3,6 +3,7 @@ [BUG FIXES] * Update Print media CSS to handle new UI components + * Deadlock in Discover over access to the device_ports table 2.018000 - 2013-10-08 diff --git a/Netdisco/lib/App/Netdisco/Core/Discover.pm b/Netdisco/lib/App/Netdisco/Core/Discover.pm index e261cd9f..6371f55b 100644 --- a/Netdisco/lib/App/Netdisco/Core/Discover.pm +++ b/Netdisco/lib/App/Netdisco/Core/Discover.pm @@ -749,9 +749,11 @@ sub _set_manual_topology { schema('netdisco')->txn_do(sub { # clear manual topology flags - schema('netdisco')->resultset('DevicePort')->update({manual_topo => \'false'}); + schema('netdisco')->resultset('DevicePort') + ->search({ip => $device->ip})->update({manual_topo => \'false'}); - my $topo_links = schema('netdisco')->resultset('Topology'); + my $topo_links = schema('netdisco')->resultset('Topology') + ->search({-or => [dev1 => $device->ip, dev2 => $device->ip]}); debug sprintf ' [%s] neigh - setting manual topology links', $device->ip; while (my $link = $topo_links->next) {