Crash rendering particle animation with particle caches [disk cache works though] #82769

Closed
opened 2020-11-17 01:51:59 +01:00 by Bernhard Engstler · 25 comments

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 456.71

Blender Version
Broken: version: 2.91.0 Beta, branch: master, commit date: 2020-11-14 03:36, hash: 9b54c81414
Worked: 2.90.1
Worked: 2.83.9
Caused by 263148dbac

Short description of error
Rendering an animation with two particle systems using Cycles or Eevee results in a crash

Stack trace:
blender.exe         :0x00007FF7C378C910  ptcache_particle_read
blender.exe         :0x00007FF7C378D0A0  ptcache_read
blender.exe         :0x00007FF7C3789BC0  BKE_ptcache_read
blender.exe         :0x00007FF7C3783780  system_step
blender.exe         :0x00007FF7C377D870  particle_system_update
blender.exe         :0x00007FF7C39FED20  deformVerts
blender.exe         :0x00007FF7C37B1F70  mesh_calc_modifiers
blender.exe         :0x00007FF7C37B1CB0  mesh_build_data
blender.exe         :0x00007FF7C37B1AF0  makeDerivedMesh
blender.exe         :0x00007FF7C37DB030  BKE_object_handle_data_update
blender.exe         :0x00007FF7C37DAD60  BKE_object_eval_uber_data
blender.exe         :0x00007FF7C740BE30  std::_Func_impl_no_alloc<std::_Binder<std::_Unforced,void (__cdecl&)(Depsgraph * __ptr64,Main * __p
blender.exe         :0x00007FF7C740A210  blender::deg::`anonymous namespace'::evaluate_node
blender.exe         :0x00007FF7C740A1C0  blender::deg::`anonymous namespace'::deg_task_run_func
tbb.dll             :0x00007FFEDBA351D0  tbb::interface7::internal::isolate_within_arena
blender.exe         :0x00007FF7C748E410  tbb::internal::function_task<Task>::execute
tbb.dll             :0x00007FFEDBA437A0  tbb::recursive_mutex::scoped_lock::internal_try_acquire
tbb.dll             :0x00007FFEDBA437A0  tbb::recursive_mutex::scoped_lock::internal_try_acquire
blender.exe         :0x00007FF7C3A565E0  tbb::internal::task_group_base::wait
blender.exe         :0x00007FF7C7409D50  blender::deg::deg_evaluate_on_refresh
blender.exe         :0x00007FF7C36DAFF0  scene_graph_update_tagged
blender.exe         :0x00007FF7C3862730  wm_event_do_notifiers
blender.exe         :0x00007FF7C384D2F0  WM_main
blender.exe         :0x00007FF7C35596E0  main
blender.exe         :0x00007FF7C79B3888  __scrt_common_main_seh
KERNEL32.DLL        :0x00007FFEEB787020  BaseThreadInitThunk
ntdll.dll           :0x00007FFEED51CEA0  RtlUserThreadSta

{F9306181}

Exact steps for others to reproduce the error

  • Open the project file attached below
  • Render the animation

{F9317435}

Workaround

  • enable Render > Lock Interface or
  • bake to disk cache
**System Information** Operating system: Windows-10-10.0.19041-SP0 64 Bits Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 456.71 **Blender Version** Broken: version: 2.91.0 Beta, branch: master, commit date: 2020-11-14 03:36, hash: `9b54c81414` Worked: 2.90.1 Worked: 2.83.9 Caused by 263148dbac **Short description of error** Rendering an animation with two particle systems using Cycles or Eevee results in a crash ```lines Stack trace: blender.exe :0x00007FF7C378C910 ptcache_particle_read blender.exe :0x00007FF7C378D0A0 ptcache_read blender.exe :0x00007FF7C3789BC0 BKE_ptcache_read blender.exe :0x00007FF7C3783780 system_step blender.exe :0x00007FF7C377D870 particle_system_update blender.exe :0x00007FF7C39FED20 deformVerts blender.exe :0x00007FF7C37B1F70 mesh_calc_modifiers blender.exe :0x00007FF7C37B1CB0 mesh_build_data blender.exe :0x00007FF7C37B1AF0 makeDerivedMesh blender.exe :0x00007FF7C37DB030 BKE_object_handle_data_update blender.exe :0x00007FF7C37DAD60 BKE_object_eval_uber_data blender.exe :0x00007FF7C740BE30 std::_Func_impl_no_alloc<std::_Binder<std::_Unforced,void (__cdecl&)(Depsgraph * __ptr64,Main * __p blender.exe :0x00007FF7C740A210 blender::deg::`anonymous namespace'::evaluate_node blender.exe :0x00007FF7C740A1C0 blender::deg::`anonymous namespace'::deg_task_run_func tbb.dll :0x00007FFEDBA351D0 tbb::interface7::internal::isolate_within_arena blender.exe :0x00007FF7C748E410 tbb::internal::function_task<Task>::execute tbb.dll :0x00007FFEDBA437A0 tbb::recursive_mutex::scoped_lock::internal_try_acquire tbb.dll :0x00007FFEDBA437A0 tbb::recursive_mutex::scoped_lock::internal_try_acquire blender.exe :0x00007FF7C3A565E0 tbb::internal::task_group_base::wait blender.exe :0x00007FF7C7409D50 blender::deg::deg_evaluate_on_refresh blender.exe :0x00007FF7C36DAFF0 scene_graph_update_tagged blender.exe :0x00007FF7C3862730 wm_event_do_notifiers blender.exe :0x00007FF7C384D2F0 WM_main blender.exe :0x00007FF7C35596E0 main blender.exe :0x00007FF7C79B3888 __scrt_common_main_seh KERNEL32.DLL :0x00007FFEEB787020 BaseThreadInitThunk ntdll.dll :0x00007FFEED51CEA0 RtlUserThreadSta ``` {F9306181} **Exact steps for others to reproduce the error** - Open the project file attached below - Render the animation {F9317435} **Workaround** - enable `Render` > `Lock Interface` or - bake to disk cache

Added subscriber: @B_Engstler

Added subscriber: @B_Engstler

Added subscriber: @rjg

Added subscriber: @rjg

Changed status from 'Needs Triage' to: 'Needs User Info'

Changed status from 'Needs Triage' to: 'Needs User Info'

According to the crash log it happens when accessing the particle cache. The CUDA/OptiX denoiser problem seems like a separate issue. Please try to create a minimal version of the project that still results in a crash and upload it here.

According to the crash log it happens when accessing the particle cache. The CUDA/OptiX denoiser problem seems like a separate issue. Please try to create a *minimal* version of the project that still results in a crash and upload it here.

The hint with the particles helped a lot to reduce the scene to a minimum and get a closer idea of what is causing the trouble. It only crashes if disk cache is unchecked, but if I bake to disk cache it does not crash anymore. Anyway, here's the file:
ani_SH_180_v004_bE_debug.zip

The hint with the particles helped a lot to reduce the scene to a minimum and get a closer idea of what is causing the trouble. It only crashes if disk cache is unchecked, but if I bake to disk cache it does not crash anymore. Anyway, here's the file: [ani_SH_180_v004_bE_debug.zip](https://archive.blender.org/developer/F9317435/ani_SH_180_v004_bE_debug.zip)

Changed status from 'Needs User Info' to: 'Needs Triage'

Changed status from 'Needs User Info' to: 'Needs Triage'

Added subscriber: @Andreas80

Added subscriber: @Andreas80

I can reproduce the crash regardless of the denoiser in 2.91+, 2.83.9 works fine. This seems to be an issue with the particle system cache or how it's processed. Using Delete All Bakes and then Bake All Dynamics on both particle systems doesn't make a difference. However, Delete All Bakes, enabling Disk Cache and then Bake All Dynamics appears to avoid the crash.

ptcache_particle_read(int index, void * psys_v, void * * data, float cfra, const float * old_data) Lines 345	C
ptcache_read(PTCacheID * pid, int cfra) Lines 2183	C
BKE_ptcache_read(PTCacheID * pid, float cfra, bool no_extrapolate_old) Lines 2313	C
system_step(ParticleSimulationData * sim, float cfra, const bool use_render_params) Lines 4516	C
particle_system_update(Depsgraph * depsgraph, Scene * scene, Object * ob, ParticleSystem * psys, const bool use_render_params) Lines 4934	C
deformVerts(ModifierData * md, const ModifierEvalContext * ctx, Mesh * mesh, float- [x] * vertexCos, int numVerts) Lines 229	C
mesh_calc_modifiers(Depsgraph * depsgraph, Scene * scene, Object * ob, int useDeform, const bool need_mapping, const CustomData_MeshMasks * dataMask, const int index, const bool use_cache, const bool allow_shared_mesh, Mesh * * r_deform, Mesh * * r_final) Lines 991	C
mesh_build_data(Depsgraph * depsgraph, Scene * scene, Object * ob, const CustomData_MeshMasks * dataMask, const bool need_mapping) Lines 1806	C
makeDerivedMesh(Depsgraph * depsgraph, Scene * scene, Object * ob, BMEditMesh * em, const CustomData_MeshMasks * dataMask) Lines 1927	C
BKE_object_handle_data_update(Depsgraph * depsgraph, Scene * scene, Object * ob) Lines 194	C
BKE_object_eval_uber_data(Depsgraph * depsgraph, Scene * scene, Object * ob) Lines 385	C
 	[External Code]	
blender::deg::`anonymous namespace'::deg_task_run_func(TaskPool * pool, void * taskdata) Lines 127	C++
 	[External Code]	
tbb::interface7::internal::isolate_impl<void,void <Lambdafunktion>(void) const>(const Task::()::__l2::void <Lambdafunktion>(void) & f) Lines 160	C++
Task::operator()() Lines 122	C++
tbb::internal::function_task<Task>::execute() Lines 1049	C++
 	[External Code]	
tbb::internal::task_group_base::wait() Lines 168	C++
blender::deg::deg_evaluate_on_refresh(blender::deg::Depsgraph * graph) Lines 398	C++
scene_graph_update_tagged(Depsgraph * depsgraph, Main * bmain, bool only_if_tagged) Lines 2592	C
wm_event_do_depsgraph(bContext * C, bool is_after_open_file) Lines 356	C
wm_event_do_refresh_wm_and_depsgraph(bContext * C) Lines 384	C
wm_event_do_notifiers(bContext * C) Lines 562	C
WM_main(bContext * C) Lines 641	C
main(int argc, const unsigned char * * UNUSED_argv_c) Lines 527	C
 	[External Code]	
I can reproduce the crash regardless of the denoiser in 2.91+, 2.83.9 works fine. This seems to be an issue with the particle system cache or how it's processed. Using *Delete All Bakes* and then *Bake All Dynamics* on both particle systems doesn't make a difference. However, *Delete All Bakes*, enabling *Disk Cache* and then *Bake All Dynamics* appears to avoid the crash. ```lines ptcache_particle_read(int index, void * psys_v, void * * data, float cfra, const float * old_data) Lines 345 C ptcache_read(PTCacheID * pid, int cfra) Lines 2183 C BKE_ptcache_read(PTCacheID * pid, float cfra, bool no_extrapolate_old) Lines 2313 C system_step(ParticleSimulationData * sim, float cfra, const bool use_render_params) Lines 4516 C particle_system_update(Depsgraph * depsgraph, Scene * scene, Object * ob, ParticleSystem * psys, const bool use_render_params) Lines 4934 C deformVerts(ModifierData * md, const ModifierEvalContext * ctx, Mesh * mesh, float- [x] * vertexCos, int numVerts) Lines 229 C mesh_calc_modifiers(Depsgraph * depsgraph, Scene * scene, Object * ob, int useDeform, const bool need_mapping, const CustomData_MeshMasks * dataMask, const int index, const bool use_cache, const bool allow_shared_mesh, Mesh * * r_deform, Mesh * * r_final) Lines 991 C mesh_build_data(Depsgraph * depsgraph, Scene * scene, Object * ob, const CustomData_MeshMasks * dataMask, const bool need_mapping) Lines 1806 C makeDerivedMesh(Depsgraph * depsgraph, Scene * scene, Object * ob, BMEditMesh * em, const CustomData_MeshMasks * dataMask) Lines 1927 C BKE_object_handle_data_update(Depsgraph * depsgraph, Scene * scene, Object * ob) Lines 194 C BKE_object_eval_uber_data(Depsgraph * depsgraph, Scene * scene, Object * ob) Lines 385 C [External Code] blender::deg::`anonymous namespace'::deg_task_run_func(TaskPool * pool, void * taskdata) Lines 127 C++ [External Code] tbb::interface7::internal::isolate_impl<void,void <Lambdafunktion>(void) const>(const Task::()::__l2::void <Lambdafunktion>(void) & f) Lines 160 C++ Task::operator()() Lines 122 C++ tbb::internal::function_task<Task>::execute() Lines 1049 C++ [External Code] tbb::internal::task_group_base::wait() Lines 168 C++ blender::deg::deg_evaluate_on_refresh(blender::deg::Depsgraph * graph) Lines 398 C++ scene_graph_update_tagged(Depsgraph * depsgraph, Main * bmain, bool only_if_tagged) Lines 2592 C wm_event_do_depsgraph(bContext * C, bool is_after_open_file) Lines 356 C wm_event_do_refresh_wm_and_depsgraph(bContext * C) Lines 384 C wm_event_do_notifiers(bContext * C) Lines 562 C WM_main(bContext * C) Lines 641 C main(int argc, const unsigned char * * UNUSED_argv_c) Lines 527 C [External Code] ```

@B_Engstler Do you know how you managed to create the file where the particle cache seemingly breaks 2.91 and 2.92?

@B_Engstler Do you know how you managed to create the file where the particle cache seemingly breaks 2.91 and 2.92?
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

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

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

Will check

Will check
Robert Guetzkow changed title from Crash rendering animation in Cycles - EXCEPTION_ACCESS_VIOLATION; Adress 0x00007FF7C378C987 to Crash rendering particle animation in Cycles 2020-11-19 11:59:54 +01:00
Member

Forgot that I need to fix my CUDA installation, thus cannot fully bisect, but it broke between 940b239ad4 (good) an e4932d1167 (bad)

Forgot that I need to fix my CUDA installation, thus cannot fully bisect, but it broke between 940b239ad4 (good) an e4932d1167 (bad)

I just recreated a very basic scene with only one emitter (default cube) and another subdivided and displaced cube as particle object. To me it seems that somehow it is related to change the emitter object on a mesh level and baking again, e.g. deleting a face, bake again, safe file, render. But I'm not 100% sure, this seems very erratic.
ParticleTest.blend
This basic scene crashes immediately upon opening and rendering (Ctrl F12).

I just recreated a very basic scene with only one emitter (default cube) and another subdivided and displaced cube as particle object. To me it seems that somehow it is related to change the emitter object on a mesh level and baking again, e.g. deleting a face, bake again, safe file, render. But I'm not 100% sure, this seems very erratic. [ParticleTest.blend](https://archive.blender.org/developer/F9324717/ParticleTest.blend) This basic scene crashes immediately upon opening and rendering (Ctrl F12).
Member

For me, ani_SH_180_v004_bE_debug seems to survive if I have Render > Lock Interface checked.

@B_Engstler : can you confirm?

For me, `ani_SH_180_v004_bE_debug` seems to survive if I have `Render` > `Lock Interface` checked. @B_Engstler : can you confirm?

In #82769#1057687, @lichtwerk wrote:
For me, ani_SH_180_v004_bE_debug seems to survive if I have Render > Lock Interface checked.

@B_Engstler : can you confirm?

Yes! It rendered a couple of times now without crashing and locked interface, unchecking it crashes during first render attempt. It also crashes with CPU rendering for me.

> In #82769#1057687, @lichtwerk wrote: > For me, `ani_SH_180_v004_bE_debug` seems to survive if I have `Render` > `Lock Interface` checked. > > @B_Engstler : can you confirm? Yes! It rendered a couple of times now without crashing and locked interface, unchecking it crashes during first render attempt. It also crashes with CPU rendering for me.
Member

It also crashes with CPU rendering for me.

For me, too [that means I can do the bisect though :)]

