Blender crashes as adding geometry nodes #119589

Open
opened 2024-03-17 11:56:44 +01:00 by Alina-7 · 20 comments

System Information
Operating system: macOS-14.1-arm64-arm-64bit 64 Bits
Graphics card: Metal API Apple M1 Pro 1.2

Blender Version
Broken: version: 4.0.2, branch: blender-v4.0-release, commit date: 2023-12-05 07:41, hash: 9be62e85b727
Worked: (newest version of Blender that worked as expected)

Short description of error
Blender crashes as adding and editing geometry nodes to rotate floating particles behind the object (donut). Nodes such as Rotate Euler, Instances on Points, Random Value

Exact steps for others to reproduce the error
Add geometry nodes exactly like on my screenshot and then play the animation. Blender crashes when I press 'space' or edit numbers in nodes

**System Information** Operating system: macOS-14.1-arm64-arm-64bit 64 Bits Graphics card: Metal API Apple M1 Pro 1.2 **Blender Version** Broken: version: 4.0.2, branch: blender-v4.0-release, commit date: 2023-12-05 07:41, hash: `9be62e85b727` Worked: (newest version of Blender that worked as expected) **Short description of error** Blender crashes as adding and editing geometry nodes to rotate floating particles behind the object (donut). Nodes such as Rotate Euler, Instances on Points, Random Value **Exact steps for others to reproduce the error** Add geometry nodes exactly like on my screenshot and then play the animation. Blender crashes when I press 'space' or edit numbers in nodes
Alina-7 added the
Type
Report
Priority
Normal
Status
Needs Triage
labels 2024-03-17 11:56:45 +01:00
Member

I can confirm this issue. I tried testing with a debug build, but I couldn't pick out much useful information due to my lack of knowledge of this area of code.

System Information
Operating system: macOS-14.2.1-arm64-arm-64bit 64 Bits
Graphics card: Metal API Apple M1 Pro 1.2
Blender version: 4.2.0 Alpha, branch: main (modified), commit date: 2024-03-17 06:25, hash: 2de84a77acdc

I can confirm this issue. I tried testing with a debug build, but I couldn't pick out much useful information due to my lack of knowledge of this area of code. **System Information** Operating system: macOS-14.2.1-arm64-arm-64bit 64 Bits Graphics card: Metal API Apple M1 Pro 1.2 Blender version: 4.2.0 Alpha, branch: main (modified), commit date: 2024-03-17 06:25, hash: `2de84a77acdc`
Alaska added
Status
Confirmed
Interest
Geometry Nodes
Module
Modeling
and removed
Status
Needs Triage
labels 2024-03-17 13:56:31 +01:00
Alaska added
Module
Nodes & Physics
and removed
Module
Modeling
labels 2024-03-17 13:57:31 +01:00

I can not confirm crash, but i can see dependency cycle and non-loaded texture.
Can you check if this is fixed in blender 4.1 or check if fix of dependency cycle will fix crash?

Dependency cycle detected:
  GRSprinkles/GEOMETRY_EVAL_DONE() depends on
  OBSprinkle/GEOMETRY_EVAL() via 'Collection Geometry'
  OBSprinkle/MODIFIER(GeometryNodes) via 'modifier stack order'
  GRSprinkles/GEOMETRY_EVAL_DONE() via 'Nodes Modifier'
Detected 1 dependency cycles
GPUTexture: Blender Texture Not Loaded!
I can not confirm crash, but i can see dependency cycle and non-loaded texture. Can you check if this is fixed in blender 4.1 or check if fix of dependency cycle will fix crash? ``` Dependency cycle detected: GRSprinkles/GEOMETRY_EVAL_DONE() depends on OBSprinkle/GEOMETRY_EVAL() via 'Collection Geometry' OBSprinkle/MODIFIER(GeometryNodes) via 'modifier stack order' GRSprinkles/GEOMETRY_EVAL_DONE() via 'Nodes Modifier' Detected 1 dependency cycles GPUTexture: Blender Texture Not Loaded! ```
Member
**System Information**
Operating system: macOS-14.4-arm64-arm-64bit 64 Bits
Graphics card: Metal API Apple M2 1.2
version: 4.2.0 Alpha, branch: main, commit date: 2024-03-12 22:12, hash: `443ea628c5c8`

