525 Commits

Author SHA1 Message Date
Tim Andersson
522adc7f7c
fix: get binary architecture from correct object for useless i386 check
After using the logging from the previous commit, we figured out which
variable to use to get the architecture for the binary packages of a
source package. This commit amends the issue by checking said variable.

This commit also removes the excess logging implemented in the former
commit.
2024-08-09 15:58:06 +01:00
Tim Andersson
e6db31c010
Move i386 functionality later in the code and add more verbose logging
Still trying to figure out this new functionality. We're getting close
with more logging, so I have added a little bit more logging, and
stopped using what was presumably a lit of all binaries for i386, and
now am using what is hopefully just the list of binaries for the source
package
2024-08-09 13:41:43 +01:00
Tim Andersson
2f6b76f0b5
add a logline stating the architecture for binary package
Since we can't seem to figure out where we're going wrong, I thought I'd
just add verbose logging here and hope it helps with debugging the new
feature, which aims to reduce the number of i386 tests queued.
2024-08-09 09:47:12 +01:00
Tim Andersson
ac324406a0
try a different approach to get the binary arch, include full traceback
The latest approach unfortunately didn't work, so I'm trying this
approach using the binaries_info variable.

I've also included the full traceback when the functionality doesn't
work, to enable easier debugging
2024-08-08 16:17:45 +01:00
Tim Andersson
fa37106b41
try another approach to get architecture of binaries
Here, instead of using suite_info we use the britney object to get the
architecture for a specific binary package
2024-08-08 11:52:38 +01:00
Tim Andersson
a0dece5b76
fix traceback in useless i386 tests check
The recent change in commit ac6b0c1ba780913a5626b3e08e2c56f0d8454248 is
not currently functional - it's hard to test and although similar
functionality exists elsewhere in the code, the changes in said commit
resulted in the following traceback:
```
'str' object has no attribute 'architecture'
```

This commit amends the issue by utilising the `binaries_info` variable
instead, with its properties defined here:
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu/tree/britney2/__init__.py#n304

Brian had previously made this commit:
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu/commit/?id=663bd2571cc81a9477408c0711aeb6b2452c17a8
to try and amend the issue, though it seems it hasn't helped.

This commit also adds a little bit more logging surrounding this new
functionality and also adds a break statement for efficiency.
2024-08-07 17:28:17 +01:00
Brian Murray
663bd2571c auotpkgtest.py: we need to look at the binaries to find the arch 2024-08-06 12:41:38 -07:00
Brian Murray
92d611c379 autopkgtest.py: return an empty list instead of tests
While tests is an empty list at this point we should make it more
obvious by returing an empty list which is what the rest of the code
does.
2024-08-06 09:02:22 -07:00
Brian Murray
6128a2c8b7 Merge remote-tracking branch 'andersson123/dont-queue-unnecessary-i386-tests' 2024-08-06 08:57:25 -07:00
Tim Andersson
ac6b0c1ba7
fix: don't queue unnecessary tests on i386
Recent investigations indicated that approximately 85% of all of the
i386 tests run at autopkgtest.ubuntu.com are pointless.

These tests are pointless for the following reason:
for end users, the dependencies of an arch: all package on
non-arch: all packages are satisfied by the amd64 binaries, not i386
binaries.

This commit introduces a check in the `tests_for_source` function, which
is the function that generates a list of tests to be requested for a
src package on a specified architecture.

The check itself takes the src package name, gets the list of binaries
for that src package and checks to see if the architecture for all of
the binaries of said src package is "all". If all the binaries are
Architecture: "all", then the function returns an empty list and no
tests will be requested for that src package on i386.

Since it's quite hard to test britney code, the implementation is
wrapped in a try except block as to avoid tracebacks blocking britney
runs.

The try except block should be removed once the change is considered to
be stable.
2024-07-23 17:06:33 +01:00
Brian Murray
e689f9eeac policies/email.py: do not return empty email addresses 2024-07-12 14:16:42 -07:00
Brian Murray
5cad435a0b autopkgtest.py: use decode not str
I was on holiday too long?
2024-06-25 15:23:49 -07:00
Brian Murray
4e3ee76caf autopkgtest.py: both checksums need to be strings 2024-06-25 14:50:50 -07:00
Brian Murray
7d997562a0 autopkgtest: add some debugging to checksum checking 2024-06-25 14:34:50 -07:00
Brian Murray
f7eb93beb2 autopkgtest.py Download the checksum first since it is smaller. 2024-06-25 14:01:06 -07:00
Tim Andersson
d5c0c1fbb3 feat: check database checksum instead of content-length header
autopkgtest-cloud will now serve:
autopkgtest.ubuntu.com/static/autopkgtest.db.sha256

