Thursday, 28 November 2024

Re: +1 Maintenance Report

On Wed, Nov 27, 2024, Steve Langasek wrote:
> Hi Adrien,
>
> On Mon, Nov 25, 2024 at 05:26:49PM +0100, Adrien Nader wrote:
> > For rust, I'm wondering if it's worth working on the packages unless
> > there's a strong specific need (you can read the Rust section for details
> > :) ).
>
> My position on this is: random Rust crates with no libraries/applications as
> reverse-build-dependencies (whether those are in Rust or not) should be
> removed rather than fixed. The only question is whether it's easier to fix
> them than to work out whether they have reverse-dependencies, since
> `reverse-depends` doesn't handle virtual packages well at all.

I understand why but for most people, removing a package is much more
involved that adding triggers for instance.

> > # openmpi transition
>
> > Openmpi has been blocking a large number of migrations (not surprising
> > considering how many packages depend on it).
>
> This includes blocking boost, which in turn blocks exiv2 NBS removal, which
> has prevented us from having any successful image builds for two community
> flavors (edubuntu, ubuntustudio) since plucky opened.
>
> Question, should we just roll back openmpi transition temporarily to unblock
> the other stuff?
>
> > I found out that C++ support has been dropped from the standard and now from
> > the library. This isn't reflected in the packaging and packages end up failing
> > to find "libmpi_cxx.so.40". This was the most common failure but not the only
> > one.
>
> That's pretty surprising to me and seems like a good argument that the new
> openmpi was uploaded prematurely to plucky.
>

It's difficult for me to answer that as I don't know the fallout to
expect from temporarily rolling back a transition.

BTW, here is the list of packages blocked in -proposed due to openmpi (and
possibly other reaons):

abyss ampliconnoise apbs arpack boost1.83 camitk cctools combblas
deal.ii dolfin dune-grid dune-uggrid eckit espresso esys-particle
examl fckit ffindex fftw3 fiat-ecmwf freefem++ garli genomicsdb gerris
getdp gloo gloo-cuda gpaw gretl gromacs groops gyoto h5py hyphy hypre
mathgl meep-mpi-default mfem molds mpi4py mumps murasaki music netgen
netpipe nwchem open-coarrays opendrop opm-grid opm-simulators
opm-upscaling p4est paraview petsc petsc4py phyml prime-phylo relion
rmpi silo-llnl slepc slepc4py sopt starpu starpu-contrib sundials
superlu-dist tree-puzzle vtk9

Most of them are leaf or almost-leaf packages but there are a few
annoying ones. Some have their own transitions going on although they
seem mostly done now if I read the transition tracker correctly (even
slepc/petsc).

