Blender 2.8 Alpha crash - doing undo of bone duplication
Open, ConfirmedPublic

Description

System Information
Operating system and graphics card

Windows 10 64bit
NVIDIA GeForce GTX 1060 6GB

Blender Version
2.8 Alpha

Short description of error
After duplicating a bone in edit mode and doing undo by CTR+Z blender crashes

Exact steps for others to reproduce the error
Dublicate a bone in edit mode, press ctr + Z

Details

Type
Bug
Bastien Montagne (mont29) triaged this task as Confirmed priority.

Crash confirmed, ASAN seems to point to depsgraph evaluation code… @Sergey Sharybin (sergey) mind having a look?

ASAN:DEADLYSIGNAL
=================================================================
==19773==ERROR: AddressSanitizer: SEGV on unknown address 0x0000000002e8 (pc 0x55d89d4bce8c bp 0x7f38276163a0 sp 0x7f3827616380 T18)
==19773==The signal is caused by a WRITE memory access.
==19773==Hint: address points to the zero page.
    #0 0x55d89d4bce8b in update_pose_orig_pointers /home/i74700deb64/blender/__work__/src/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:520
    #1 0x55d89d4bd3c5 in update_special_pointers /home/i74700deb64/blender/__work__/src/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:553
    #2 0x55d89d4bda44 in DEG::deg_expand_copy_on_write_datablock(DEG::Depsgraph const*, DEG::IDDepsNode const*, DEG::DepsgraphNodeBuilder*, bool) /home/i74700deb64/blender/__work__/src/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:685
    #3 0x55d89d4beb80 in DEG::deg_update_copy_on_write_datablock(DEG::Depsgraph const*, DEG::IDDepsNode const*) /home/i74700deb64/blender/__work__/src/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:874
    #4 0x55d89d4bf447 in DEG::deg_evaluate_copy_on_write(Depsgraph*, DEG::IDDepsNode const*) /home/i74700deb64/blender/__work__/src/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:1026
    #5 0x55d89d493aa3 in void std::__invoke_impl<void, void (*&)(Depsgraph*, DEG::IDDepsNode const*), Depsgraph*, DEG::IDDepsNode*&>(std::__invoke_other, void (*&)(Depsgraph*, DEG::IDDepsNode const*), Depsgraph*&&, DEG::IDDepsNode*&) (/home/i74700deb64/blender/__work__/build_blender28_debug/bin/blender+0x62fbaa3)
    #6 0x55d89d49199a in std::__invoke_result<void (*&)(Depsgraph*, DEG::IDDepsNode const*), Depsgraph*, DEG::IDDepsNode*&>::type std::__invoke<void (*&)(Depsgraph*, DEG::IDDepsNode const*), Depsgraph*, DEG::IDDepsNode*&>(void (*&)(Depsgraph*, DEG::IDDepsNode const*), Depsgraph*&&, DEG::IDDepsNode*&) /usr/include/c++/7/bits/invoke.h:95
    #7 0x55d89d48f26a in void std::_Bind<void (*(std::_Placeholder<1>, DEG::IDDepsNode*))(Depsgraph*, DEG::IDDepsNode const*)>::__call<void, Depsgraph*&&, 0ul, 1ul>(std::tuple<Depsgraph*&&>&&, std::_Index_tuple<0ul, 1ul>) (/home/i74700deb64/blender/__work__/build_blender28_debug/bin/blender+0x62f726a)
    #8 0x55d89d48ae19 in void std::_Bind<void (*(std::_Placeholder<1>, DEG::IDDepsNode*))(Depsgraph*, DEG::IDDepsNode const*)>::operator()<Depsgraph*, void>(Depsgraph*&&) (/home/i74700deb64/blender/__work__/build_blender28_debug/bin/blender+0x62f2e19)
    #9 0x55d89d485227 in std::_Function_handler<void (Depsgraph*), std::_Bind<void (*(std::_Placeholder<1>, DEG::IDDepsNode*))(Depsgraph*, DEG::IDDepsNode const*)> >::_M_invoke(std::_Any_data const&, Depsgraph*&&) (/home/i74700deb64/blender/__work__/build_blender28_debug/bin/blender+0x62ed227)
    #10 0x55d89d4ba556 in std::function<void (Depsgraph*)>::operator()(Depsgraph*) const /usr/include/c++/7/bits/std_function.h:706
    #11 0x55d89d4b8cbd in deg_task_run_func /home/i74700deb64/blender/__work__/src/source/blender/depsgraph/intern/eval/deg_eval.cc:94
    #12 0x55d89d433700 in handle_local_queue /home/i74700deb64/blender/__work__/src/source/blender/blenlib/intern/task.c:419
    #13 0x55d89d433700 in task_scheduler_thread_run /home/i74700deb64/blender/__work__/src/source/blender/blenlib/intern/task.c:448
    #14 0x7f386c9fb5a9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x75a9)
    #15 0x7f38629c0cbe in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xf6cbe)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/i74700deb64/blender/__work__/src/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:520 in update_pose_orig_pointers
Thread T18 created by T0 here:
    #0 0x7f386e814390 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x37390)
    #1 0x55d89d433ce3 in BLI_task_scheduler_create /home/i74700deb64/blender/__work__/src/source/blender/blenlib/intern/task.c:504
    #2 0x55d89d43af9d in BLI_task_scheduler_get /home/i74700deb64/blender/__work__/src/source/blender/blenlib/intern/threads.c:176
    #3 0x55d89d4399f5 in BLI_task_parallel_range /home/i74700deb64/blender/__work__/src/source/blender/blenlib/intern/task.c:1099
    #4 0x55d89d4c0bbf in flush_prepare /home/i74700deb64/blender/__work__/src/source/blender/depsgraph/intern/eval/deg_eval_flush.cc:122
    #5 0x55d89d4c0bbf in DEG::deg_graph_flush_updates(Main*, DEG::Depsgraph*) /home/i74700deb64/blender/__work__/src/source/blender/depsgraph/intern/eval/deg_eval_flush.cc:359
    #6 0x55d89d472c7f in DEG_graph_flush_update /home/i74700deb64/blender/__work__/src/source/blender/depsgraph/intern/depsgraph_tag.cc:628
    #7 0x55d89cb657ee in BKE_scene_graph_update_tagged /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/scene.c:1372
    #8 0x55d89a4581c2 in wm_event_do_depsgraph /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm_event_system.c:336
    #9 0x55d89a458395 in wm_event_do_refresh_wm_and_depsgraph /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm_event_system.c:362
    #10 0x55d89a4463cf in WM_main /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm.c:537
    #11 0x55d89a43b5c8 in main /home/i74700deb64/blender/__work__/src/source/creator/creator.c:521
    #12 0x7f38628eba86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21a86)

==19773==ABORTING