AlmaLinux / AlmaLinux/build-system

Multilib processing fails when a build contains two platforms

Offen
#512 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug build-node good first issue
Vorherrschende Sprache
Keine Sprachdaten
Sterne
32
Forks
11
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

As uncovered in [this build](https://build.almalinux.org/build/47501), multilib processing is failing due to the following error:

```
asyncpg.exceptions.CardinalityViolationError: more than one row returned by a subquery used as an expression
```

The query in question is:

```
subquery = (
select(models.BuildTask.id)
.where(
sqlalchemy.and_(
models.BuildTask.build_id == build_task.build_id,
models.BuildTask.index == build_task.index,
models.BuildTask.arch == "i686",
)
)
.scalar_subquery()
)
```

Since the build contains 2 platforms (and multilib applies to both), the subquery is returning 2 ids, one for Alma 8 and another one for Alma 9, while we expect to find exactly one.

I imagine that fixing the problem should be as simple as adding the condition ` models.BuildTask.platform_id == build_task.platform_id` to the subquery, to ensure that we limit the results to the i686 packages of the same platform we are processing at that time.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.