Blob Blame History Raw
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