qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [Bug 1488901] Re: KVM guest crashes when doing a block comm


From: Christian Roessner
Subject: [Qemu-devel] [Bug 1488901] Re: KVM guest crashes when doing a block commit command
Date: Fri, 28 Aug 2015 07:12:50 -0000

Problem is solved in current master branch

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

Title:
  KVM guest crashes when doing a block commit command

Status in QEMU:
  New

Bug description:
  I scripted a simple backup procedure that works like this:

  1. Create snapshot

          virsh snapshot-create-as ${VM} "backup-${VM}" \
              --diskspec vda,file=${SNAP}/backup-snapshot-${VM}.qcow2 \
              --disk-only \
              --atomic \
              --quiesce \
              --no-metadata

  2. Copy disk image to different location

      cp -f --sparse=always /var/lib/libvirt/images/${VM}.img ${DST}/

  3. Merge snapshot back to base image

      virsh blockcommit ${VM} vda --wait --active --verbose
      virsh blockjob ${VM} ${SNAP}/backup-snapshot-${VM}.qcow2 --pivot

  4. Copy XML liver file

      cp -f /etc/libvirt/qemu/${VM}.xml ${DST}/

  5. Remove old snapshot file

          rm -f ${SNAP}/backup-snapshot-${VM}.qcow2

  When it comes to the blockcommit operation, the guest receives a
  SIGABRT.

  (gdb) bt
  #0  0x00007f4b6e6ccb8e in raise () from /lib64/libc.so.6
  #1  0x00007f4b6e6ce391 in abort () from /lib64/libc.so.6
  #2  0x0000555a316a8c39 in qemu_coroutine_enter (co=0x555a34651a50, opaque=0x0)
      at 
/var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/qemu-coroutine.c:111
  #3  0x0000555a316a8eda in qemu_co_queue_run_restart (address@hidden)
      at 
/var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/qemu-coroutine-lock.c:59
  #4  0x0000555a316a8b53 in qemu_coroutine_enter (co=0x555a33d271b0, 
opaque=<optimized out>)
      at 
/var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/qemu-coroutine.c:118
  #5  0x0000555a316e3adf in bdrv_co_aio_rw_vector (address@hidden,
      address@hidden, address@hidden,
      address@hidden, address@hidden(unknown: 0),
      address@hidden <mirror_read_complete>, opaque=0x555a3367d2c0, 
address@hidden)
      at 
/var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/block/io.c:2142
  #6  0x0000555a316e4b1e in bdrv_aio_readv (address@hidden,
      address@hidden, address@hidden,
      address@hidden, address@hidden <mirror_read_complete>,
      address@hidden)
      at 
/var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/block/io.c:1744
  #7  0x0000555a316e2ccf in mirror_iteration (s=0x555a34a0c250)
      at 
/var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/block/mirror.c:302
  #8  mirror_run (opaque=0x555a34a0c250)
      at 
/var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/block/mirror.c:512
  #9  0x0000555a316a9a5a in coroutine_trampoline (i0=<optimized out>, 
i1=<optimized out>)
      at 
/var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/coroutine-ucontext.c:80
  #10 0x00007f4b6e6df4a0 in ?? () from /lib64/libc.so.6
  #11 0x00007ffe67b71840 in ?? ()
  #12 0x0000000000000000 in ?? ()
  (gdb)

  There is one very interesting aspect:

  After the guest died, I can restart it and if I do the exact same
  blockcommit and blockjob as shown above, everything succeeds without
  errors. That's strange.

  This is from my libvirt log. So you can see how the guest was started
  and the C-routine error message:

  2015-08-24 18:38:13.077+0000: starting up libvirt version: 1.2.18, qemu 
version: 2.4.0
  LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
QEMU_AUDIO_DRV=none /usr/bin/qemu-system-x86_64 -name 
mx.roessner-net.de-TESTING -S -machine pc-i440fx-2.1,accel=kvm,usb=off -cpu 
qemu64,+kvm_pv_eoi -m 4096 -realtime mlock=off -smp 
4,sockets=4,cores=1,threads=1 -uuid d86b82d5-153f-4dd9-aa66-d98c2e65db8c 
-no-user-config -nodefaults -device sga -chardev 
socket,id=charmonitor,path=/var/lib/libvirt/qemu/mx.roessner-net.de-TESTING.monitor,server,nowait
 -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew 
