aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--lib/Iurt/Emi.pm4
-rw-r--r--lib/Iurt/Queue.pm4
-rw-r--r--t/emi_finisher.t4
-rw-r--r--t/emi_mandatory.t6
-rw-r--r--t/emi_non_mandatory.t10
-rwxr-xr-xulri4
7 files changed, 19 insertions, 15 deletions
diff --git a/NEWS b/NEWS
index 3d92b62..c877321 100644
--- a/NEWS
+++ b/NEWS
@@ -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
},
diff --git a/ulri b/ulri
index bd544b2..1e36f98 100755
--- a/ulri
+++ b/ulri
@@ -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};