From 8f4dec2c9dd387317bbda48f6a6ef6fff71e04f1 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 11 Sep 2023 10:31:04 +0200 Subject: [PATCH 1/4] Fix possible hang at startup/add printer Remove the ISP leaving part which is *probably* unnecessary 99.99% of the times but may cause a hang when some USB devices are connected. CURA-10972 --- plugins/USBPrinting/AutoDetectBaudJob.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/plugins/USBPrinting/AutoDetectBaudJob.py b/plugins/USBPrinting/AutoDetectBaudJob.py index 1a7187be4d..5a8e455720 100644 --- a/plugins/USBPrinting/AutoDetectBaudJob.py +++ b/plugins/USBPrinting/AutoDetectBaudJob.py @@ -27,14 +27,7 @@ class AutoDetectBaudJob(Job): write_timeout = 3 read_timeout = 3 tries = 2 - - programmer = Stk500v2() serial = None - try: - programmer.connect(self._serial_port) - serial = programmer.leaveISP() - except ispBase.IspError: - programmer.close() for retry in range(tries): for baud_rate in self._all_baud_rates: From 63942b72a82fc4759ba8c055d18d7f825e397593 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 19 Sep 2023 17:07:46 +0200 Subject: [PATCH 2/4] Log backend plugin std out CURA-11064 --- conanfile.py | 4 ++-- cura/BackendPlugin.py | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/conanfile.py b/conanfile.py index 315e494daf..13b3d84b14 100644 --- a/conanfile.py +++ b/conanfile.py @@ -346,7 +346,7 @@ class CuraConan(ConanFile): vr.generate() self._generate_cura_version(os.path.join(self.source_folder, "cura")) - self._generate_about_versions(os.path.join(self.source_folder, "resources","qml", "Dialogs")) + # self._generate_about_versions(os.path.join(self.source_folder, "resources","qml", "Dialogs")) if not self.in_local_cache: # Copy CuraEngine.exe to bindirs of Virtual Python Environment @@ -403,7 +403,7 @@ class CuraConan(ConanFile): # FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement cpp_info = self.dependencies["gettext"].cpp_info pot = self.python_requires["translationextractor"].module.ExtractTranslations(self, cpp_info.bindirs[0]) - pot.generate() + # pot.generate() def build(self): if self.options.devtools: diff --git a/cura/BackendPlugin.py b/cura/BackendPlugin.py index e8a08cf0be..b382fee18d 100644 --- a/cura/BackendPlugin.py +++ b/cura/BackendPlugin.py @@ -65,10 +65,16 @@ class BackendPlugin(AdditionalSettingDefinitionsAppender, PluginObject): # STDIN needs to be None because we provide no input, but communicate via a local socket instead. # The NUL device sometimes doesn't exist on some computers. Logger.info(f"Starting backend_plugin [{self._plugin_id}] with command: {self._validatePluginCommand()}") - popen_kwargs = {"stdin": None} + popen_kwargs = {"stdin": None, "stdout": subprocess.PIPE, "stderr": subprocess.PIPE} if Platform.isWindows(): popen_kwargs["creationflags"] = subprocess.CREATE_NO_WINDOW self._process = subprocess.Popen(self._validatePluginCommand(), **popen_kwargs) + stdout_data, stderr_data = self._process.communicate() + if stderr_data: + Logger.error(f"Error starting backend_plugin [{self._plugin_id}] stderr: {str(stderr_data)}") + return False + Logger.info( + f"Started backend_plugin [{self._plugin_id}] with PID: {self._process.pid}, stdout: {str(stdout_data)}") self._is_running = True return True except PermissionError: From c9d50439bf2b280240f020dd302e182164a2b306 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 19 Sep 2023 17:24:50 +0200 Subject: [PATCH 3/4] Manually revert accidentally committed changes. Wasn't me! --- conanfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 13b3d84b14..315e494daf 100644 --- a/conanfile.py +++ b/conanfile.py @@ -346,7 +346,7 @@ class CuraConan(ConanFile): vr.generate() self._generate_cura_version(os.path.join(self.source_folder, "cura")) - # self._generate_about_versions(os.path.join(self.source_folder, "resources","qml", "Dialogs")) + self._generate_about_versions(os.path.join(self.source_folder, "resources","qml", "Dialogs")) if not self.in_local_cache: # Copy CuraEngine.exe to bindirs of Virtual Python Environment @@ -403,7 +403,7 @@ class CuraConan(ConanFile): # FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement cpp_info = self.dependencies["gettext"].cpp_info pot = self.python_requires["translationextractor"].module.ExtractTranslations(self, cpp_info.bindirs[0]) - # pot.generate() + pot.generate() def build(self): if self.options.devtools: From 1e360e1ea0d91712ae786779695651fbc612b24b Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 19 Sep 2023 17:34:19 +0200 Subject: [PATCH 4/4] Output on error-stream doesn't necessarily mean an error. done as part of CURA-11064 --- cura/BackendPlugin.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cura/BackendPlugin.py b/cura/BackendPlugin.py index b382fee18d..14e47e8d9f 100644 --- a/cura/BackendPlugin.py +++ b/cura/BackendPlugin.py @@ -71,8 +71,7 @@ class BackendPlugin(AdditionalSettingDefinitionsAppender, PluginObject): self._process = subprocess.Popen(self._validatePluginCommand(), **popen_kwargs) stdout_data, stderr_data = self._process.communicate() if stderr_data: - Logger.error(f"Error starting backend_plugin [{self._plugin_id}] stderr: {str(stderr_data)}") - return False + Logger.warning(f"Info on error-stream when starting backend_plugin [{self._plugin_id}] stderr: {str(stderr_data)}") Logger.info( f"Started backend_plugin [{self._plugin_id}] with PID: {self._process.pid}, stdout: {str(stdout_data)}") self._is_running = True