-global kvm-pit.lost_tick_policy=discard -no-shutdown -boot 
order=cd,menu=on,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 
-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x8 -drive 
file=/var/lib/libvirt/images/mx.roessner-net.de-TESTING.img,if=none,id=drive-virtio-disk0,format=raw,cache=writeback
 -device 
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0
 -drive if=none,id=drive-ide0-1-0,readonly=on,format=raw -device 
ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev 
tap,fd=34,id=hostnet0,vhost=on,vhostfd=35 -device 
virtio-net-pci,netdev=hostnet0,id=net0,mac=54:52:00:27:ac:8d,bus=pci.0,addr=0x3 
-chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 
-chardev 
socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/mx.roessner-net.de-TESTING.org.qemu.guest_agent.0,server,nowait
 -device 
virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0
 -vnc 127.0.0.1:7 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device 
i6300esb,id=watchdog0,bus=pci.0,addr=0x7 -watchdog-action reset -device 
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -object 
rng-random,id=objrng0,filename=/dev/random -device 
virtio-rng-pci,rng=objrng0,id=rng0,bus=pci.0,addr=0x6 -msg timestamp=on
  char device redirected to /dev/pts/8 (label charserial0)
  Formatting 
'/var/backups/snapshots/backup-snapshot-mx.roessner-net.de-TESTING.qcow2', 
fmt=qcow2 size=107374182400 
backing_file='/var/lib/libvirt/images/mx.roessner-net.de-TESTING.img' 
backing_fmt='raw' encryption=off cluster_size=65536 lazy_refcounts=off 
refcount_bits=16
  Formatting 
'/var/backups/snapshots/backup-snapshot-mx.roessner-net.de-TESTING.qcow2', 
fmt=qcow2 size=107374182400 
backing_file='/var/lib/libvirt/images/mx.roessner-net.de-TESTING.img' 
backing_fmt='raw' encryption=off cluster_size=65536 lazy_refcounts=off 
refcount_bits=16
  Co-routine re-entered recursively
  2015-08-24 19:43:17.700+0000: shutting down

  Here is my envirmornment information:

  emerge --info qemu
  Portage 2.2.20.1 (python 2.7.9-final-0, hardened/linux/amd64/no-multilib, 
gcc-4.8.4, glibc-2.20-r2, 4.1.6-gentoo x86_64)
  =================================================================
                           System Settings
  =================================================================
  System uname: address@hidden
  KiB Mem:    49454932 total,   7729532 free
  KiB Swap:    2097148 total,   2097148 free
  Timestamp of repository gentoo: Tue, 25 Aug 2015 21:15:01 +0000
  sh bash 4.3_p39
  ld GNU ld (Gentoo 2.24 p1.4) 2.24
  ccache version 3.1.9 [enabled]
  app-shells/bash:          4.3_p39::gentoo
  dev-lang/perl:            5.20.2::gentoo
  dev-lang/python:          2.7.9-r1::gentoo, 3.4.1::gentoo
  dev-util/ccache:          3.1.9-r4::gentoo
  dev-util/cmake:           3.2.2::gentoo
  dev-util/pkgconfig:       0.28-r2::gentoo
  sys-apps/baselayout:      2.2::gentoo
  sys-apps/openrc:          0.17::gentoo
  sys-apps/sandbox:         2.6-r1::gentoo
  sys-devel/autoconf:       2.69::gentoo
  sys-devel/automake:       1.14.1::gentoo, 1.15::gentoo
  sys-devel/binutils:       2.24-r3::gentoo
  sys-devel/gcc:            4.8.4::gentoo
  sys-devel/gcc-config:     1.7.3::gentoo
  sys-devel/libtool:        2.4.6::gentoo
  sys-devel/make:           4.1-r1::gentoo
  sys-kernel/linux-headers: 3.18::gentoo (virtual/os-headers)
  sys-libs/glibc:           2.20-r2::gentoo
  Repositories:

  gentoo
      location: /usr/portage
      sync-type: rsync
      sync-uri: rsync://rsync.europe.gentoo.org/gentoo-portage
      priority: -1000

  x-portage
      location: /usr/local/portage
      masters: gentoo
      priority: 0

  ACCEPT_KEYWORDS="amd64"
  ACCEPT_LICENSE="* address@hidden"
  CBUILD="x86_64-pc-linux-gnu"
  CFLAGS="-O2 -pipe"
  CHOST="x86_64-pc-linux-gnu"
  CONFIG_PROTECT="/etc /usr/share/easy-rsa /usr/share/gnupg/qualified.txt"
  CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d 
/etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release 
/etc/php/apache2-php5.6/ext-active/ /etc/php/cgi-php5.6/ext-active/ 
/etc/php/cli-php5.6/ext-active/ /etc/revdep-rebuild /etc/sandbox.d 
/etc/terminfo"
  CXXFLAGS="-O2 -pipe"
  DISTDIR="/usr/portage/distfiles"
  EMERGE_DEFAULT_OPTS="--keep-going --with-bdeps=y --binpkg-respect-use=y 
