From 59ae169415b6f985179801b941fbc7a27334efb0 Mon Sep 17 00:00:00 2001
From: Oliver Kurz <okurz@suse.de>
Date: Tue, 13 Aug 2019 22:29:14 +0200
Subject: [PATCH] scheduler: Fix warnings about undefined variables
Related progress issue: https://progress.opensuse.org/issues/55319
---
lib/OpenQA/Scheduler/Model/Jobs.pm | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/lib/OpenQA/Scheduler/Model/Jobs.pm b/lib/OpenQA/Scheduler/Model/Jobs.pm
index 17f95c52..a3d8fb01 100644
--- a/lib/OpenQA/Scheduler/Model/Jobs.pm
+++ b/lib/OpenQA/Scheduler/Model/Jobs.pm
@@ -76,11 +76,13 @@ sub schedule {
next if $checked_jobs{$j->{id}};
next unless @{$j->{matching_workers}};
my $tobescheduled = _to_be_scheduled($j, $scheduled_jobs);
- log_debug "need to schedule " . scalar(@$tobescheduled) . " jobs for $j->{id}($j->{priority})";
next if defined $allocated_jobs->{$j->{id}};
next unless $tobescheduled;
+ my @tobescheduled = grep { $_->{id} } @$tobescheduled;
+ log_debug "need to schedule " . scalar(@tobescheduled) . " jobs for $j->{id}($j->{priority})";
+ next unless @tobescheduled;
my %taken;
- for my $sub_job (sort { $a->{id} <=> $b->{id} } @$tobescheduled) {
+ for my $sub_job (sort { $a->{id} <=> $b->{id} } @tobescheduled) {
$checked_jobs{$sub_job->{id}} = 1;
my $picked_worker;
for my $worker (@{$sub_job->{matching_workers}}) {
@@ -271,14 +273,16 @@ sub _pick_siblings_of_running {
sub _to_be_scheduled_recurse {
my ($j, $scheduled, $taken) = @_;
- return if $taken->{$j->{id}};
+ return undef unless $j;
+ return undef unless $j->{id};
+ return undef if $taken->{$j->{id}};
# if we were called with undef, this is a sign that
# the cluster is not fully scheduled (e.g. blocked_by), so
# take that as mark but return
$taken->{$j->{id}} = $j;
my $ci = $j->{cluster_jobs}->{$j->{id}};
- return unless $ci;
+ return undef unless $ci;
for my $s (@{$ci->{parallel_children}}) {
_to_be_scheduled_recurse($scheduled->{$s}, $scheduled, $taken);
}
--
2.23.0.rc2