diff options
author | Pascal Terjan <pterjan@gmail.com> | 2016-10-11 09:06:22 +0100 |
---|---|---|
committer | Pascal Terjan <pterjan@gmail.com> | 2016-10-11 09:06:22 +0100 |
commit | be053c1ef4f64b106657902b3b37cd5e3c7ce22e (patch) | |
tree | 94d7ec814a374ac2e3835620fcdd22407c56117e | |
parent | cc76f64e8faa77cfcc93a9d56f6b86cfd8cade10 (diff) | |
download | iurt-be053c1ef4f64b106657902b3b37cd5e3c7ce22e.tar iurt-be053c1ef4f64b106657902b3b37cd5e3c7ce22e.tar.gz iurt-be053c1ef4f64b106657902b3b37cd5e3c7ce22e.tar.bz2 iurt-be053c1ef4f64b106657902b3b37cd5e3c7ce22e.tar.xz iurt-be053c1ef4f64b106657902b3b37cd5e3c7ce22e.zip |
Fix reuse of {arch} part of the tree
It is used by ulri for both builds in progress and already done,
while emi expects it to be only for done ones.
This causes to upload only part of mandatory arches and later reject
the other.
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | lib/Iurt/Emi.pm | 4 | ||||
-rw-r--r-- | lib/Iurt/Queue.pm | 4 | ||||
-rw-r--r-- | t/emi_finisher.t | 4 | ||||
-rw-r--r-- | t/emi_mandatory.t | 6 | ||||
-rw-r--r-- | t/emi_non_mandatory.t | 10 | ||||
-rwxr-xr-x | ulri | 4 |
7 files changed, 19 insertions, 15 deletions
@@ -1,5 +1,7 @@ - emi: fix a bug where genhdlist2 was skipped when doing a secondary upload containing a noarch at the same time as some other uploads +- fix reuse of {arch} part of the tree which is used by ulri for both builds + in progress and already done, while emi expects it to be only for done ones 0.6.26 - ulri: when failing to send a build to a machine do not try sending all the diff --git a/lib/Iurt/Emi.pm b/lib/Iurt/Emi.pm index b1bc619..a0ed76e 100644 --- a/lib/Iurt/Emi.pm +++ b/lib/Iurt/Emi.pm @@ -44,7 +44,7 @@ sub find_prefixes_ready_to_upload { foreach my $m (@wanted_archs, 'src') { $pkg_tree{$prefix}{media}{$media}{excluded_arch}{$m} and next; my $x = "yes"; - if (!$pkg_tree{$prefix}{media}{$media}{arch}{$m}) { + if (!$pkg_tree{$prefix}{media}{$media}{done_arch}{$m}) { $missing{$m} = 1; $x = "no"; $ok = 0; @@ -177,7 +177,7 @@ sub upload_prefix_in_media { # If we are here, mandatory arches are done, no need to check them my $mandatory_arch = get_mandatory_arch($config, $target); foreach my $arch (difference2(\@arch_list, $mandatory_arch)) { - next if $pkg_tree->{$prefix}{media}{$media}{arch}{$arch}; + next if $pkg_tree->{$prefix}{media}{$media}{done_arch}{$arch}; $all_done = 0; } } diff --git a/lib/Iurt/Queue.pm b/lib/Iurt/Queue.pm index bf1f4f6..f6907e6 100644 --- a/lib/Iurt/Queue.pm +++ b/lib/Iurt/Queue.pm @@ -181,7 +181,7 @@ sub get_upload_tree_state { plog('DEBUG', "found already built rpm $rpm ($prefix) for media $media"); $pkg_tree{$prefix}{target} = $f; if ($arch eq 'src') { - $pkg_tree{$prefix}{media}{$media}{arch}{src} = 1; + $pkg_tree{$prefix}{media}{$media}{done_arch}{src} = 1; } push @{$pkg_tree{$prefix}{media}{$media}{rpms}} , $rpm; push @{$pkg_tree{$prefix}{rpms}} , $rpm; @@ -189,7 +189,7 @@ sub get_upload_tree_state { my ($arch, $result) = ($1, $2); plog('DEBUG', "found .$result ($prefix) for $arch"); if ($result eq 'done') { - $pkg_tree{$prefix}{media}{$media}{arch}{$arch} = 1; + $pkg_tree{$prefix}{media}{$media}{done_arch}{$arch} = 1; } elsif ($result eq 'excluded') { $arch = $config->{arch_translation}{$arch} if $config->{arch_translation}{$arch}; $pkg_tree{$prefix}{media}{$media}{excluded_arch}{$arch} = 1; diff --git a/t/emi_finisher.t b/t/emi_finisher.t index b66a1be..8bfed63 100644 --- a/t/emi_finisher.t +++ b/t/emi_finisher.t @@ -12,7 +12,7 @@ my %pkg_tree = ( 'target' => 'cauldron', 'media' => { 'core/release' => { - 'arch' => { + 'done_arch' => { 'i586' => 1, 'x86_64' => 1, 'src' => 1 @@ -43,7 +43,7 @@ my %pkg_tree = ( 'media' => { 'core/release' => { 'uploaded' => 1, - 'arch' => { + 'done_arch' => { 'armv5tl' => 1, 'i586' => 1, 'x86_64' => 1, diff --git a/t/emi_mandatory.t b/t/emi_mandatory.t index e50d328..90ba2a2 100644 --- a/t/emi_mandatory.t +++ b/t/emi_mandatory.t @@ -12,7 +12,7 @@ my %pkg_tree = ( 'target' => 'cauldron', 'media' => { 'core/release' => { - 'arch' => { + 'done_arch' => { 'x86_64' => 1, 'src' => 1 }, @@ -34,7 +34,7 @@ my %pkg_tree = ( 'target' => 'cauldron', 'media' => { 'core/release' => { - 'arch' => { + 'done_arch' => { 'i586' => 1, 'x86_64' => 1, 'src' => 1 @@ -61,7 +61,7 @@ my %pkg_tree = ( 'target' => 'cauldron', 'media' => { 'core/release' => { - 'arch' => { + 'done_arch' => { 'x86_64' => 1, 'src' => 1 }, diff --git a/t/emi_non_mandatory.t b/t/emi_non_mandatory.t index 8aa2c94..44031f6 100644 --- a/t/emi_non_mandatory.t +++ b/t/emi_non_mandatory.t @@ -28,7 +28,7 @@ my %pkg_tree = ( 'target' => 'cauldron', 'media' => { 'core/release' => { - 'arch' => { + 'done_arch' => { 'armv5tl' => 1, 'x86_64' => 1, 'src' => 1 @@ -58,7 +58,7 @@ my %pkg_tree = ( 'target' => 'cauldron', 'media' => { 'core/release' => { - 'arch' => { + 'done_arch' => { 'armv5tl' => 1, 'i586' => 1, 'x86_64' => 1, @@ -93,7 +93,7 @@ my %pkg_tree = ( 'target' => 'cauldron', 'media' => { 'core/release' => { - 'arch' => { + 'done_arch' => { 'armv5tl' => 1, 'x86_64' => 1, 'src' => 1 @@ -127,7 +127,7 @@ my %pkg_tree = ( 'media' => { 'core/release' => { 'uploaded' => 1, - 'arch' => { + 'done_arch' => { 'armv5tl' => 1, 'i586' => 1, 'x86_64' => 1, @@ -154,7 +154,7 @@ my %pkg_tree = ( 'target' => 'cauldron', 'media' => { 'core/release' => { - 'arch' => { + 'done_arch' => { 'x86_64' => 1, 'src' => 1 }, @@ -375,6 +375,7 @@ foreach my $prefix (keys %pkg_tree) { if ($done) { create_file("$done_dir/${prefix}_$arch.done", "$bot $host"); + $pkg_tree{$prefix}{media}{$media}{done_arch}{$arch} = 1; $success = 1; } @@ -491,9 +492,10 @@ foreach my $prefix (sort keys %pkg_tree) { # need to find a bot for each arch foreach my $arch (@arch_list) { # Skip this arch if the package is already building as noarch or for this arch - # or if it should not be built on this arch or it has already failed + # or if it should not be built on this arch or it has already failed or succeeded next if $pkg_tree{$prefix}{media}{$media}{arch}{noarch}; next if $pkg_tree{$prefix}{media}{$media}{arch}{$arch}; + next if $pkg_tree{$prefix}{media}{$media}{done_arch}{$arch}; next if $pkg_tree{$prefix}{media}{$media}{excluded_arch}{$arch}; next if $pkg_tree{$prefix}{media}{$media}{failed_arch}{$arch}; |