AlmaLinux / AlmaLinux/build-system

Multilib processing fails when a build contains two platforms

Aberta
#512 0 comentários 0 reações 0 responsáveis Ver no GitHub
bug build-node good first issue
Linguagem predominante
Sem dados de linguagem
Estrelas
32
Forks
11
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

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.

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.