openSUSE / open-build-service

Build and distribute Linux packages from sources in an automatic, consistent and reproducible way #obs
https://openbuildservice.org
GNU General Public License v2.0
935 stars 438 forks source link

worker: /proc/sys/fs/binfmt_misc/register: write failed #690

Open totoroliu opened 10 years ago

totoroliu commented 10 years ago

Setup:

Machine1 (OBS server) Machine2 (OBS worker)
openSUSE 13.1 (x86_64) openSUSE 13.1 (x86_64)
OBS server: 2.5.3 OBS worker: 2.5.3
build-20140424-1.1 qemu-linux-user-2.0.0-239.1
build-initvm-x86_64-20140424-1.1 OBS_WORKER_INSTANCES=1

I'm using "QEMU chroot" cross-build setup. I have below in the project config:

%ifarch armv7el
Hostarch: x86_64
Preinstall: qemu-linux-user-arm
%endif

Failure:

[    1s] write: Invalid argument
[    1s] /proc/sys/fs/binfmt_misc/register: write failed
[    1s] /var/run/obs/worker/1/build/qemu-reg: line 7: write failed. Content: :aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P
[    1s] 
[    1s] /.build/qemu-reg: No such file or directory
[    1s] /.build/qemu-reg: failed. Trying alternate binfmt file
[    1s] /usr/lib/build/qemu-reg: No such file or directory
[    1s] /usr/lib/build/qemu-reg: binfmt registration failed

Steps:

1. When the worker run the first (since bootup) cross build, there's no failure message:
[    0s] Memory limit set to 35790464KB
[    0s] Using BUILD_ROOT=/local/ramdrive/obs/worker/root_1
[    0s] Using BUILD_ARCH=armv7el
[    0s] 
[    0s] 
[    0s] obs-worker-008 started "build krb5.spec" at Fri May 30 17:49:37 UTC 2014.
[    0s] 
[    0s] Building krb5 for project 'Trunk:MxC' repository 'standard' arch 'armv7el' srcmd5 '035ac9ac0a2a378824d5a9d16b62ab8a'
[    0s] 
[    0s] processing recipe /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec ...
[    0s] running changelog2spec --target rpm --file /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec
[    0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --clean --rpmlist /local/ramdrive/obs/worker/root_1/.build.rpmlist /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec build rpmlint-Factory ...
[    0s] registering binfmt handlers for cross build: /var/run/obs/worker/1/build/initvm.x86_64
[    0s] interpreter for 'aarch64' is -1
[    0s] interpreter for 'aarch64' is -1
[    0s] interpreter for 'arm' is -1
[    0s] interpreter for 'armeb' is -1
[    0s] interpreter for 'ppc' is -1
[    0s] interpreter for 'mips' is -1
[    0s] interpreter for 'mipsel' is -1
[    0s] interpreter for 'sh4' is -1
[    0s] interpreter for 'sh4eb' is -1
[    1s] cycle: glibc -> glibc-common -> bash
[    1s]   breaking dependency glibc-common -> bash
[    1s] cycle: glibc -> glibc-common
[    1s]   breaking dependency glibc -> glibc-common
[    1s] cycle: glibc -> nss-softokn-freebl
[    1s]   breaking dependency nss-softokn-freebl -> glibc
[    1s] cycle: libgcc -> glibc -> nss-softokn-freebl
[    1s]   breaking dependency glibc -> nss-softokn-freebl
[    1s] cycle: libgcc -> glibc
[    1s]   breaking dependency libgcc -> glibc
[    1s] cycle: coreutils -> pam
[    1s]   breaking dependency coreutils -> pam
[    1s] cycle: rpm-libs -> rpm
[    1s]   breaking dependency rpm -> rpm-libs
[    1s] [1/62] preinstalling setup...
2. For any subsequent cross-build, there's a failure message (even I immediately do the rebuilt of the same package):
[    0s] Memory limit set to 35790464KB
[    0s] Using BUILD_ROOT=/local/ramdrive/obs/worker/root_1
[    0s] Using BUILD_ARCH=armv7el
[    0s] 
[    0s] 
[    0s] obs-worker-008 started "build krb5.spec" at Fri May 30 18:23:47 UTC 2014.
[    0s] 
[    0s] Building krb5 for project 'Trunk:MxC' repository 'standard' arch 'armv7el' srcmd5 '035ac9ac0a2a378824d5a9d16b62ab8a'
[    0s] 
[    0s] processing recipe /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec ...
[    0s] running changelog2spec --target rpm --file /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec
[    0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --clean --rpmlist /local/ramdrive/obs/worker/root_1/.build.rpmlist /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec build rpmlint-Factory ...
[    1s] registering binfmt handlers for cross build: /var/run/obs/worker/1/build/initvm.x86_64
[    1s] interpreter for 'aarch64' is -1
[    1s] write: Invalid argument
[    1s] /proc/sys/fs/binfmt_misc/register: write failed
[    1s] /var/run/obs/worker/1/build/qemu-reg: line 7: write failed. Content: :aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P
[    1s] 
[    1s] /.build/qemu-reg: No such file or directory
[    1s] /.build/qemu-reg: failed. Trying alternate binfmt file
[    1s] /usr/lib/build/qemu-reg: No such file or directory
[    1s] /usr/lib/build/qemu-reg: binfmt registration failed
[    2s] cycle: glibc -> glibc-common -> bash
[    2s]   breaking dependency glibc-common -> bash
[    2s] cycle: glibc -> glibc-common
[    2s]   breaking dependency glibc -> glibc-common
[    2s] cycle: glibc -> nss-softokn-freebl
[    2s]   breaking dependency nss-softokn-freebl -> glibc
[    2s] cycle: libgcc -> glibc -> nss-softokn-freebl
[    2s]   breaking dependency glibc -> nss-softokn-freebl
[    2s] cycle: libgcc -> glibc
[    2s]   breaking dependency libgcc -> glibc
[    2s] cycle: coreutils -> pam
[    2s]   breaking dependency coreutils -> pam
[    2s] cycle: rpm-libs -> rpm
[    2s]   breaking dependency rpm -> rpm-libs
[    2s] [1/62] preinstalling setup...
3. After reboot on the worker machine, the first build is back to OK, and the subsequent builds are with failure message:
[    0s] Memory limit set to 35790464KB
[    0s] Using BUILD_ROOT=/local/ramdrive/obs/worker/root_1
[    0s] Using BUILD_ARCH=armv7el
[    0s] 
[    0s] 
[    0s] obs-worker-008 started "build krb5.spec" at Fri May 30 18:40:02 UTC 2014.
[    0s] 
[    0s] Building krb5 for project 'Trunk:MxC' repository 'standard' arch 'armv7el' srcmd5 '035ac9ac0a2a378824d5a9d16b62ab8a'
[    0s] 
[    0s] processing recipe /local/ramdrive/obs/worker/root_2/.build-srcdir/krb5.spec ...
[    0s] running changelog2spec --target rpm --file /local/ramdrive/obs/worker/root_2/.build-srcdir/krb5.spec
[    0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --clean --rpmlist /local/ramdrive/obs/worker/root_2/.build.rpmlist /local/ramdrive/obs/worker/root_2/.build-srcdir/krb5.spec build rpmlint-Factory ...
[    4s] registering binfmt handlers for cross build: /var/run/obs/worker/2/build/initvm.x86_64
[    4s] interpreter for 'aarch64' is -1
[    4s] interpreter for 'aarch64' is -1
[    4s] interpreter for 'arm' is -1
[    4s] interpreter for 'armeb' is -1
[    4s] interpreter for 'ppc' is -1
[    4s] interpreter for 'mips' is -1
[    4s] interpreter for 'mipsel' is -1
[    4s] interpreter for 'sh4' is -1
[    4s] interpreter for 'sh4eb' is -1
[    5s] cycle: glibc -> glibc-common -> bash
[    5s]   breaking dependency glibc-common -> bash
[    5s] cycle: glibc -> glibc-common
[    5s]   breaking dependency glibc -> glibc-common
[    5s] cycle: glibc -> nss-softokn-freebl
[    5s]   breaking dependency nss-softokn-freebl -> glibc
[    5s] cycle: libgcc -> glibc -> nss-softokn-freebl
[    5s]   breaking dependency glibc -> nss-softokn-freebl
[    5s] cycle: libgcc -> glibc
[    5s]   breaking dependency libgcc -> glibc
[    5s] cycle: coreutils -> pam
[    5s]   breaking dependency coreutils -> pam
[    5s] cycle: rpm-libs -> rpm
[    5s]   breaking dependency rpm -> rpm-libs
[    5s] [1/62] preinstalling setup...
[    0s] Memory limit set to 35790464KB
[    0s] Using BUILD_ROOT=/local/ramdrive/obs/worker/root_1
[    0s] Using BUILD_ARCH=armv7el
[    0s] 
[    0s] 
[    0s] obs-worker-008 started "build krb5.spec" at Fri May 30 18:50:38 UTC 2014.
[    0s] 
[    0s] Building krb5 for project 'Trunk:MxC' repository 'standard' arch 'armv7el' srcmd5 '035ac9ac0a2a378824d5a9d16b62ab8a'
[    0s] 
[    0s] processing recipe /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec ...
[    0s] running changelog2spec --target rpm --file /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec
[    0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --clean --rpmlist /local/ramdrive/obs/worker/root_1/.build.rpmlist /local/ramdrive/obs/worker/root_1/.build-srcdir/krb5.spec build rpmlint-Factory ...
[    3s] registering binfmt handlers for cross build: /var/run/obs/worker/1/build/initvm.x86_64
[    3s] interpreter for 'aarch64' is -1
[    3s] write: Invalid argument
[    3s] /proc/sys/fs/binfmt_misc/register: write failed
[    3s] /var/run/obs/worker/1/build/qemu-reg: line 7: write failed. Content: :aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P
[    3s] 
[    3s] /.build/qemu-reg: No such file or directory
[    3s] /.build/qemu-reg: failed. Trying alternate binfmt file
[    3s] /usr/lib/build/qemu-reg: No such file or directory
[    3s] /usr/lib/build/qemu-reg: binfmt registration failed
[    4s] cycle: glibc -> glibc-common -> bash
[    4s]   breaking dependency glibc-common -> bash
[    4s] cycle: glibc -> glibc-common
[    4s]   breaking dependency glibc -> glibc-common
[    4s] cycle: glibc -> nss-softokn-freebl
[    4s]   breaking dependency nss-softokn-freebl -> glibc
[    4s] cycle: libgcc -> glibc -> nss-softokn-freebl
[    4s]   breaking dependency glibc -> nss-softokn-freebl
[    4s] cycle: libgcc -> glibc
[    4s]   breaking dependency libgcc -> glibc
[    4s] cycle: coreutils -> pam
[    4s]   breaking dependency coreutils -> pam
[    4s] cycle: rpm-libs -> rpm
[    4s]   breaking dependency rpm -> rpm-libs
[    4s] [1/62] preinstalling setup...
totoroliu commented 10 years ago

No matter with or without the failure message, the build result are all turn successful and valid.