> It also crashes with CPU rendering for me. For me, too [that means I can do the bisect though :)]
Member

Caused by 263148dbac

Caused by 263148dbac
Philipp Oeser changed title from Crash rendering particle animation in Cycles to Crash rendering particle animation with particle caches [disk cache works though] 2020-11-19 14:20:49 +01:00
Member

Added subscriber: @JacquesLucke

Added subscriber: @JacquesLucke
Member

CC @JacquesLucke (feel free to set back to lower prio, just letting you know this is bisected and a regression in 2.91 from 2.90.1)

CC @JacquesLucke (feel free to set back to lower prio, just letting you know this is bisected and a regression in 2.91 from 2.90.1)
Jacques Lucke self-assigned this 2020-11-19 17:32:18 +01:00
Member

Not sure how 263148dbac caused this regression, but D9606 seems to fix the threading issue.

Not sure how 263148dbac caused this regression, but [D9606](https://archive.blender.org/developer/D9606) seems to fix the threading issue.

This issue was referenced by dca36a8ec9

This issue was referenced by dca36a8ec922bcce6bc4882cd6cba52792ed56ee
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'

This comment was removed by @rjg

*This comment was removed by @rjg*

I can confirm this fixes the problem. In my previous comment I didn't notice that this was not yet merged into master.

I can confirm this fixes the problem. In my previous comment I didn't notice that this was not yet merged into master.
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
6 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#82769
No description provided.