Fix #146221: Concurrent access to IDPropertyGroup in liboverride code.
Crash seems to happen due to parallelized access of data in liboverride
diffing code (presumably when a same linked data is used as reference
for several local liboverrides?).
Since there is zero reason to actually create IDGroup properties there
(it's actually fairly bad, also adding useless overhead and trash data
in system IDProperties), add a new API to access a Pointer PropertyRNA,
`RNA_property_pointer_get_never_create`, which ensures that the call
never creates data, and simply returns `PointerRNA_NULL` instead.
Also reverts abd683fcb5 and re-enable liboverride unittests.
NOTE: This only addresses the case from the report, the current behavior
of `RNA_property_pointer_get` is simply wrong and needs to be rethought.
This is not a simple change though most likely. See also #147072.
Pull Request: https://projects.blender.org/blender/blender/pulls/146990
This commit is contained in:
committed by
Bastien Montagne
parent
8edf746621
commit
ada45519a7
@@ -348,16 +348,12 @@ if(TEST_SRC_DIR_EXISTS)
|
||||
--output-dir ${TEST_OUT_DIR}/blendfile_io/
|
||||
)
|
||||
|
||||
# This test is intermittently failing. Disable it for now to avoid other work
|
||||
# being incorrectly flagged as broken. Once issue #146221 is resolved this
|
||||
# test must be re-enabled.
|
||||
#
|
||||
# add_blender_test(
|
||||
# blendfile_library_overrides
|
||||
# --python ${CMAKE_CURRENT_LIST_DIR}/bl_blendfile_library_overrides.py --
|
||||
# --output-dir ${TEST_OUT_DIR}/blendfile_io/
|
||||
# --test-dir "${TEST_SRC_DIR}/libraries_and_linking"
|
||||
# )
|
||||
add_blender_test(
|
||||
blendfile_library_overrides
|
||||
--python ${CMAKE_CURRENT_LIST_DIR}/bl_blendfile_library_overrides.py --
|
||||
--output-dir ${TEST_OUT_DIR}/blendfile_io/
|
||||
--test-dir "${TEST_SRC_DIR}/libraries_and_linking"
|
||||
)
|
||||
|
||||
add_blender_test(
|
||||
blendfile_header
|
||||
|
||||
Reference in New Issue
Block a user