dpkg-source: lock isar-apt while do_fetch_common_source

Message ID 20240701052847.883-1-ubely@ilbers.de
State Accepted, archived
Headers show
Series dpkg-source: lock isar-apt while do_fetch_common_source | expand

Commit Message

Uladzimir Bely July 1, 2024, 5:28 a.m. UTC
Task do_fetch_common_source requires isar-apt repo unchanged while
running "apt-get ... source ..." inside. Otherwise, it may fail on repo
"Sources" or "Packages" file:

```
Err:4 file:/isar-apt isar/main Sources
  Hash Sum mismatch
```
This is quite often reproduced in CI since commit 2ca3a7e.

Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
 meta/classes/dpkg-source.bbclass | 1 +
 1 file changed, 1 insertion(+)

Comments

Jan Kiszka July 1, 2024, 5:49 a.m. UTC | #1
On 01.07.24 07:28, Uladzimir Bely wrote:
> Task do_fetch_common_source requires isar-apt repo unchanged while
> running "apt-get ... source ..." inside. Otherwise, it may fail on repo
> "Sources" or "Packages" file:
> 
> ```
> Err:4 file:/isar-apt isar/main Sources
>   Hash Sum mismatch
> ```
> This is quite often reproduced in CI since commit 2ca3a7e.
> 
> Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
> ---
>  meta/classes/dpkg-source.bbclass | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/meta/classes/dpkg-source.bbclass b/meta/classes/dpkg-source.bbclass
> index d6ab5aad..a70a392d 100644
> --- a/meta/classes/dpkg-source.bbclass
> +++ b/meta/classes/dpkg-source.bbclass
> @@ -41,6 +41,7 @@ do_dpkg_build[depends] += "${BPN}:do_deploy_source"
>  SCHROOT_MOUNTS = "${WORKDIR}:/work ${REPO_ISAR_DIR}/${DISTRO}:/isar-apt"
>  
>  do_fetch_common_source[depends] += "${SCHROOT_DEP} ${BPN}:do_deploy_source"
> +do_fetch_common_source[lockfiles] = "${REPO_ISAR_DIR}/isar.lock"
>  do_fetch_common_source[network] = "${TASK_USE_SUDO}"
>  do_fetch_common_source() {
>      schroot_create_configs

Too bad that reprepro does not support atomic updates - agreed, needed.

Jan
Uladzimir Bely July 4, 2024, 4 a.m. UTC | #2
On Mon, 2024-07-01 at 08:28 +0300, Uladzimir Bely wrote:
> Task do_fetch_common_source requires isar-apt repo unchanged while
> running "apt-get ... source ..." inside. Otherwise, it may fail on
> repo
> "Sources" or "Packages" file:
> 
> ```
> Err:4 file:/isar-apt isar/main Sources
>   Hash Sum mismatch
> ```
> This is quite often reproduced in CI since commit 2ca3a7e.
> 
> Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
> ---
>  meta/classes/dpkg-source.bbclass | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/meta/classes/dpkg-source.bbclass b/meta/classes/dpkg-
> source.bbclass
> index d6ab5aad..a70a392d 100644
> --- a/meta/classes/dpkg-source.bbclass
> +++ b/meta/classes/dpkg-source.bbclass
> @@ -41,6 +41,7 @@ do_dpkg_build[depends] += "${BPN}:do_deploy_source"
>  SCHROOT_MOUNTS = "${WORKDIR}:/work ${REPO_ISAR_DIR}/${DISTRO}:/isar-
> apt"
>  
>  do_fetch_common_source[depends] += "${SCHROOT_DEP}
> ${BPN}:do_deploy_source"
> +do_fetch_common_source[lockfiles] = "${REPO_ISAR_DIR}/isar.lock"
>  do_fetch_common_source[network] = "${TASK_USE_SUDO}"
>  do_fetch_common_source() {
>      schroot_create_configs
> -- 
> 2.44.2
> 

Applied to next.

Patch

diff --git a/meta/classes/dpkg-source.bbclass b/meta/classes/dpkg-source.bbclass
index d6ab5aad..a70a392d 100644
--- a/meta/classes/dpkg-source.bbclass
+++ b/meta/classes/dpkg-source.bbclass
@@ -41,6 +41,7 @@  do_dpkg_build[depends] += "${BPN}:do_deploy_source"
 SCHROOT_MOUNTS = "${WORKDIR}:/work ${REPO_ISAR_DIR}/${DISTRO}:/isar-apt"
 
 do_fetch_common_source[depends] += "${SCHROOT_DEP} ${BPN}:do_deploy_source"
+do_fetch_common_source[lockfiles] = "${REPO_ISAR_DIR}/isar.lock"
 do_fetch_common_source[network] = "${TASK_USE_SUDO}"
 do_fetch_common_source() {
     schroot_create_configs