- my $status = readbug($bug, $db);
- next unless defined $status;
+ my ($locks, $status) = lockreadbugmerge($bug, $db);
+ unless (defined $status) {
+ unlockreadbugmerge($locks);
+ next;
+ }
+
+ if (@{$status->{found_versions}} or @{$status->{fixed_versions}}) {
+ unlockreadbugmerge($locks);
+ next;
+ }
+
+ my @merges = ();
+ # Only process the lowest of each set of merged bugs.
+ if (length $status->{mergedwith}) {
+ @merges = sort { $a <=> $b } split ' ', $status->{mergedwith};
+ if ($merges[0] < $bug) {
+ unlockreadbugmerge($locks);
+ next;
+ }
+ }