Can confirm, cannot build atm. to debug.
4.1 and 3.6.10 also crash.
Linux seems fine.

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	       0x1825eaa60 __pthread_kill + 8
1   libsystem_pthread.dylib       	       0x182622c20 pthread_kill + 288
2   libsystem_c.dylib             	       0x18252fab4 __abort + 136
3   libsystem_c.dylib             	       0x18252fa2c abort + 192
4   libc++abi.dylib               	       0x1825d9d30 abort_message + 132
5   libc++abi.dylib               	       0x1825c9fcc demangling_terminate_handler() + 320
6   libobjc.A.dylib               	       0x1822681e0 _objc_terminate() + 160
7   libc++abi.dylib               	       0x1825d90f4 std::__terminate(void (*)()) + 16
8   libc++abi.dylib               	       0x1825dc5f8 __cxa_rethrow + 204
9   Blender                       	       0x102f082b8 tbb::internal::task_group_base::wait() + 104
10  Blender                       	       0x102f0823c BLI_task_pool_work_and_wait + 384
11  Blender                       	       0x102f37b10 blender::deg::(anonymous namespace)::evaluate_graph_threaded_stage(blender::deg::(anonymous namespace)::DepsgraphEvalState*, TaskPool*, blender::deg::(anonymous namespace)::EvaluationStage) + 340
12  Blender                       	       0x102f37898 blender::deg::deg_evaluate_on_refresh(blender::deg::Depsgraph*) + 316
13  Blender                       	       0x102f480f8 deg_flush_updates_and_refresh(blender::deg::Depsgraph*, DepsgraphEvaluateSyncWriteback) + 64
14  Blender                       	       0x1029fc50c BKE_scene_graph_update_for_newframe_ex(Depsgraph*, bool) + 104
15  Blender                       	       0x103554c00 screen_animation_step_invoke(bContext*, wmOperator*, wmEvent const*) + 660
16  Blender                       	       0x102f60f38 wm_operator_invoke(bContext*, wmOperatorType*, wmEvent const*, PointerRNA*, ReportList*, bool, bool) + 552
17  Blender                       	       0x102f65c14 wm_handler_operator_call(bContext*, ListBase*, wmEventHandler*, wmEvent*, PointerRNA*, char const*) + 584
18  Blender                       	       0x102f64c80 wm_handlers_do_intern(bContext*, wmWindow*, wmEvent*, ListBase*) + 1864
19  Blender                       	       0x102f63fb4 wm_handlers_do(bContext*, wmEvent*, ListBase*) + 72
20  Blender                       	       0x102f63b78 wm_event_do_handlers(bContext*) + 3780
21  Blender                       	       0x102f58f8c WM_main(bContext*) + 36
22  Blender                       	       0x102653fb8 main + 856
23  dyld                          	       0x18229a0e0 start + 2360

Will raise priority here since this is a crasher.

