Commit: e42e4e8568edeb4e0b962e2059586c2a3d3b457d
Author: Bastien Montagne
Date:   Thu May 19 11:47:28 2022 +0200
Branches: blender-v3.2-release
https://developer.blender.org/rBe42e4e8568edeb4e0b962e2059586c2a3d3b457d

Fix liboverride extreme resync times in case of libraries dependency loops.

That max number of `10000` level of recursivity was a typo (should have
been `1000`), but even that is way too high, typical sane situation
should not lead to more than a few tens of levels, so reducing the max
level to 200.

Also improve error message with more context info about the issue.

Found while investigating issues for the Blender Studio's Heist production.

===================================================================

M       source/blender/blenkernel/intern/lib_override.c

===================================================================

diff --git a/source/blender/blenkernel/intern/lib_override.c 
b/source/blender/blenkernel/intern/lib_override.c
index b83d30a27bf..7dbde0e7e49 100644
--- a/source/blender/blenkernel/intern/lib_override.c
+++ b/source/blender/blenkernel/intern/lib_override.c
@@ -2335,6 +2335,7 @@ static int 
lib_override_sort_libraries_func(LibraryIDLinkCallbackData *cb_data)
   if (id != NULL && ID_IS_LINKED(id) && id->lib != id_owner->lib) {
     const int owner_library_indirect_level = ID_IS_LINKED(id_owner) ? 
id_owner->lib->temp_index :
                                                                       0;
+<<<<<<< Updated upstream
     if (owner_library_indirect_level > 10000) {
       CLOG_ERROR(
           &LOG,
@@ -2343,6 +2344,17 @@ static int 
lib_override_sort_libraries_func(LibraryIDLinkCallbackData *cb_data)
           id_owner->lib->filepath,
           id->lib->filepath);
       BLI_assert(0);
+=======
+    if (owner_library_indirect_level > 200) {
+      CLOG_ERROR(&LOG,
+                 "Levels of indirect usages of libraries is way too high, 
there are most likely "
+                 "dependency loops, skipping further building loops (involves 
at least '%s' from "
+                 "'%s' and '%s' from '%s')",
+                 id_owner->name,
+                 id_owner->lib->filepath,
+                 id->name,
+                 id->lib->filepath);
+>>>>>>> Stashed changes
       return IDWALK_RET_NOP;
     }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to