There aren't that many failing tests for the openmpi transition now.
I've just made several of them pass by adjusting triggers and more
results are coming but it'll take a few hours for britney to reflect
that (and there's a queue for tests on ppc64el).

For the errors not related to libmpi_cxx.so.40, I don't have much more
insight however but I haven't investigated them at all. I estimate
that's at most 10 packages, probably closer to 4 or 5.

NB: petsc has a few new versions in unstable that may be worth
checking

> > The transition tracker includes a permanent tracker for a number of
> > ecosystems, including Coq. It can guide no-change rebuilds (which need to be
> > done in the order shown by the transition tracker).
>
> Well, no; there are bugs wrt the ordering the transition tracker says
> packages should be built with, which is one of my main grievances with the
> tracker. (The tracker expects you to complete all the builds at a given
> "level" first even if a package at a given level has no
> reverse-build-depends.)

But does that make the ordering wrong? What you describe sounds like
it's going to be merely less than optimal but not wrong.

> > Autopkgtest will try to install the test deps with "all proposed" but somehow
> > that doesn't seem effective. Not sure why because I thought that would be
> > enough but in practice it's additional triggers which make the tests succeed.
>
> Do you know that retry-autopkgtest-regressions with no arguments will
> synthesize an autopkgtest retry request that consolidates all triggers that
> it finds failures for in update_excuses? e.g.:
>
> $ retry-autopkgtest-regressions |grep package=mpi4py
> https://autopkgtest.ubuntu.com/request.cgi?release=plucky&arch=s390x&package=mpi4py&trigger=mpi4py%2F4.0.1-3ubuntu1&trigger=openmpi%2F5.0.5-6&trigger=python3-defaults%2F3.12.7-1
> [...]
> $
>
> > # Rust
>
> > Rust does things slightly differently than Coq but the result is the same.
> > Very often, tests need to use rust packages from proposed. They don't need
> > all-proposed but instead something that would be "all-rust-proposed".
>
> Is there a common failure pattern when using all-proposed?

I wasn't aware that retry-autopkgtest-regressions did that and I had
unfortunately assumed it didn't!
For rust packages, that behavior is somewhat wider than only adding the
rust-* packages but only a minor difference overall.

The idea of "all-rust-proposed" was not about a failure but rather being
able to track down which packages were effectively involved in tests
passing later on.
If only doing it for rust- packages is 99% as effective but without
pulling all proposed, that seemed interesting to me. However, the
retry-autopkgtest-regressions that you outlined above is just as good
and there's probably no reason to spend time adding complexity trying to
shrink the new triggers for rust packages.

> > # Packages without issues but not transitioning
>
> > There are a number of packages that are not moving, yet there is no reason
> > for them to be stuck according to update_excuses.html. There is some more
> > data in update_output.txt but it's not directly usable: at best it will
> > give hints
> >
> > I found that apt can help (and didn't yet manage to use dose in the proper
> > way). Rought steps are:
> > - open update_output.txt,
> > - pick the sources packages from a "trying" line,
> > - also pick the binaries in the following line,
> > - use chdist to apt list binary packages in -proposed (and only -proposed) for
> > the source package,
> > - use chdist to apt list binary packages _not_ in -proposed for the binaries
> > listed by britney
> > - use chdist in a full environment to apt install both set of binaries
> > at once (the ones reported by britney and the ones reported by apt using
> > only -proposed)
>
> Have you seen update-output-helper in lp:ubuntu-archive-tools? It tries to
> automate the process of going from a failed line in update_output to a
> chdist environment you can use to see why apt says the newly-uninstallable
> packages are uninstallable.
>
> $ update-output-helper -u
> [...]
> $ update-output-helper libgit2
> [...]
> $ chdist -d "/home/vorlon/.cache/brapt" apt u-a-h --dry-run install librust-bat-dev
> [...]
> NOTE: This is only a simulation!
> apt needs root privileges for real execution.
> Keep also in mind that locking is deactivated,
> so don't depend on the relevance to the real current situation!
> Reading package lists... Done
> Building dependency tree... Done
> Some packages could not be installed. This may mean that you have
> requested an impossible situation or if you are using the unstable
> distribution that some required packages have not yet been created
> or been moved out of Incoming.
> The following information may help to resolve the situation:
>
> The following packages have unmet dependencies:
> librust-libgit2-sys-dev : Depends: libgit2-dev (< 1.8~~) but 1.8.4+ds-1ubuntu1 is to be installed
> E: Unable to correct problems, you have held broken packages.
> $
>
> etc.
>
> Badly underdocumented. (Documentation at top of script, not in --help)
> Commandline should be improved. (need for -d option should be removed,
> should only need a chdist name.)

I had seen it but that's it. Actually I had seen someone not on my
timezeone say you had told them about it, but I didn't know more about it
and I didn't understand the script at first, then forgot a bit about it
(well, until writing my report, and then forgot again :) ).
BTW, I actually looked for a --help message both back then and again
just now. :P

I think what I wrote is actually very close to update-output-helper. It
was different initially but it ended up being very similar.
There's probably an advantage to my script which is being stateless: it
doesn't need to change configuration files. It's also slightly more
automated and pulls the list of conflicting packages automatically. I
haven't compared the results however!

> > ## Snapd
>
> > I re-triggered tests for a snapd SRU across several releases. The backers
> > of the SRU were asking for people to retry the failing tests through a
> > launchpad bug. Considering that the tests required several retries, that
> > felt very inefficient and long for them. I guess IRC and providing retry
> > links would have been more efficient but it still requires involving
> > several people which will lead to latency and frustration. Except by
> > broadening retry rights, I'm not sure how to really fix that however.
>
> we should in general be broadening the rights to retry failed autopkgtests
> to include "anyone who might have a legitimate need for them". Does not
> need to be package uploaders. You (or they) should be able to talk to the
> Ubuntu Release Management Team about this.

Somehow I can't find the corresponding bug again but I'll make sure to
redirect people that way next time.

--
Adrien

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel