qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug 1861161] Re: qemu-arm-static stuck with 100% CPU when cross-compili


From: Peter Maydell
Subject: [Bug 1861161] Re: qemu-arm-static stuck with 100% CPU when cross-compiling emacs
Date: Tue, 28 Jan 2020 16:50:33 -0000

Given the presence of getdents64 in the strace, I wonder if you are
running into LP:1805913. You could test this theory by running the test
with a host filesystem that is not ext4.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1861161

Title:
  qemu-arm-static stuck with 100% CPU when cross-compiling emacs

Status in QEMU:
  New

Bug description:
  Hello,

  I'm trying to build multi-arch docker images for
  https://hub.docker.com/r/silex/emacs.

  Here is the machine I'm building on (hetzner cloud machine):

  root@ubuntu-4gb-fsn1-1:~# lsb_release -a
  No LSB modules are available.
  Distributor ID: Ubuntu
  Description:    Ubuntu 18.04.3 LTS
  Release:        18.04
  Codename:       bionic
  root@ubuntu-4gb-fsn1-1:~# uname -a
  Linux ubuntu-4gb-fsn1-1 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 
UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

  Whenever I try to build the following alpine Dockerfile
  https://gitlab.com/Silex777/docker-
  emacs/blob/master/26.3/alpine/3.9/dev/Dockerfile like this:

  $ sysctl kernel.randomize_va_space=0
  $ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
  $ docker build --pull -t test --platform arm .

  It builds fine until this:

  root@ubuntu-4gb-fsn1-1:~# ps -ef | grep qemu
  root     26473 26465 99 14:26 pts/0    01:59:58 /usr/bin/qemu-arm-static 
../src/bootstrap-emacs -batch --no-site-file --no-site-lisp --eval (setq 
load-prefer-newer t) -f batch-byte-compile emacs-lisp/macroexp.el

  This is supposed to take a few seconds, but here it takes 100% CPU and
  never ends. When I strace the process I see a never ending loop like
  this:

  getdents64(5, /* 0 entries */, 2048)    = 0
  lseek(5, 0, SEEK_SET)                   = 0
  getdents64(5, /* 5 entries */, 2048)    = 120
  tgkill(5875, 5878, SIGRT_2)             = -1 EAGAIN (Resource temporarily 
unavailable)
  getdents64(5, /* 0 entries */, 2048)    = 0
  lseek(5, 0, SEEK_SET)                   = 0
  getdents64(5, /* 5 entries */, 2048)    = 120
  tgkill(5875, 5878, SIGRT_2)             = -1 EAGAIN (Resource temporarily 
unavailable)
  getdents64(5, /* 0 entries */, 2048)    = 0
  lseek(5, 0, SEEK_SET)                   = 0
  getdents64(5, /* 5 entries */, 2048)    = 120
  tgkill(5875, 5878, SIGRT_2)             = -1 EAGAIN (Resource temporarily 
unavailable)
  getdents64(5, /* 0 entries */, 2048)    = 0
  lseek(5, 0, SEEK_SET)                   = 0
  getdents64(5, /* 5 entries */, 2048)    = 120
  tgkill(5875, 5878, SIGRT_2)             = -1 EAGAIN (Resource temporarily 
unavailable)
  getdents64(5, /* 0 entries */, 2048)    = 0
  lseek(5, 0, SEEK_SET)                   = 0
  getdents64(5, /* 5 entries */, 2048)    = 120
  tgkill(5875, 5878, SIGRT_2)             = -1 EAGAIN (Resource temporarily 
unavailable)

  It happens with all the QEMU versions I tested:
  - 2.11.1 (OS version)
  - 4.1.1-1 (from multiarch/qemu-user-static:4.1.1-1)
  - 4.2.0-2 (from multiarch/qemu-user-static)

  Any ideas of what I could do to debug it further?

  Kind regards,
  Philippe

  p.s: Everything builds fine when the base image is ubuntu. I also had
  similar hangs with basic commands like "apt-get install foo"
  sometimes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1861161/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]