``` **System Information** Operating system: macOS-14.4-arm64-arm-64bit 64 Bits Graphics card: Metal API Apple M2 1.2 version: 4.2.0 Alpha, branch: main, commit date: 2024-03-12 22:12, hash: `443ea628c5c8` ``` Can confirm, cannot build atm. to debug. 4.1 and 3.6.10 also crash. Linux seems fine. <details> ``` Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x1825eaa60 __pthread_kill + 8 1 libsystem_pthread.dylib 0x182622c20 pthread_kill + 288 2 libsystem_c.dylib 0x18252fab4 __abort + 136 3 libsystem_c.dylib 0x18252fa2c abort + 192 4 libc++abi.dylib 0x1825d9d30 abort_message + 132 5 libc++abi.dylib 0x1825c9fcc demangling_terminate_handler() + 320 6 libobjc.A.dylib 0x1822681e0 _objc_terminate() + 160 7 libc++abi.dylib 0x1825d90f4 std::__terminate(void (*)()) + 16 8 libc++abi.dylib 0x1825dc5f8 __cxa_rethrow + 204 9 Blender 0x102f082b8 tbb::internal::task_group_base::wait() + 104 10 Blender 0x102f0823c BLI_task_pool_work_and_wait + 384 11 Blender 0x102f37b10 blender::deg::(anonymous namespace)::evaluate_graph_threaded_stage(blender::deg::(anonymous namespace)::DepsgraphEvalState*, TaskPool*, blender::deg::(anonymous namespace)::EvaluationStage) + 340 12 Blender 0x102f37898 blender::deg::deg_evaluate_on_refresh(blender::deg::Depsgraph*) + 316 13 Blender 0x102f480f8 deg_flush_updates_and_refresh(blender::deg::Depsgraph*, DepsgraphEvaluateSyncWriteback) + 64 14 Blender 0x1029fc50c BKE_scene_graph_update_for_newframe_ex(Depsgraph*, bool) + 104 15 Blender 0x103554c00 screen_animation_step_invoke(bContext*, wmOperator*, wmEvent const*) + 660 16 Blender 0x102f60f38 wm_operator_invoke(bContext*, wmOperatorType*, wmEvent const*, PointerRNA*, ReportList*, bool, bool) + 552 17 Blender 0x102f65c14 wm_handler_operator_call(bContext*, ListBase*, wmEventHandler*, wmEvent*, PointerRNA*, char const*) + 584 18 Blender 0x102f64c80 wm_handlers_do_intern(bContext*, wmWindow*, wmEvent*, ListBase*) + 1864 19 Blender 0x102f63fb4 wm_handlers_do(bContext*, wmEvent*, ListBase*) + 72 20 Blender 0x102f63b78 wm_event_do_handlers(bContext*) + 3780 21 Blender 0x102f58f8c WM_main(bContext*) + 36 22 Blender 0x102653fb8 main + 856 23 dyld 0x18229a0e0 start + 2360 ``` </details> Will raise priority here since this is a crasher.
Philipp Oeser added
Priority
High
Platform
macOS
and removed
Priority
Normal
labels 2024-03-18 16:51:13 +01:00
Member
CC @Michael-Parkin-White-Apple
Blender Bot added
Status
Archived
and removed
Status
Confirmed
labels 2024-03-19 11:01:56 +01:00
Author

I can not confirm crash, but i can see dependency cycle and non-loaded texture.
Can you check if this is fixed in blender 4.1 or check if fix of dependency cycle will fix crash?

Dependency cycle detected:
  GRSprinkles/GEOMETRY_EVAL_DONE() depends on
  OBSprinkle/GEOMETRY_EVAL() via 'Collection Geometry'
  OBSprinkle/MODIFIER(GeometryNodes) via 'modifier stack order'
  GRSprinkles/GEOMETRY_EVAL_DONE() via 'Nodes Modifier'
Detected 1 dependency cycles
GPUTexture: Blender Texture Not Loaded!

Thank you, you helped a lot

> I can not confirm crash, but i can see dependency cycle and non-loaded texture. > Can you check if this is fixed in blender 4.1 or check if fix of dependency cycle will fix crash? > ``` > Dependency cycle detected: > GRSprinkles/GEOMETRY_EVAL_DONE() depends on > OBSprinkle/GEOMETRY_EVAL() via 'Collection Geometry' > OBSprinkle/MODIFIER(GeometryNodes) via 'modifier stack order' > GRSprinkles/GEOMETRY_EVAL_DONE() via 'Nodes Modifier' > Detected 1 dependency cycles > GPUTexture: Blender Texture Not Loaded! > ``` Thank you, you helped a lot
Member

Hm, dependency cycles can lead to unwanted behavior, however i assume the crash should still be sorted out

Hm, dependency cycles can lead to unwanted behavior, however i assume the crash should still be sorted out
Blender Bot added
Status
Needs Triage
and removed
Status
Archived
labels 2024-03-19 11:29:12 +01:00
Philipp Oeser added
Status
Confirmed
and removed
Status
Needs Triage
labels 2024-03-19 11:29:25 +01:00

@lichtwerk Idk how to read stack you send in message above, but does this Nodes & Physics regression?

@lichtwerk Idk how to read stack you send in message above, but does this Nodes & Physics regression?
Member

@lichtwerk Idk how to read stack you send in message above, but does this Nodes & Physics regression?

3.6 LTS also crashes

> @lichtwerk Idk how to read stack you send in message above, but does this Nodes & Physics regression? 3.6 LTS also crashes

@lichtwerk I means, it is geometry nodes bug or eevee-gpu one?

@lichtwerk I means, it is geometry nodes bug or eevee-gpu one?
Member

Can someone provide more precise reproduction steps?

Can someone provide more precise reproduction steps?
Member

The steps I've used to reproduce the crash is as follows:

  1. Open the attached .blend file.
  2. Play back the animation. At some point Blender will crash.