Britney now calculates the sha256 of the newly downloaded db locally and
checks that it matches the sha256 file served by autopkgtest-cloud,
instead of checking that the content-length header matches the
size of the new downloaded database.

Since the most recent apache2 security update in focal [1], the
content-length header isn't served by default, and it seems that when
it is served it's not entirely accurate. This check has become
brittle, and so we have implemented this new mechanism.

[1] https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/2061816
2024-04-24 14:40:13 +01:00
Steve Langasek
62aa68142d fix syntax error 2024-04-12 13:48:34 -07:00
Steve Langasek
25eb52aa33 Patch fetch_db to handle missing 'content-length' header
We don't know why the autopkgtest webserver has stopped providing a
Content-Length header but the current code doesn't handle its absence, so
detect this rather than throwing an exception.

Should be reverted once the header is back, we don't want to be in the dark
about short reads of the db.
2024-04-12 09:48:26 -07:00
Steve Langasek
9e28fceafa Merge branch 'no-die-on-rabbitmq-failure' 2024-04-08 17:38:17 -07:00
Steve Langasek
7a8e98dfab Merge remote-tracking branch 'juergh/juergh/remove-raspi' 2024-04-01 20:11:22 -07:00
Steve Langasek
13f2ba4277 Handle ConnectionResetError from rabbitmq.
As seen in
https://ubuntu-archive-team.ubuntu.com/proposed-migration/log/noble/2024-04-01/12:52:27.log

Having an entire britney run bail because of a connection reset is a bad
outcome!

Instead, catch this exception and avoid adding the test in question to the
list of queued tests (we can pick it up on the next run).

Possibly we should do more clever handling of a ConnectionResetError such as
reconnecting, but this is a minimum fix that will stop britney from aborting.
2024-04-01 18:14:35 -07:00
Julian Andres Klode
2ac49d6e36 autopkgtest: Remove all-proposed for noble
We have migrated most, so let's stop doing this.
2024-03-28 14:49:44 +01:00
Julian Andres Klode
b2436f7ad5 Only remove tests from pending for non-ignored results
This avoids endlessly requeuing the test if the test produces
an older result.

This will make tests "disappear" if the infrastructure returns
old results for newer triggers but avoids the problem right
now where we end up queuing the same tests every run.
2024-03-25 18:17:47 +01:00
Julian Andres Klode
cdc015e7c4 Do not set all-proposed with migration-reference/0 2024-03-25 16:23:14 +01:00
Julian Andres Klode
467dfe8c8a Use all-proposed in noble for all architectures 2024-03-25 15:50:07 +01:00
Michael Hudson-Doyle
57710ee6e2 autopkgtest: Fix the date creation and comparison for time_t hack 2024-03-19 10:52:39 +01:00
Brian Murray
50d59b67db Fix a pep8 issue 2024-03-18 11:08:43 -07:00
Julian Andres Klode
bc3a6226ff Temporarily queue noble armhf tests with all-proposed=1
This is needed for the time_t transition.
2024-03-18 18:20:19 +01:00
Juerg Haefliger
700cf66c7b autopkgtest: Don't run tests on linux-meta-raspi
The raspi kernel doesn't support EFI and won't boot in OpenStack, so don't
try to run tests on it.

