[libvirt] [PATCH v3 2/4] conf: add support for panic device

John Ferlan jferlan at redhat.com
Fri Dec 20 13:59:47 UTC 2013



On 12/09/2013 04:11 AM, Hu Tao wrote:

<...snip...>

>  
> +static bool
> +virDomainPanicCheckABIStability(virDomainPanicDefPtr src,
> +                                virDomainPanicDefPtr dst)
> +{
> +    return virDomainDeviceInfoCheckABIStability(&src->info, &dst->info);
> +}
> +


These changes have resulted in a libvirtd crash during the virt-test 'snapshot_edit' checks:
Thread 1 (Thread 0x7f5332837700 (LWP 10964)):
#0  virDomainDeviceInfoCheckABIStability (src=<optimized out>, dst=<optimized out>) at conf/domain_conf.c:13007
#1  0x00007f534211bbc7 in virDomainPanicCheckABIStability (dst=<optimized out>, src=<optimized out>) at conf/domain_conf.c:13712
#2  virDomainDefCheckABIStability (src=<optimized out>, dst=<optimized out>) at conf/domain_conf.c:14056
#3  0x00007f53421340cb in virDomainSnapshotRedefinePrep (domain=domain at entry=0x7f53000057c0, vm=vm at entry=0x7f53000036d0, 
    defptr=defptr at entry=0x7f5332836978, snap=snap at entry=0x7f5332836970, update_current=update_current at entry=0x7f5332836962, flags=flags at entry=1)
    at conf/snapshot_conf.c:1230
#4  0x00007f5329e4356c in qemuDomainSnapshotCreateXML (domain=0x7f53000057c0, xmlDesc=<optimized out>, flags=1) at qemu/qemu_driver.c:12719
#5  0x00007f53421a0738 in virDomainSnapshotCreateXML (domain=domain at entry=0x7f53000057c0, 
    xmlDesc=0x7f53000081d0 "<domainsnapshot>\n  <name>snap2</name>\n  <description>new-desc</description>\n  <state>running</state>\n  <parent>\n    <name>snap1</name>\n  </parent>\n  <creationTime>1387487268</creationTime>\n  <memory s"..., flags=1) at libvirt.c:19695
#6  0x00007f5342bc85b7 in remoteDispatchDomainSnapshotCreateXML (server=<optimized out>, msg=<optimized out>, ret=0x7f5300003c80, 
    args=0x7f5300003c40, rerr=0x7f5332836c80, client=<optimized out>) at remote_dispatch.h:8223
#7  remoteDispatchDomainSnapshotCreateXMLHelper (server=<optimized out>, client=<optimized out>, msg=<optimized out>, rerr=0x7f5332836c80, 
    args=0x7f5300003c40, ret=0x7f5300003c80) at remote_dispatch.h:8199
#8  0x00007f53421ede3a in virNetServerProgramDispatchCall (msg=0x7f5344c1acc0, client=0x7f5344c1aa80, server=0x7f5344c01570, prog=0x7f5344c15940)
    at rpc/virnetserverprogram.c:435
#9  virNetServerProgramDispatch (prog=0x7f5344c15940, server=server at entry=0x7f5344c01570, client=0x7f5344c1aa80, msg=0x7f5344c1acc0)
    at rpc/virnetserverprogram.c:305
#10 0x00007f53421e7c98 in virNetServerProcessMsg (msg=<optimized out>, prog=<optimized out>, client=<optimized out>, srv=0x7f5344c01570)
    at rpc/virnetserver.c:165
...

(gdb) up 3

(gdb) print *other->def->dom
$2 = {virtType = 2, id = -1, uuid = "\210Γ;\254e@\212\245\034\032h$\230\030\264", name = 0x7f53201bdb60 "virt-tests-vm1", title = 0x0, 
...
 seclabels = 0x7f53201fe650, watchdog = 0x0, memballoon = 0x7f5320201d10, nvram = 0x0, tpm = 0x0, cpu = 0x0, sysinfo = 0x0, redirfilter = 0x0, 
  rng = 0x0, panic = 0x0, namespaceData = 0x0, ns = {parse = 0x7f5329dd2770 <qemuDomainDefNamespaceParse>, 
...
(gdb) print *def->dom
$3 = {virtType = 2, id = -1, uuid = "\210Γ;\254e@\212\245\034\032h$\230\030\264", name = 0x7f530000fdf0 "virt-tests-vm1", title = 0x0, 
...
  rng = 0x0, panic = 0x0, namespaceData = 0x0, ns = {parse = 0x7f5329dd2770 <qemuDomainDefNamespaceParse>, 


Unlike the virDomainRNGDefCheckABIStability() API, the new virDomainPanicCheckABIStability()
has no checks for !src && !dst

I'll put together a patch for this, but figured I'd ask now if there were
checks that should also be made in the PanicCheck API...

John


>  
>  /* This compares two configurations and looks for any differences
>   * which will affect the guest ABI. This is primarily to allow
> @@ -13930,6 +13985,9 @@ virDomainDefCheckABIStability(virDomainDefPtr src,
>      if (!virDomainRNGDefCheckABIStability(src->rng, dst->rng))
>          return false;
>  
> +    if (!virDomainPanicCheckABIStability(src->panic, dst->panic))
> +        return false;
> +
>      return true;
>  }
>  
> @@ -15776,6 +15834,16 @@ virDomainWatchdogDefFormat(virBufferPtr buf,
>      return 0;
>  }
>  




More information about the libvir-list mailing list