Page MenuHome

Large smoke simulation sometimes make Blender crash
Closed, ResolvedPublic

Description

System Information
Windows 10, i7-4770S, GTX 760

Blender Version
Broken: 2.76b

Short description of error
Blender crashes when atempting to simulate smoke but with no crash report. By launching it with cmd, the type of error i catch is EXCEPTION_ACCESS_VIOLATION

Exact steps for others to reproduce the error
I've tried to reproduce this crash with another scene, but it didn't crash so here is the .blend file that i use :
Based on a (as simple as possible) attached .blend file with minimum amount of steps

Event Timeline

Dylan Brasseur (Helios77) raised the priority of this task from to 90.
Dylan Brasseur (Helios77) updated the task description. (Show Details)
Dylan Brasseur (Helios77) edited a custom field.

Well i miss clicked... so here is the file : http://puu.sh/mxTHW/6c3e9d7cb8.rar (i compressed it to a rar file)
The steps to reproduce the crash :

  • When the scene is loaded, try to play the timeline from 0 in order to bake some smoke (it may directly crash)
  • if it didn't crash, add a smoke flow simulation on the cylinder, with the source being the particle system. Then try to play the timeline from 0 (it crashed every time for me)
Bastien Montagne (mont29) lowered the priority of this task from 90 to 50.Jan 16 2016, 6:28 PM

Easy to confirm crash with an asan build here on linux… I think this is a threading issue, crash happens inside Smoke library, it seems to be caused by a growing _totalCells (i.e. resolution) while some threaded sim code still uses old allocated memory… No time to investigate further this evening.

Okay, so in the end it's not related to threading. Issue comes when zres is <3, then some pieces of code generate out-of-bound indices. E.g., in FLUID_3D::setNeumannZ, index + 2 * slabSize goes totally out of bound, since array has only slabSize items.

@Daniel Genrich (genscher) will let you handle it from there, I do not understand that code and would probably only do stupid things trying to fix this. ;)

Hey,

I can't compile blender at the moment :-(

You need at least 3 (if not 4) res in every direction. I thought min res was already set to 32 or something? I wonder how zres goes below 3. Maybe it's a missing constraint in the "Dynamic" feature, which adaptively changes the domain res.

@ mont29: Nice work for tracing that zres stuff!

@Daniel Dietrich (daniel) yes, the smoke domain is very thin in Z dir, guess that's why…