Regression: Crash When Appending Items and Editing Expressions #97710

Closed
opened 2022-04-29 17:42:14 +02:00 by Chris Jones · 13 comments

System Information
Operating system: Windows-10-10.0.19043-SP0 64 Bits
Graphics card: GeForce 9600 GT/PCIe/SSE2 NVIDIA Corporation 3.3.0

Blender Version
Broken: version: 3.1.2, 3.2 d3b1cce400
Worked: 3.0.1, 52be063012

Short description of error
The attached .blend file is a stripped down and decimated version of a face rig, and curiously the more it's stripped down, the harder it is to get it to crash (hence the file is not as reduced or as clean as I'd like). The issue has been traced to drivers in the Math nodes, which are located inside the Wrinkles node group in the "Head" material.

Several users have reported these crashes; one was able to fix it by enabling GPU Subdivision, and another was able to provide a screenshot (seeing as they're getting an error message instead of a crash):Driver Error.jpg
The crashes and error messages are not present in 2.79 up to 3.0.1. Additionally, the original file frequently crashes when moving the face controls, one of which is still present in the demo file (but doesn't seem to cause crashes on its own).

Exact steps for others to reproduce the error

  1. Load the file
  2. Append something (e.g. an object, camera or lamp)
  3. Crash

Alternatively:

  1. Select one of the drivers at the bottom of the list in the Drivers Editor, e.g. "Default Value (Math.014 : Value)"
  2. In the Drivers properties in the N panel, click on the expression in the Path field and hit enter.
  3. Crash

Driver Crash.blend

**System Information** Operating system: Windows-10-10.0.19043-SP0 64 Bits Graphics card: GeForce 9600 GT/PCIe/SSE2 NVIDIA Corporation 3.3.0 **Blender Version** Broken: version: 3.1.2, 3.2 d3b1cce4000b Worked: 3.0.1, 52be06301257 **Short description of error** The attached .blend file is a stripped down and decimated version of a face rig, and curiously the more it's stripped down, the harder it is to get it to crash (hence the file is not as reduced or as clean as I'd like). The issue has been traced to drivers in the Math nodes, which are located inside the Wrinkles node group in the "Head" material. Several users have reported these crashes; one was able to fix it by enabling GPU Subdivision, and another was able to provide a screenshot (seeing as they're getting an error message instead of a crash):![Driver Error.jpg](https://archive.blender.org/developer/F13038180/Driver_Error.jpg) The crashes and error messages are not present in 2.79 up to 3.0.1. Additionally, the original file frequently crashes when moving the face controls, one of which is still present in the demo file (but doesn't seem to cause crashes on its own). **Exact steps for others to reproduce the error** 1. Load the file 2. Append something (e.g. an object, camera or lamp) 3. Crash Alternatively: 1. Select one of the drivers at the bottom of the list in the Drivers Editor, e.g. "Default Value (Math.014 : Value)" 2. In the Drivers properties in the N panel, click on the expression in the Path field and hit enter. 3. Crash [Driver Crash.blend](https://archive.blender.org/developer/F13038240/Driver_Crash.blend)
Author

Added subscriber: @ChrisJones

Added subscriber: @ChrisJones

Added subscriber: @mano-wii

Added subscriber: @mano-wii
  1. Append something (e.g. an object, camera or lamp)

Do you mean append something from some other file? I did this but I can't replicate the problem.

> 2. Append something (e.g. an object, camera or lamp) Do you mean append something from some other file? I did this but I can't replicate the problem.
Author

Yes appending objects usually makes it crash for me, although it is intermittent to some degree. You may need to try appending a few things one after another, or load something else, close and reopen and try again. The original file, which has a much bigger node network, almost always crashes. As mentioned though, you may get a driver error message instead.

Whether or not it recently crashed or produced an error also seems to have an influence on whether it will repeat the same behaviour. For example, if it crashes, it's more likely it will keep crashing until some nodes are removed, then it's unlikely to crash the next time the scene is loaded. Furthermore, if it doesn't crash, then I undo back to the original state, it's unlikely to crash. All of this makes it extremely difficult to reproduce the problem in a simple file.

Does anything happen if you click in the expression field and press enter?

Yes appending objects usually makes it crash for me, although it is intermittent to some degree. You may need to try appending a few things one after another, or load something else, close and reopen and try again. The original file, which has a much bigger node network, almost always crashes. As mentioned though, you may get a driver error message instead. Whether or not it recently crashed or produced an error also seems to have an influence on whether it will repeat the same behaviour. For example, if it crashes, it's more likely it will keep crashing until some nodes are removed, then it's unlikely to crash the next time the scene is loaded. Furthermore, if it doesn't crash, then I undo back to the original state, it's unlikely to crash. All of this makes it extremely difficult to reproduce the problem in a simple file. Does anything happen if you click in the expression field and press enter?
Member

Added subscriber: @PratikPB2123

Added subscriber: @PratikPB2123
Member

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
Member

I can reproduce the crash
Tested on release builds only. This has been introduced between 52be063012 - d3b1cce400
I'll find the exact commit later which has caused this crash
Raising the priority for now since this looks like a regression. Feel free to revert

blender.exe         :0x00007FF72809BE20  get_edge_sharpness
blender.exe         :0x00007FF728E76730  OpenSubdiv::v3_4_4::Far::TopologyRefinerFactory<TopologyRefinerData>::assignComponentTags
blender.exe         :0x00007FF728E76EF0  OpenSubdiv::v3_4_4::Far::TopologyRefinerFactory<TopologyRefinerData>::populateBaseLevel
blender.exe         :0x00007FF728E76D70  blender::opensubdiv::TopologyRefinerImpl::createFromConverter
blender.exe         :0x00007FF728E74100  openSubdiv_createTopologyRefinerFromConverter
blender.exe         :0x00007FF727F962B0  BKE_subdiv_new_from_converter
blender.exe         :0x00007FF727F96440  BKE_subdiv_update_from_mesh
blender.exe         :0x00007FF727F97FD0  BKE_subsurf_modifier_subdiv_descriptor_ensure
blender.exe         :0x00007FF727E937C0  mesh_wrapper_ensure_subdivision
blender.exe         :0x00007FF727E93690  tbb::interface7::internal::delegated_function<<lambda_1342d4e1a610c3a54e40da4eedc54377> const ,void
tbb.dll             :0x00007FF8C21C4FD0  tbb::interface7::internal::isolate_within_arena
blender.exe         :0x00007FF727E93A00  BKE_mesh_wrapper_ensure_subdivision
blender.exe         :0x00007FF7283E4820  Object_data_get
blender.exe         :0x00007FF72834F200  RNA_property_pointer_get
blender.exe         :0x00007FF7283525E0  rna_path_parse
blender.exe         :0x00007FF728348930  RNA_path_resolve_property_full
blender.exe         :0x00007FF727F448A0  dvar_eval_singleProp
blender.exe         :0x00007FF727F46210  evaluate_driver
blender.exe         :0x00007FF727EE6710  calculate_fcurve
blender.exe         :0x00007FF727ED5BE0  BKE_animsys_eval_driver
blender.exe         :0x00007FF7281A7C10  blender::deg::`anonymous namespace'::evaluate_node
blender.exe         :0x00007FF7281A7BC0  blender::deg::`anonymous namespace'::deg_task_run_func
blender.exe         :0x00007FF72CF62520  tbb::internal::function_task<Task>::execute
tbb.dll             :0x00007FF8C21CF220  tbb::recursive_mutex::scoped_lock::internal_try_acquire
tbb.dll             :0x00007FF8C21CF220  tbb::recursive_mutex::scoped_lock::internal_try_acquire
tbb.dll             :0x00007FF8C21C4FD0  tbb::interface7::internal::isolate_within_arena
tbb.dll             :0x00007FF8C21CA120  tbb::task_scheduler_init::terminate
tbb.dll             :0x00007FF8C21CD800  tbb::thread_bound_filter::try_process_item
tbb.dll             :0x00007FF8C21CD800  tbb::thread_bound_filter::try_process_item
ucrtbase.dll        :0x00007FF8CA8E1B20  configthreadlocale
KERNEL32.DLL        :0x00007FF8CB227020  BaseThreadInitThunk
ntdll.dll           :0x00007FF8CCA82630  RtlUserThreadStart

Also getting this warning in console
ERROR (bke.fcurve): C:\Users\blender\git\blender-vdev\blender.git\source\blender\blenkernel\intern\fcurve_driver.c:115 dtar_get_prop_val: Driver Evaluation Error: cannot resolve target for OBBody -> data.shape_keys.key_blocks["Mouth Push L"].value

I can reproduce the crash Tested on release builds only. This has been introduced between 52be06301257 - d3b1cce4000b I'll find the exact commit later which has caused this crash Raising the priority for now since this looks like a regression. Feel free to revert ```lines=10 blender.exe :0x00007FF72809BE20 get_edge_sharpness blender.exe :0x00007FF728E76730 OpenSubdiv::v3_4_4::Far::TopologyRefinerFactory<TopologyRefinerData>::assignComponentTags blender.exe :0x00007FF728E76EF0 OpenSubdiv::v3_4_4::Far::TopologyRefinerFactory<TopologyRefinerData>::populateBaseLevel blender.exe :0x00007FF728E76D70 blender::opensubdiv::TopologyRefinerImpl::createFromConverter blender.exe :0x00007FF728E74100 openSubdiv_createTopologyRefinerFromConverter blender.exe :0x00007FF727F962B0 BKE_subdiv_new_from_converter blender.exe :0x00007FF727F96440 BKE_subdiv_update_from_mesh blender.exe :0x00007FF727F97FD0 BKE_subsurf_modifier_subdiv_descriptor_ensure blender.exe :0x00007FF727E937C0 mesh_wrapper_ensure_subdivision blender.exe :0x00007FF727E93690 tbb::interface7::internal::delegated_function<<lambda_1342d4e1a610c3a54e40da4eedc54377> const ,void tbb.dll :0x00007FF8C21C4FD0 tbb::interface7::internal::isolate_within_arena blender.exe :0x00007FF727E93A00 BKE_mesh_wrapper_ensure_subdivision blender.exe :0x00007FF7283E4820 Object_data_get blender.exe :0x00007FF72834F200 RNA_property_pointer_get blender.exe :0x00007FF7283525E0 rna_path_parse blender.exe :0x00007FF728348930 RNA_path_resolve_property_full blender.exe :0x00007FF727F448A0 dvar_eval_singleProp blender.exe :0x00007FF727F46210 evaluate_driver blender.exe :0x00007FF727EE6710 calculate_fcurve blender.exe :0x00007FF727ED5BE0 BKE_animsys_eval_driver blender.exe :0x00007FF7281A7C10 blender::deg::`anonymous namespace'::evaluate_node blender.exe :0x00007FF7281A7BC0 blender::deg::`anonymous namespace'::deg_task_run_func blender.exe :0x00007FF72CF62520 tbb::internal::function_task<Task>::execute tbb.dll :0x00007FF8C21CF220 tbb::recursive_mutex::scoped_lock::internal_try_acquire tbb.dll :0x00007FF8C21CF220 tbb::recursive_mutex::scoped_lock::internal_try_acquire tbb.dll :0x00007FF8C21C4FD0 tbb::interface7::internal::isolate_within_arena tbb.dll :0x00007FF8C21CA120 tbb::task_scheduler_init::terminate tbb.dll :0x00007FF8C21CD800 tbb::thread_bound_filter::try_process_item tbb.dll :0x00007FF8C21CD800 tbb::thread_bound_filter::try_process_item ucrtbase.dll :0x00007FF8CA8E1B20 configthreadlocale KERNEL32.DLL :0x00007FF8CB227020 BaseThreadInitThunk ntdll.dll :0x00007FF8CCA82630 RtlUserThreadStart ``` Also getting this warning in console ```ERROR (bke.fcurve): C:\Users\blender\git\blender-vdev\blender.git\source\blender\blenkernel\intern\fcurve_driver.c:115 dtar_get_prop_val: Driver Evaluation Error: cannot resolve target for OBBody -> data.shape_keys.key_blocks["Mouth Push L"].value```
Pratik Borhade changed title from Crash When Appending Items and Editing Expressions to Regression: Crash When Appending Items and Editing Expressions 2022-04-30 14:45:56 +02:00

Added subscriber: @dr.sybren

Added subscriber: @dr.sybren
Sybren A. Stüvel self-assigned this 2022-05-02 11:16:58 +02:00

This comment was removed by @dr.sybren

*This comment was removed by @dr.sybren*

I can reproduce the crash by editing the driver, but not with the "appending method".

In #97710#1349434, @PratikPB2123 wrote:
Tested on release builds only. This has been introduced between 52be063012 - d3b1cce400

A debug build with ASAN enabled already crashes on older versions, I just tested with 675f38ac (which is a day older than 52be063012).

Also getting this warning in console
ERROR (bke.fcurve): C:\Users\blender\git\blender-vdev\blender.git\source\blender\blenkernel\intern\fcurve_driver.c:115 dtar_get_prop_val: Driver Evaluation Error: cannot resolve target for OBBody -> data.shape_keys.key_blocks["Mouth Push L"].value

I don't get that one, though.

I can reproduce the crash by editing the driver, but not with the "appending method". > In #97710#1349434, @PratikPB2123 wrote: > Tested on release builds only. This has been introduced between 52be06301257 - d3b1cce4000b A debug build with ASAN enabled already crashes on older versions, I just tested with 675f38ac (which is a day older than 52be06301257). > Also getting this warning in console > ```ERROR (bke.fcurve): C:\Users\blender\git\blender-vdev\blender.git\source\blender\blenkernel\intern\fcurve_driver.c:115 dtar_get_prop_val: Driver Evaluation Error: cannot resolve target for OBBody -> data.shape_keys.key_blocks["Mouth Push L"].value``` I don't get that one, though.

Changed status from 'Confirmed' to: 'Archived'

Changed status from 'Confirmed' to: 'Archived'

The crash is caused by drivers that point to a different datablock in the Python expression. The driver targets the Object, but the expression uses data.shape_keys.…, meaning it accesses the Mesh. This isn't understood properly by the dependency graph, causing the driver evaluation to run at the same time as the mesh evaluation, which causes the crash.

Change the driver variable so that it targets the Mesh "Human Body", then remove the data. from the Python expression. That resolves this issue.

This is not a regression, by the way, but something that was a side-effect of the "new" dependency graph introduced in Blender 2.80.

The crash is caused by drivers that point to a different datablock in the Python expression. The driver targets the Object, but the expression uses `data.shape_keys.…`, meaning it accesses the Mesh. This isn't understood properly by the dependency graph, causing the driver evaluation to run at the same time as the mesh evaluation, which causes the crash. Change the driver variable so that it targets the Mesh "Human Body", then remove the `data.` from the Python expression. That resolves this issue. This is not a regression, by the way, but something that was a side-effect of the "new" dependency graph introduced in Blender 2.80.

Closed as duplicate of #96289

Closed as duplicate of #96289
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#97710
No description provided.