From 0d04300138da1c18937bd21b852ebd39d39326cf Mon Sep 17 00:00:00 2001 From: Alessandro Pilotti Date: Sat, 18 Aug 2018 00:25:20 +0300 Subject: [PATCH] Fix COM thread model issue The following issue happens when trying to extend volumes using VDS: OSError: [WinError -2147417850] Cannot change thread mode after it is set sys.coinit_flags needs to be set before importing pythoncom. Change-Id: I83877219b9589d9c174fd3a245b644350ea6310a Closes-Bug: #1787659 --- cloudbaseinit/shell.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cloudbaseinit/shell.py b/cloudbaseinit/shell.py index 046f4c55..4dfb1f4f 100644 --- a/cloudbaseinit/shell.py +++ b/cloudbaseinit/shell.py @@ -18,8 +18,9 @@ import sys if struct.calcsize("P") == 8 and sys.platform == 'win32': # This is needed by Nano Server. # Set COINIT_MULTITHREADED only on x64 interpreters due to issues on x86. + # sys.coinit_flags needs to be set before importing pythoncom + sys.coinit_flags = 0 import pythoncom - sys.coinit_flags = pythoncom.COINIT_MULTITHREADED pythoncom.CoInitializeEx(pythoncom.COINIT_MULTITHREADED) from oslo_log import log as oslo_logging