So far testing points to this being a Mac specific issue. A further simplified file, and/or steps other than "Open the file and Play back the animation" would be nice, and I'll see if I can get that information for you later today.

The steps I've used to reproduce the crash is as follows: 1. Open the attached .blend file. 2. Play back the animation. At some point Blender will crash. So far testing points to this being a Mac specific issue. A further simplified file, and/or steps other than "Open the file and Play back the animation" would be nice, and I'll see if I can get that information for you later today.
Member

Thanks. In this case I don't know how to debug this unfortunately. The backtrace is too generic. Maybe it would help to get the backtrace from all threads. Or alternatively, you could start Blender with -t 1. Maybe that results in a better backtrace.

Thanks. In this case I don't know how to debug this unfortunately. The backtrace is too generic. Maybe it would help to get the backtrace from all threads. Or alternatively, you could start Blender with `-t 1`. Maybe that results in a better backtrace.
Member

Some updates:

  1. The ability to reproduce the issue is inconsistent. Sometimes it happens within a second of playing the animation, sometimes after minutes. And it appears to be way harder in debug builds.
  2. I am personally unable to reproduce the issue in single thread mode (-t 1). Maybe it can be reproduced but I didn't find it due to the inconsistent behaviour described in point 1.
  3. The dependency cycle mentioned earlier seems to be necessary to reproduce the crash. Or maybe it's that inconsistent behaviour again.
  4. I retested Windows and can reproduce the issue there, but it's way harder to reproduce than on my Mac.
  5. When trying to debug this issue in Xcode, issues occur in different parts. cstring, Blender asserts (only available in debug builds), and TBB errors (debug only?). So there is probably multiple issues here.

Here is a full stack trace for a crash in Blender 4.2 Alpha (The cause for this crash seems to be different from the one see by @lichtwerk in a previous message):
Mac - Donut.crash.txt

I'm sorry I didn't save the stack trace from my Xcode debugging sessions the first time round (specifically the cstring one as this seems like it might be the one @lichtwerk experienced). And I'm having a really hard time reproducing them (see point 1 above), so I only have one of them I can share:
Mac - Blender Assert Back Trace.txt

And here's the one crash I experienced on Windows with Blender 4.2 Alpha:
Windows - Donut.crash.txt


I tried looking into simplifying the file, but it just made reproducing the issue more unreliable. Explanation of steps I tried for simplifying the file:

  • Assuming the dependency cycles is needed to reproduce the crash, then let's remove everything that isn't related to that.
    • The dependency cycles occurs in the sprinkles (one of the sprinkles is using a geometry node setup that instances itself onto itself). The sprinkles are used in two places, on the donut icing and falling in the background.
    • Let's remove the donut and and it's icing and leave just the sprinkles in the background. I could still reproduce a crash with this, but it was harder to get it to crash (E.G. Having to wait more time or start adjusting values in the Geometry nodes until something happened).
      - Due to the difficultly of reproducing a crash with this setup, it became harder for me to simplify the file further, so I stopped simplifying there.
    • What about the other way around? Remove the sprinkles in the background and leave just the sprinkles on the donuts? I couldn't reproduce a crash with this (might be related to the inconsistency issue described before, and it will still crash if you give it enough time or poke it enough)

I'm sorry there's not much else I can contribute here. The inconsistent behaviour of the crashing, and my lack of knowledge in this area of code makes it hard for me to do much more than what's detailed here.

