Browse Source

Merge "Limit qemu-img execution arenas" into stable/train

changes/49/795349/1
Zuul 2 weeks ago
committed by Gerrit Code Review
parent
commit
90c9fc607a
2 changed files with 16 additions and 0 deletions
  1. +9
    -0
      ironic_python_agent/shell/write_image.sh
  2. +7
    -0
      releasenotes/notes/limit-qemu-img-malloc-arena-025ed84115481eae.yaml

+ 9
- 0
ironic_python_agent/shell/write_image.sh View File

@ -48,6 +48,15 @@ log "Imaging $IMAGEFILE to $DEVICE"
# limit the memory usage for qemu-img to 2 GiB
ulimit -v 2097152
# NOTE(TheJulia): qemu-img uses multiple threads by default and in
# cross-thread memory allocation lock conflicts, glibc will ultimately
# attempt to provide it with an additional arena to allocate from, however
# the running default, when not overridden is 8 * ncpu * the footprint, which
# very quickly exceeds the ulimit. This is most observable on CI systems where
# cross-vcpu thread locking can result in a conflict that wouldn't normally be
# as likely on physical hardware.
# See discussion on https://bugzilla.redhat.com/show_bug.cgi?id=1892773
export MALLOC_ARENA_MAX=3
qemu-img convert -t directsync -O host_device $IMAGEFILE $DEVICE
sync


+ 7
- 0
releasenotes/notes/limit-qemu-img-malloc-arena-025ed84115481eae.yaml View File

@ -0,0 +1,7 @@
---
fixes:
- |
Fixes failures with disk image conversions which result in memory
allocation or input/output errors due to memory limitations by limiting
the number of available memory allocation pools to a non-dynamic
reasonable number which should not exceed the available system memory.

Loading…
Cancel
Save