Page MenuHome

Crash when evaluating object with unsupported modifier
Closed, ResolvedPublicBUG

Description

Opening a rig that worked in 2.91 produce a total crash.

ExceptionCode         : EXCEPTION_ACCESS_VIOLATION
Exception Address     : 0x00007FF7BCA26710
Exception Module      : blender.exe
Exception Flags       : 0x00000000
Exception Parameters  : 0x2
	Parameters[0] : 0x0000000000000001
	Parameters[1] : 0x0000000000000068


Stack trace:
blender.exe         :0x00007FF7BCA26420  blender::deg::`anonymous namespace'::update_id_after_copy
blender.exe         :0x00007FF7BCA254B0  blender::deg::deg_expand_copy_on_write_datablock
blender.exe         :0x00007FF7BCA259C0  blender::deg::deg_update_copy_on_write_datablock
blender.exe         :0x00007FF7BCA25450  blender::deg::deg_evaluate_copy_on_write
blender.exe         :0x00007FF7BCA33F20  blender::deg::`anonymous namespace'::evaluate_node
blender.exe         :0x00007FF7BCA33ED0  blender::deg::`anonymous namespace'::deg_task_run_func
tbb.dll             :0x00007FFD719154A0  tbb::interface7::internal::isolate_within_arena
blender.exe         :0x00007FF7BCEBBAE0  tbb::internal::function_task<Task>::execute
tbb.dll             :0x00007FFD719254D0  tbb::recursive_mutex::scoped_lock::internal_try_acquire
tbb.dll             :0x00007FFD719254D0  tbb::recursive_mutex::scoped_lock::internal_try_acquire
tbb.dll             :0x00007FFD719154A0  tbb::interface7::internal::isolate_within_arena
tbb.dll             :0x00007FFD7191AA50  tbb::task_scheduler_init::terminate
tbb.dll             :0x00007FFD719236F0  tbb::thread_bound_filter::try_process_item
tbb.dll             :0x00007FFD719236F0  tbb::thread_bound_filter::try_process_item
ucrtbase.dll        :0x00007FFD961C1B20  configthreadlocale
KERNEL32.DLL        :0x00007FFD97877020  BaseThreadInitThunk
ntdll.dll           :0x00007FFD98822630  RtlUserThreadStart

Windows 10
RTX2080TI

Works: 2.91.2

Caused by rBbc95c249a765: Refactor modifier copying code.

Fails: I have tested in 2.92 and 2.93 last master code.

Test file:

Event Timeline

Falk David (filedescriptor) changed the task status from Needs Triage to Confirmed.Tue, Apr 6, 12:00 PM

I can confirm this crash on both 2.93.0 Alpha (branch: master, commit date: 2021-04-06 09:14, hash: rB663a82b10d23) and 2.92.0

Antonio Vazquez (antoniov) changed the subtype of this task from "Report" to "Bug".Tue, Apr 6, 12:05 PM

The crash seems to be caused by an Armature Object having a Subsurf modifier. This is not a valid modifier for the object type, which means that it is not copied over to the evaluated copy of the object (see BKE_object_modifier_stack_copy() as called from object_copy_data() in object.c). This causes the crash when the depsgraph code tries to set the "original data" pointer on the non-existent modifier.

I'll fix this by adding an extra check on the "set original data pointer" loop, so that it doesn't crash any more. However, it's still a mystery to me how that modifier was assigned to the Armature object in the first place.

Sybren A. Stüvel (sybren) renamed this task from Crash opening rig in 2.92 and 2.93 to Crash when evaluating object with unsupported modifier.Thu, Apr 8, 6:51 PM

@Sybren A. Stüvel (sybren) I don't know how the modifier was created because the rig is not mine.