1. 04 6月, 2015 18 次提交
  2. 03 6月, 2015 5 次提交
  3. 27 5月, 2015 2 次提交
  4. 21 5月, 2015 2 次提交
  5. 20 5月, 2015 2 次提交
  6. 19 5月, 2015 1 次提交
  7. 18 5月, 2015 1 次提交
    • L
      conf: make virNodeDevCapData an official type · ffc40b63
      Laine Stump 提交于
      For some reason a union (_virNodeDevCapData) that had only been
      declared inside the toplevel struct virNodeDevCapsDef was being used
      as an argument to functions all over the place. Since it was only a
      union, the "type" attribute wasn't necessarily sent with it. While
      this works, it just seems wrong.
      
      This patch creates a toplevel typedef for virNodeDevCapData and
      virNodeDevCapDataPtr, making it a struct that has the type attribute
      as a member, along with an anonymous union of everything that used to
      be in union _virNodeDevCapData. This way we only have to change the
      following:
      
        s/union _virNodeDevCapData */virNodeDevCapDataPtr /
      
      and
      
        s/caps->type/caps->data.type/
      
      This will make me feel less guilty when adding functions that need a
      pointer to one of these.
      ffc40b63
  8. 15 5月, 2015 2 次提交
  9. 14 5月, 2015 1 次提交
  10. 13 5月, 2015 1 次提交
  11. 12 5月, 2015 1 次提交
    • L
      qemu: fix double free when RNG cold-plug fails · 5f6fe84d
      Luyao Huang 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1220809
      
      When cold-plugging an RNG device but something fails in
      qemuDomainAssignAddresses, we will double free the RNG device.
      Once a device is plugged into the domain, we should set the
      device pointer to NULL to fix this issue.
      
      ...
      5  0x00007fb7d180ac8a in virFree at util/viralloc.c:582
      6  0x00007fb7d1895cdd in virDomainRNGDefFree at conf/domain_conf.c:19786
      7  0x00007fb7d1895d99 in virDomainDeviceDefFree at conf/domain_conf.c:2022
      8  0x00007fb7b92b8baf in qemuDomainAttachDeviceFlags at qemu/qemu_driver.c:8785
      9  0x00007fb7d190c5d7 in virDomainAttachDeviceFlags at libvirt-domain.c:8488
      10 0x00007fb7d23af9d2 in remoteDispatchDomainAttachDeviceFlags at remote_dispatch.h:2842
      ...
      Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      5f6fe84d
  12. 11 5月, 2015 3 次提交
  13. 07 5月, 2015 1 次提交
    • M
      processSerialChangedEvent: Close agent monitor early · 2af51483
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=890648
      
      So, imagine you've issued an API that involves guest agent. For
      instance, you want to query guest's IP addresses. So the API acquires
      QUERY_JOB, locks the guest agent and issues the agent command.
      However, for some reason, guest agent replies to initial ping
      correctly, but then crashes tragically while executing real command
      (in this case guest-network-get-interfaces). Since initial ping went
      well, libvirt thinks guest agent is accessible and awaits reply to the
      real command. But it will never come. What will is a monitor event.
      Our handler (processSerialChangedEvent) will try to acquire
      MODIFY_JOB, which will fail obviously because the other thread that's
      executing the API already holds a job. So the event handler exits
      early, and the QUERY_JOB is never released nor ended.
      
      The way how to solve this is to put flag somewhere in the monitor
      internals. The flag is called @running and agent commands are issued
      iff the flag is set. The flag itself is set when we connect to the
      agent socket. And unset whenever we see DISCONNECT event from the
      agent. Moreover, we must wake up all the threads waiting for the
      agent. This is done by signalizing the condition they're waiting on.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      2af51483