You need to sign in or sign up before continuing.
  • N
    qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix · 1e93470d
    Nikolay Shirokovskiy 提交于
    A pretty nasty deadlock occurs while trying to rename a VM in parallel
    with virDomainObjListNumOfDomains.
    The short description of the problem is as follows:
    
    Thread #1:
    
    qemuDomainRename:
        ------> aquires domain lock by qemuDomObjFromDomain
           ---------> waits for domain list lock in any of the listed functions:
              - virDomainObjListFindByName
              - virDomainObjListRenameAddNew
              - virDomainObjListRenameRemove
    
    Thread #2:
    
    virDomainObjListNumOfDomains:
        ------> aquires domain list lock
           ---------> waits for domain lock in virDomainObjListCount
    
    Introduce generic virDomainObjListRename function for renaming domains.
    It aquires list lock in right order to avoid deadlock. Callback is used
    to make driver specific domain updates.
    Signed-off-by: NNikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
    Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
    1e93470d
qemu_driver.c 649.0 KB