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) {