ACCESS VIOLATION if an empty's render visibility is animated and a vector blur node is present in the compositor when python is used to update image datablock filepaths from render_pre handler. #123947

Closed
opened 2024-06-29 17:09:56 +02:00 by michael campbell · 3 comments

System Information
Operating system: Windows-10-10.0.22631-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 4080 SUPER/PCIe/SSE2 NVIDIA Corporation 4.6.0 NVIDIA 555.99

Blender Version
Broken: version: 4.3.0 Alpha, branch: main, commit date: 2024-06-16 05:35, hash: 71b14a7abe14
Worked: (unknown)

Short description of error
If a collection's render visibility is animated, Blender will crash if the pre-render handler is used to update an image datablock's filepath and there is a vector blur node in the scene.

It doesn't matter if the compositor is set to GPU or CPU mode, and the crash still happens if the compositor backdrop is disabled and there are no image editors open (so not related to the previous bugs sergey and omar resolved)

It's particularly strange because the render layer node is muted, so the 3d scene is not even being rendered (only the compositor is contributing to the render).

Exact steps for others to reproduce the error

  1. Open blender in factory mode to ensure there are no other addons using handlers
  2. Unzip and open blend file from it's unzipped location. Make sure to choose 'load UI' when opening the file
  3. run the script
  4. still in the scripting workspace, render the animation several times until it crashes. (it sometimes takes up to 20 attempts).
  5. Re-open, select collections containing elements with animated render visibility, and delete the collections and their contents.
  6. re-render, it will no longer crash (if it does, restart the computer and try again, because strangely, once Blender crashes it seems to cause crashes in all files even after restarting Blender)

I don't know if it's just a matter of the bug being more vulnerable under heavy load, but removing the vector blur node also seems to resolve even if the animated collections are still present.

**System Information** Operating system: Windows-10-10.0.22631-SP0 64 Bits Graphics card: NVIDIA GeForce RTX 4080 SUPER/PCIe/SSE2 NVIDIA Corporation 4.6.0 NVIDIA 555.99 **Blender Version** Broken: version: 4.3.0 Alpha, branch: main, commit date: 2024-06-16 05:35, hash: `71b14a7abe14` Worked: (unknown) **Short description of error** If a collection's render visibility is animated, Blender will crash if the pre-render handler is used to update an image datablock's filepath and there is a vector blur node in the scene. It doesn't matter if the compositor is set to GPU or CPU mode, and the crash still happens if the compositor backdrop is disabled and there are no image editors open (so not related to the previous bugs sergey and omar resolved) It's particularly strange because the render layer node is muted, so the 3d scene is not even being rendered (only the compositor is contributing to the render). **Exact steps for others to reproduce the error** 1. Open blender in factory mode to ensure there are no other addons using handlers 2. Unzip and open blend file from it's unzipped location. Make sure to choose 'load UI' when opening the file 3. run the script 4. still in the scripting workspace, render the animation several times until it crashes. (it sometimes takes up to 20 attempts). 5. Re-open, select collections containing elements with animated render visibility, and delete the collections and their contents. 6. re-render, it will no longer crash (if it does, restart the computer and try again, because strangely, once Blender crashes it seems to cause crashes in all files even after restarting Blender) I don't know if it's just a matter of the bug being more vulnerable under heavy load, but removing the vector blur node also seems to resolve even if the animated collections are still present.
michael campbell added the
Type
Report
Status
Needs Triage
Severity
Normal
labels 2024-06-29 17:09:56 +02:00
michael campbell changed title from ACCESS VIOLATION when updating image datablock filepaths from python handlers if a collection's visibility is animated and a vector blur node is present in the compositor! to ACCESS VIOLATION if a collection's visibility is animated and a vector blur node is present in the compositor when python is used to update image datablock filepaths. 2024-06-29 17:45:05 +02:00
michael campbell changed title from ACCESS VIOLATION if a collection's visibility is animated and a vector blur node is present in the compositor when python is used to update image datablock filepaths. to ACCESS VIOLATION if an empty's render visibility is animated and a vector blur node is present in the compositor when python is used to update image datablock filepaths. 2024-06-29 18:24:14 +02:00
michael campbell changed title from ACCESS VIOLATION if an empty's render visibility is animated and a vector blur node is present in the compositor when python is used to update image datablock filepaths. to ACCESS VIOLATION if an empty's render visibility is animated and a vector blur node is present in the compositor when python is used to update image datablock filepaths during render.render(animation=True) 2024-06-29 18:25:43 +02:00
michael campbell changed title from ACCESS VIOLATION if an empty's render visibility is animated and a vector blur node is present in the compositor when python is used to update image datablock filepaths during render.render(animation=True) to ACCESS VIOLATION if an empty's render visibility is animated and a vector blur node is present in the compositor when python is used to update image datablock filepaths from render_pre handler. 2024-06-29 18:26:54 +02:00
Member
ERROR (bke.fcurve): C:\Users\blender\git\blender-vdev\blender.git\source\blender\blenkernel\intern\fcurve_driver.cc:213 dtar_get_prop_val: Driver Evaluation Error: cannot resolve target for OBCAM_03 -> camera_shakes[0].influence

There is a driver error tho...

when python is used to update image datablock filepaths from render_pre handler

Not sure if this is the way to go. Maybe try changing the image in the script before calling render explicitly?

``` ERROR (bke.fcurve): C:\Users\blender\git\blender-vdev\blender.git\source\blender\blenkernel\intern\fcurve_driver.cc:213 dtar_get_prop_val: Driver Evaluation Error: cannot resolve target for OBCAM_03 -> camera_shakes[0].influence ``` There is a driver error tho... > when python is used to update image datablock filepaths from render_pre handler Not sure if this is the way to go. Maybe try changing the image in the script before calling render explicitly?

Morning YimingWu. The render_pre handler is called each frame during animation rendering, so the work it does can't be done before calling render.render(animation=True). Using the pre_render handler works great unless there's an animated render visibility.

I've just deleted all fcurves on cam 3, and can confirm the crash still happens. Even completely deleting cam 3 from 'the _cameras' and 'shots 3' collections , and then purging orphan data doesn't prevent the crash.

Morning YimingWu. The render_pre handler is called each frame during animation rendering, so the work it does can't be done before calling render.render(animation=True). Using the pre_render handler works great unless there's an animated render visibility. I've just deleted all fcurves on cam 3, and can confirm the crash still happens. Even completely deleting cam 3 from 'the _cameras' and 'shots 3' collections , and then purging orphan data doesn't prevent the crash.

I've just found that it seems to be a threading issue. So it seems that even though the backdrop is disabled, no image editors open, and no node previews enabled, the UI still seems to be accessing the image datablock. Locking the UI resolves the issue if done prior to calling render.render, but doesn't resolve the issue if done before/after updating the datablock in the pre_render handler.

I'll close for now and force the UI to lock prior to calling render.render. I'll re-open if there are any reports of it happening even with the UI locked.

I've just found that it seems to be a threading issue. So it seems that even though the backdrop is disabled, no image editors open, and no node previews enabled, the UI still seems to be accessing the image datablock. Locking the UI resolves the issue if done prior to calling render.render, but doesn't resolve the issue if done before/after updating the datablock in the pre_render handler. I'll close for now and force the UI to lock prior to calling render.render. I'll re-open if there are any reports of it happening even with the UI locked.
Blender Bot added
Status
Archived
and removed
Status
Needs Triage
labels 2024-07-01 15:31:30 +02:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Code Documentation
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
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
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
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
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
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
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
2 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#123947
No description provided.