Salome HOME
[bos #26531] [CEA] Shaper tests fail with SEGFAULT. Use copy of sys.modules to avoid...
authorjfa <jfa@opencascade.com>
Thu, 21 Oct 2021 10:39:36 +0000 (13:39 +0300)
committerjfa <jfa@opencascade.com>
Thu, 21 Oct 2021 10:39:36 +0000 (13:39 +0300)
src/PythonAPI/model/dump/DumpAssistant.py

index b1b40edeb25737580cf043c77616cbac27d41571..8c94d1e75c56ca886dfe9e3e2fe21291b8f0e201 100644 (file)
@@ -50,8 +50,11 @@ class DumpAssistant(ModelHighAPI.ModelHighAPI_Dumper):
     def collectFeatures(self):
         self.myFeatures = {}
         self.myWrapperNames = {}
-        for aModule in sys.modules:
-            for aName, anObj in inspect.getmembers(sys.modules[aModule], inspect.isclass):
+        # Fixing [bos #26531] [CEA] Shaper tests fail with SEGFAULT
+        # Use copy of sys.modules to avoid exception "dictionary changed size during iteration"
+        sys_modules = sys.modules.copy()
+        for aModule in sys_modules:
+            for aName, anObj in inspect.getmembers(sys_modules[aModule], inspect.isclass):
                 if issubclass(anObj, ModelHighAPI.ModelHighAPI_Interface) and hasattr(anObj, "ID") and anObj.dump != ModelHighAPI.ModelHighAPI_Interface.dump:
                     self.myFeatures[anObj.ID()] = anObj
                     self.myWrapperNames[anObj.ID()] = aName