Signed-off-by: Juerg Haefliger <juergh@proton.me>
2024-02-20 10:37:01 +01:00
Łukasz 'sil2100' Zemczak
08a27a5456 Attempt to get swift results working properly by using a workaround from security-britney. 2024-02-01 12:40:10 +01:00
Steve Langasek
e5247de7b8 Add a dry-run option for the autopkgtest policy specifically
For rolling out britney on a new machine, we want to generate update_excuses
and update_output to confirm it's working correctly all the way through, so
we don't want to use the global --dry-run option; but we *do* want to
disable queuing tests and instead let the production instance of britney
queue the tests while we simply query the results.  Add support for
ADT_ENABLE=dry-run in britney.conf, parallelling the behavior of other
policies.
2023-03-10 12:59:39 -08:00
Steve Langasek
de19e280b2 More optimizations to not query unused baseline results 2022-08-23 15:05:50 -07:00
Steve Langasek
479662c63e Don't query for baseline results we won't use.
britney currently spends a majority of its runtime querying for baseline
test results that it won't find, and that it doesn't need.  Refactor to
eliminate many of these excess queries.
2022-08-23 14:03:41 -07:00
Brian Murray
0998eeaa1a We moved away from freenode a while ago 2022-06-29 10:52:13 -07:00
Łukasz 'sil2100' Zemczak
1c32e3014b Re-add Bileto 4810 to the temporary exclude list. 2022-03-30 10:42:26 +02:00
Łukasz 'sil2100' Zemczak
d51e0be23a Fix typo in bileto ppa name. 2022-03-28 18:46:07 +02:00
Julian Andres Klode
f078aa28d0 do not group the ppc64el rebuilds by their bileto ppa 2022-03-28 10:54:21 +02:00
Haw Loeung
fd20237673
Update email address used for emails
@canonical.com is now DKIM signed and SPF published which means emails
from proposed-migration running on snakefruit sending direct would
likely be caught out. Since we're here, the project is Ubuntu related
so switch to using an @ubuntu.com address instead.
2022-03-22 10:58:40 +11:00
Michael Hudson-Doyle
53aaf8f8e9 allow retrying on "Reference test in progress, but real test failed already" 2022-02-11 09:21:28 +13:00
Steve Langasek
d9d6261b0c Merge remote-tracking branch 'juliank/no-testing-triggers' 2021-11-19 08:34:59 -08:00
Steve Langasek
36459dcdb7 Fix fencepost error when fetching autopkgtest results from sqlite
When querying swift there is no way to take results only newer than a
specified point, you can only query newer than or equal to.  But for sqlite
we can absolutely use > instead of >= and avoid re-processing results we've
already seen.
2021-11-06 22:09:02 -07:00
Steve Langasek
bbdd8105b2 Split all triggers, not just the first one 2021-11-06 19:19:10 -07:00
Steve Langasek
e7eae446b6 Merge remote-tracking branch 'juliank/check-new-migration-reference' 2021-11-05 17:47:32 -07:00
Julian Andres Klode
11a023d133 Only log force-reset-test hints for matching packages
Logging all force-reset-test hints for every package causes
about 850 MB of logs in the last run of 880 MB of logs in total,
let's only log ones matching the package instead, as we do for
force-badtest.
2021-11-06 00:08:28 +01:00
Julian Andres Klode
e9576d55e2 Check for new baseline results if we don't have any yet
In Ubuntu, we only fetch results on demand, so we might not
have seen the results yet.

Debian always fetches results at the beginning so has all the
data ready.
2021-11-05 23:18:15 +01:00
Julian Andres Klode
b60734f118 Do not add autopkgtest triggers that are already in testing
If the version of the trigger in testing is the same, skip it.
2021-11-05 21:44:09 +01:00
Steve Langasek
d87dbf0db2 Merge branch 'adt-results-from-swift' 2021-10-22 16:16:06 -07:00
Steve Langasek
383887a8e3 bdmurray-linting 2021-10-22 16:12:26 -07:00
Steve Langasek
6cd47f352b In the autopkgtest policy, cache the list of force-reset-test hints once
Due to the number of hints in standing use in Ubuntu, hints.search() is an
expensive operation, and we call it once for *every single test* referenced
from -proposed.  Since force-reset-test are a small proportion of the hints
in use, searching once for all the hints of this type and only searching
this subset for each autopkgtest improves performance (with 23000
autopkgtests referenced in -proposed, this saves roughly 1 minute of
runtime, or 11% on a 9-minute britney run; the number of packages in
-proposed is typically much higher at other points in the release cycle,
therefore the absolute improvement in performance is expected to be
greater.)

The force-reset-test hints are an Ubuntu delta so this is not expected to be
upstreamed; and it could eventually be dropped if and when baseline
retesting is implemented in Ubuntu and the number of hints required drops.

This could be implemented with a more generic, elegant solution in
HintsCollection, but again, the scalability problem of hints is hopefully
short-lived so I didn't consider it worth the investment here.
2021-10-07 00:14:49 -07:00
Steve Langasek
794b14b316 Implement support for pulling autopkgtest results from sqlite db 2021-10-07 00:41:56 +00:00