[libvirt] [[PATCH v2] 0/4] try harder to get dest qemu errors on migation

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Mon Sep 26 08:47:41 UTC 2016


ping

On 12.09.2016 17:34, Nikolay Shirokovskiy wrote:
> Hi, all.
> 
>   In case migration fails due to destination qemu exits unexpectedly user
> recevies the qemu log in the error message. Unfortunately log is truncated and
> the most interesting part is missed (below is the example of such a log [1]).
> 
> Actually for the most cases the first patch will be enough to fix the issue.
> Originally I thought the problem is qemu logging and reading the log are not in
> sync (which is true) so I tried to fix it as well in the next patches.
> 
> * diff from v1:
> 
> 1. split changes to libvirtd and virtlogd to different patches
> 2. split virtlogd patch further
> 3. simplify handling eofs and hangups in draining function
> 
> [1] log example:
> 
> CPU Reset (CPU 0)
> EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000000
> ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
> EIP=00000000 EFL=00000000 [-------] CPL=0 II=0 A20=0 SMM=0 HLT=0
> ES =0000 00000000 00000000 00000000
> CS =0000 00000000 00000000 00000000
> SS =0000 00000000 00000000 00000000
> DS =0000 00000000 00000000 00000000
> FS =0000 00000000 00000000 00000000
> GS =0000 00000000 00000000 00000000
> LDT=0000 00000000 00000000 00000000
> TR =0000 00000000 00000000 00000000
> GDT=     00000000 00000000
> IDT=     00000000 00000000
> CR0=00000000 CR2=00000000 CR3=00000000 CR4=00000000
> DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 
> DR6=0000000000000000 DR7=0000000000000000
> CCS=00000000 CCD=00000000 CCO=DYNAMIC 
> EFER=0000000000000000
> FCW=0000 FSW=0000 [ST=0] FTW=ff MXCSR=00000000
> FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
> FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
> FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
> FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
> XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
> XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
> XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
> XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
> CPU Reset (CPU 1)
> EAX=00000000 EBX=00000000 ECX=00000000 EDX=000206a1
> ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
> EIP=0000fff0 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
> ES =0000 00000000 0000ffff 00009300
> CS =f000 ffff0000 0000ffff 00009b00
> SS =0000 00000000 0000ffff 00009300
> DS =0000 00000000 0000ffff 00009300
> FS =0000 00000000 0000ffff 00009300
> GS =0000 00000000 0000ffff 00009300
> LDT=0000 00000000 0000ffff 00008200
> TR =0000 00000000 0000ffff 00008b00
> GDT=     00000000 0000ffff
> IDT=     00000000 0000ffff
> CR0=60000010 CR2=00000000 CR3=00000000 CR4=00000000
> DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 
> DR6=00000000ffff0ff0 DR7=0000000000000400
> CCS=00000000 CCD=00000000 CCO=DYNAMIC 
> EFER=0000000000000000
> FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
> FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
> FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
> FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
> FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
> XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
> XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
> XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
> XMM06=00000000000000000000000000000000 XMM07=000
> qemu: terminating on signal 15 from pid 168133
> 
> Nikolay Shirokovskiy (4):
>   util: remove 1k limit for error messages
>   virtlogd: stop reading on EOF instead of hangup
>   virtlogd: add flag to wait for log end on read
>   qemu: if virtlogd is used then read log tail correctly
> 
>  src/logging/log_handler.c  | 46 ++++++++++++++++++++++++++++++++++++++++------
>  src/logging/log_protocol.x |  5 +++++
>  src/qemu/qemu_domain.c     |  7 ++++++-
>  src/qemu/qemu_domain.h     |  1 +
>  src/qemu/qemu_process.c    |  2 ++
>  src/util/virerror.c        |  9 ++++-----
>  6 files changed, 58 insertions(+), 12 deletions(-)
> 




More information about the libvir-list mailing list