소스 검색

qubes/vm: make sure to close qmemman socket after failed startup

If qmemman socket isn't closed, it will block other VM startups.
Marek Marczykowski-Górecki 7 년 전
부모
커밋
bcab92ee64
1개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 6 2
      qubes/vm/qubesvm.py

+ 6 - 2
qubes/vm/qubesvm.py

@@ -821,8 +821,12 @@ class QubesVM(qubes.vm.mix.net.NetVMMixin, qubes.vm.BaseVM):
         self._update_libvirt_domain()
 
         qmemman_client = self.request_memory(mem_required)
-
-        self.libvirt_domain.createWithFlags(libvirt.VIR_DOMAIN_START_PAUSED)
+        try:
+            self.libvirt_domain.createWithFlags(libvirt.VIR_DOMAIN_START_PAUSED)
+        except:
+            if qmemman_client:
+                qmemman_client.close()
+            raise
 
         try:
             self.fire_event('domain-spawn',