Some updates: 1. The ability to reproduce the issue is inconsistent. Sometimes it happens within a second of playing the animation, sometimes after minutes. And it appears to be way harder in debug builds. 2. I am personally unable to reproduce the issue in single thread mode (`-t 1`). Maybe it can be reproduced but I didn't find it due to the inconsistent behaviour described in point 1. 3. The dependency cycle mentioned earlier seems to be necessary to reproduce the crash. Or maybe it's that inconsistent behaviour again. 4. I retested Windows and can reproduce the issue there, but it's way harder to reproduce than on my Mac. 5. When trying to debug this issue in Xcode, issues occur in different parts. cstring, Blender asserts (only available in debug builds), and TBB errors (debug only?). So there is probably multiple issues here. Here is a full stack trace for a crash in Blender 4.2 Alpha (The cause for this crash seems to be different from the one see by @lichtwerk in a previous message): [Mac - Donut.crash.txt](/attachments/cd93caab-d5db-4e0b-a903-273c11d65abe) I'm sorry I didn't save the stack trace from my Xcode debugging sessions the first time round (specifically the cstring one as this seems like it might be the one @lichtwerk experienced). And I'm having a really hard time reproducing them (see point 1 above), so I only have one of them I can share: [Mac - Blender Assert Back Trace.txt](/attachments/85f66bff-c83e-43cb-a288-3eb75b7aa8f4) And here's the one crash I experienced on Windows with Blender 4.2 Alpha: [Windows - Donut.crash.txt](/attachments/b4397dd0-f371-48f3-975b-71fb96a7383b) --- I tried looking into simplifying the file, but it just made reproducing the issue more unreliable. Explanation of steps I tried for simplifying the file: - Assuming the dependency cycles is needed to reproduce the crash, then let's remove everything that isn't related to that. - The dependency cycles occurs in the sprinkles (one of the sprinkles is using a geometry node setup that instances itself onto itself). The sprinkles are used in two places, on the donut icing and falling in the background. - Let's remove the donut and and it's icing and leave just the sprinkles in the background. I could still reproduce a crash with this, but it was harder to get it to crash (E.G. Having to wait more time or start adjusting values in the Geometry nodes until something happened). - Due to the difficultly of reproducing a crash with this setup, it became harder for me to simplify the file further, so I stopped simplifying there. - What about the other way around? Remove the sprinkles in the background and leave just the sprinkles on the donuts? I couldn't reproduce a crash with this (might be related to the inconsistency issue described before, and it will still crash if you give it enough time or poke it enough) --- I'm sorry there's not much else I can contribute here. The inconsistent behaviour of the crashing, and my lack of knowledge in this area of code makes it hard for me to do much more than what's detailed here.

Thanks, it seems there is data race.

Thanks, it seems there is data race.

I can not reproduce this in regular build, but can in debug build. Data race for collection geometry in Collection Info output.

I can not reproduce this in regular build, but can in debug build. Data race for collection geometry in Collection Info output.
Iliya Katushenock added this to the 4.1 milestone 2024-03-22 14:10:07 +01:00

I am not able to build visualization of dependency graph of example file.

I am not able to build visualization of dependency graph of example file.
Thomas Dinges removed this from the 4.1 milestone 2024-03-25 11:22:23 +01:00
Contributor

Can someone confirm that the crash is still happening? I couldn't reproduce it myself in either linux or windows and when looking at Mac - Blender Assert Back Trace.txt I saw that the code have being updated in couple of places.
Want to make sure this is still a problem before look into it farther.

Can someone confirm that the crash is still happening? I couldn't reproduce it myself in either linux or windows and when looking at Mac - Blender Assert Back Trace.txt I saw that the code have being updated in couple of places. Want to make sure this is still a problem before look into it farther.

take a look at the "Sprinkle" object. it seems that there is the same geonodes modifier on it. but the object "Sprinkle" is used into the same geonodes with the instanced collection "Sprinkles".
So probably this can cause some cycle that brings it to crash.
I tried to delete the geonodes modifier on "Sprinkle" object and blender doesn't crash anymore.

take a look at the "Sprinkle" object. it seems that there is the same geonodes modifier on it. but the object "Sprinkle" is used into the same geonodes with the instanced collection "Sprinkles". So probably this can cause some cycle that brings it to crash. I tried to delete the geonodes modifier on "Sprinkle" object and blender doesn't crash anymore.

So probably this can cause some cycle that brings it to crash.

Yes, there is data race, one geometry in collection is modified from thread of dependency graph cow-copy and from another one thread geometry nodes do tooltip logging (referenc count..).
This is more UB with crash rather than actual bug.

> So probably this can cause some cycle that brings it to crash. Yes, there is data race, one geometry in collection is modified from thread of dependency graph cow-copy and from another one thread geometry nodes do tooltip logging (referenc count..). This is more UB with crash rather than actual bug.

Can someone confirm that the crash is still happening?

I can reproduce assert on attempt to read empty span in yesterday 4.2 debug build.

> Can someone confirm that the crash is still happening? I can reproduce assert on attempt to read empty span in yesterday 4.2 debug build.
Iliya Katushenock added
Interest
Dependency Graph
and removed
Platform
macOS
labels 2024-04-23 12:34:02 +02:00
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
7 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#119589
No description provided.