--binpkg-changed-deps=y --usepkg=y --rebuilt-binaries=y 
--rebuilt-binaries-timestamp=20140405050000"
  FCFLAGS="-O2 -pipe"
  FEATURES="assume-digests binpkg-logs ccache compressdebug 
config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news 
parallel-fetch preserve-libs protect-owned sandbox sfperms strict 
unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv 
usersandbox usersync xattr"
  FFLAGS="-O2 -pipe"
  GENTOO_MIRRORS="http://de-mirror.org/gentoo/ rsync://de-mirror.org/gentoo/"
  LANG="en_US.utf8"
  LC_ALL="en_US.UTF-8"
  LDFLAGS="-Wl,-O1 -Wl,--as-needed"
  MAKEOPTS="-j17"
  PKGDIR="/export/packages"
  PORTAGE_CONFIGROOT="/"
  PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times 
--omit-dir-times --compress --force --whole-file --delete --stats 
--human-readable --timeout=180 --exclude=/distfiles --exclude=/local 
--exclude=/packages"
  PORTAGE_TMPDIR="/var/tmp"
  USE="acl adns aio amd64 bacula-clientonly bacula-console bash-completion 
berkdb bindist btrfs bzip2 caps cli cracklib crypt curl cxx device-mapper dri 
gdbm hardened iconv ipv6 justify logrotate loop-aes lzo mmap mmx mmxext modules 
ncurses nls nptl nscd ntp openmp openssl pam pax_kernel pcre pie readline 
seccomp session sse sse2 ssl ssp systemd tcpd threads unicode urandom 
vim-syntax xattr xtpax zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp 
atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 
hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem 
ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions 
alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file 
authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user 
autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires 
ext_filter file_cache filter headers include info log_config logio mem_cache 
mime mime_magic negotiation rewrite setenvif speling status unique_id userdir 
usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage 
tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df 
interface irq load memory rrdtool swap syslog aggregation cgroups contextswitch 
cpu cpufreq curl curl_json curl_xml disk email entropy ethstat exec filecount 
fscache hddtemp ipmi iptables logfile multimeter netlink network nfs nginx ntpd 
numa openvpn ping postgresql processes protocols python sensors snmp uptime 
users uuid" CPU_FLAGS_X86="mmx sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech 
aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea 
ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 
timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" 
KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 
mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console 
presenter-minimizer" LINGUAS="de en" NGINX_MODULES_HTTP="access auth_basic 
autoindex browser charset dav empty_gif fastcgi geo gzip headers_more 
limit_conn limit_req map memcached proxy referer rewrite scgi spdy 
split_clients ssi upstream_ip_hash userid uwsgi" 
OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" 
PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" 
QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="x86_64 i386" 
RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel 
mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy 
v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p 
iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark 
dhcpmac delude chaos account"
  Unset:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, 
PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

  =================================================================
                          Package Settings
  =================================================================

  app-emulation/qemu-2.4.0::gentoo was built with the following:
  USE="aio caps curl debug fdt filecaps iscsi jpeg lzo ncurses nfs nls 
pin-upstream-blobs png python sasl seccomp snappy spice ssh systemtap threads 
tls usb usbredir uuid vhost-net virtfs vnc xattr xfs -accessibility -alsa 
-bluetooth -glusterfs -gtk -gtk2 -infiniband -numa -opengl -pulseaudio -rbd 
-sdl -sdl2 (-selinux) -smartcard -static -static-softmmu -static-user -tci 
-test -vde -vte -xen" PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="i386 
x86_64 -aarch64 (-alpha) (-arm) -cris -lm32 (-m68k) -microblaze -microblazeel 
(-mips) -mips64 -mips64el -mipsel -moxie -or32 (-ppc) (-ppc64) -ppcemb -s390x 
-sh4 -sh4eb (-sparc) -sparc64 -unicore32 -xtensa -xtensaeb" 
QEMU_USER_TARGETS="i386 x86_64 -aarch64 (-alpha) (-arm) -armeb -cris (-m68k) 
-microblaze -microblazeel (-mips) -mips64 -mips64el -mipsel -mipsn32 -mipsn32el 
-or32 (-ppc) (-ppc64) -ppc64abi32 -s390x -sh4 -sh4eb (-sparc) -sparc32plus 
-sparc64 -unicore32"

  >>> Attempting to run pkg_info() for 'app-emulation/qemu-2.4.0'
  Using:
    app-emulation/spice-protocol-0.12.3
    sys-firmware/ipxe-1.0.0_p20130925
    sys-firmware/seabios-1.7.5
      USE=binary
    sys-firmware/vgabios-0.7a

  The server hardware is a HP ProLiant SE316M1-R2 (also known as DL160
  G6) with 48GB RAM and a RAID1+0 with 15k SAS disks.

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



reply via email to

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