Crash doing certain modeling operations [customdata_typemap_is_valid] #77893

Closed
opened 2020-06-15 18:55:40 +02:00 by Kent Davis · 26 comments

System Information
Operating system: Darwin-19.6.0-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro 575 OpenGL Engine ATI Technologies Inc. 4.1 ATI-3.10.8

Blender Version
Broken: version: 2.90.0 Alpha, branch: master, commit date: 2020-06-13 21:25, hash: b325ecef9c
Worked: (newest version of Blender that worked as expected)

Short description of error
Blender 2.90 Alpha work for a while make crash guide.

Exact steps for others to reproduce the error
Macintosh only.
MacOS 10.15.5

BugsBunny v.0.0.4.blend

between belly through tail.
Knife drag image.png then select 2 or 3 vertex then push the 'M' key
From Vertex click to Face
Select Face image.png
also Add materials and rename to "Extra Select" on materials
Change color.
(leave editmode)

Crash might occur, hard to reproduce.

**System Information** Operating system: Darwin-19.6.0-x86_64-i386-64bit 64 Bits Graphics card: AMD Radeon Pro 575 OpenGL Engine ATI Technologies Inc. 4.1 ATI-3.10.8 **Blender Version** Broken: version: 2.90.0 Alpha, branch: master, commit date: 2020-06-13 21:25, hash: `b325ecef9c` Worked: (newest version of Blender that worked as expected) **Short description of error** Blender 2.90 Alpha work for a while make crash guide. **Exact steps for others to reproduce the error** Macintosh only. MacOS 10.15.5 [BugsBunny v.0.0.4.blend](https://archive.blender.org/developer/F8624457/BugsBunny_v.0.0.4.blend) between belly through tail. Knife drag ![image.png](https://archive.blender.org/developer/F8622121/image.png) then select 2 or 3 vertex then push the 'M' key From Vertex click to Face Select Face ![image.png](https://archive.blender.org/developer/F8622117/image.png) also Add materials and rename to "Extra Select" on materials Change color. (leave editmode) Crash might occur, hard to reproduce.
Author

Added subscriber: @Kent-Davis

Added subscriber: @Kent-Davis
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

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

Changed status from 'Needs Triage' to: 'Archived'
Philipp Oeser self-assigned this 2020-06-15 19:12:53 +02:00
Member

@Kent-Davis : I feel your pain. And I do believe you are experiencing crashes.

But: I dont think anything changed since reporting {#77793}?
No example file, no steps to reproduce, no nothing.

I can only repeat myself:

In #77793#952827, @lichtwerk wrote:
@Kent-Davis : unfortunately, we cannot afford to work randomly "any minutes, any hours" to blindly hunt down a bug.
We need your help here. Save often, If a crash occurs, immediately stop and try to reproduce what you just did to see if you can get it to crash again.
In the end you should have a file with clear instructions for devs what they have to do to reproduce your crash.

A guideline for making a good bug report can be found at https://wiki.blender.org/wiki/Process/Bug_Reports

If 2.90 is still too unstable for daily production work (it is still early in the release cycle), please use 2.83 instead.

Thx for reporting, but I think we have to close this (feel free though to comment again if you have found exact reproduction steps, and we can always reopen this report, thx)

@Kent-Davis : I feel your pain. And I do believe you are experiencing crashes. But: I dont think anything changed since reporting {#77793}? No example file, no steps to reproduce, no nothing. I can only repeat myself: > In #77793#952827, @lichtwerk wrote: > @Kent-Davis : unfortunately, we cannot afford to work randomly "any minutes, any hours" to blindly hunt down a bug. > We need your help here. Save often, If a crash occurs, immediately stop and try to reproduce what you just did to see if you can get it to crash again. > In the end you should have a file with clear instructions for devs what they have to do to reproduce your crash. > > A guideline for making a good bug report can be found at https://wiki.blender.org/wiki/Process/Bug_Reports > > If 2.90 is still too unstable for daily production work (it is still early in the release cycle), please use 2.83 instead. > > Thx for reporting, but I think we have to close this (feel free though to comment again if you have found exact reproduction steps, and we can always reopen this report, thx)
Author

I get me mad why you put invalid too fast!

I get me mad why you put invalid too fast!
Author

No file require. Blender 2.90 Alpha work without save not matter cause crash guide. Many times crash.

No file require. Blender 2.90 Alpha work without save not matter cause crash guide. Many times crash.
Member

Then please help us fix the crash by providing steps to reproduce, please.
Or are you saying blender crashes when you just open it? No.
Does it crash when you go into editmode on the default cube? No
It seems to crash when

add, remove vertex, edge and etc

How are you adding these? Extruding?

@Kent-Davis : Dont get me wrong, stuff you have reported helped numerous times fixing an issue, but you need to help us in a way that is reproducable.

Then please help us fix the crash by providing steps to reproduce, please. Or are you saying blender crashes when you just open it? No. Does it crash when you go into editmode on the default cube? No It seems to crash when > add, remove vertex, edge and etc How are you adding these? Extruding? @Kent-Davis : Dont get me wrong, stuff you have reported helped numerous times fixing an issue, but you need to help us in a way that is reproducable.
Author

File: BugsBunny v.0.0.4.blend
https://www.dropbox.com/s/14ibvir0hlt49qu/Bugs%20Bunny%202.zip?dl=0

between belly through tail.
Knife drag image.png then select 2 or 3 vertex then push the 'M' key
From Vertex click to Face
Select Face image.png
also Add materials and rename to "Extra Select" on materials
Change color.
Without step by step. Any where and any select.

File: BugsBunny v.0.0.4.blend https://www.dropbox.com/s/14ibvir0hlt49qu/Bugs%20Bunny%202.zip?dl=0 between belly through tail. Knife drag ![image.png](https://archive.blender.org/developer/F8622121/image.png) then select 2 or 3 vertex then push the 'M' key From Vertex click to Face Select Face ![image.png](https://archive.blender.org/developer/F8622117/image.png) also Add materials and rename to "Extra Select" on materials Change color. Without step by step. Any where and any select.
Member

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

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

Note: I tried randomly and indeed ran into following assert after doing above steps [leaving editmode]

BLI_assert failed: /blender/source/blender/blenkernel/intern/customdata.c:2252, CustomData_get_layer_index(), at 'customdata_typemap_is_valid(data)'

I have seen this assert before in #77776 (Blender 2.83 crushes after join meshes.)

This is still not really reproducable, just saying.

Note: I tried randomly and indeed ran into following assert after doing above steps [leaving editmode] ``` BLI_assert failed: /blender/source/blender/blenkernel/intern/customdata.c:2252, CustomData_get_layer_index(), at 'customdata_typemap_is_valid(data)' ``` I have seen this assert before in #77776 (Blender 2.83 crushes after join meshes.) This is still not really reproducable, just saying.
Philipp Oeser removed their assignment 2020-06-16 10:32:54 +02:00
Philipp Oeser changed title from Blender 2.90 Alpha part 2 to Crash doing certain modeling operations [customdata_typemap_is_valid] 2020-06-16 10:33:39 +02:00
Member

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker
Member

Another way to get above assert is to open the file and (you have to be very quick) expand the collection in the outliner before all shaders have properly been built:

1   CustomData_get_active_layer
2   extract_uv_init                  draw_cache_extract_mesh.c 1879 0x32807e2      
3   extract_init                        draw_cache_extract_mesh.c 4700 0x3296e06      
4   extract_init_and_run        draw_cache_extract_mesh.c 4728 
5   TaskNode::run(tbb::flow::interface11::continue_msg)::{lambda()#1}::operator()()   
6   tbb::interface7::internal::delegated_function<TaskNode::run(tbb::flow::interface11::continue_msg)::{lambda()#1} const, void>::operator()() const                                                                                                                                                                                     task_arena.h 
7   tbb::interface7::internal::isolate_within_arena(tbb::interface7::internal::delegate_base&, long)                                                                                                                                                                                                                                                                    
8   tbb::interface7::internal::isolate_impl<void, TaskNode::run(tbb::flow::interface11::continue_msg)::{lambda()#1} const>(TaskNode::run(tbb::flow::interface11::continue_msg)::{lambda()#1} const&)                                                                                                                                     task_arena.h
9   tbb::interface7::this_task_arena::isolate<TaskNode::run(tbb::flow::interface11::continue_msg)::{lambda()#1}>(tbb::interface7::internal::return_type_or_void const&)                                                                                                                                                                  task_arena.h
10  TaskNode::run 
11  std::__invoke_impl<tbb::flow::interface11::continue_msg, tbb::flow::interface11::continue_msg (TaskNode:: *&)(tbb::flow::interface11::continue_msg), TaskNode *&, tbb::flow::interface11::continue_msg const&>                                                                                                                       invoke.h
12  std::__invoke<tbb::flow::interface11::continue_msg (TaskNode:: *&)(tbb::flow::interface11::continue_msg), TaskNode *&, tbb::flow::interface11::continue_msg const&>                                                                                                                                                                  invoke.h
13  std::_Bind<tbb::flow::interface11::continue_msg (TaskNode:: *(TaskNode *, std::_Placeholder<1>))(tbb::flow::interface11::continue_msg)>::__call<tbb::flow::interface11::continue_msg, tbb::flow::interface11::continue_msg const&, 0ul, 1ul>(std::tuple<tbb::flow::interface11::continue_msg const&>&&, std::_Index_tuple<0ul, 1ul>)
14  std::_Bind<tbb::flow::interface11::continue_msg (TaskNode:: *(TaskNode *, std::_Placeholder<1>))(tbb::flow::interface11::continue_msg)>::operator()<tbb::flow::interface11::continue_msg const&, tbb::flow::interface11::continue_msg>(tbb::flow::interface11::continue_msg const&)
15  tbb::flow::interface11::internal::function_body_leaf<tbb::flow::interface11::continue_msg, tbb::flow::interface11::continue_msg, std::_Bind<tbb::flow::interface11::continue_msg (TaskNode:: *(TaskNode *, std::_Placeholder<1>))(tbb::flow::interface11::continue_msg)>>::operator()(tbb::flow::interface11::continue_msg const&)   _flow_graph_body_impl.h
16  tbb::flow::interface11::internal::continue_input<tbb::flow::interface11::continue_msg, tbb::flow::interface11::internal::Policy<void>>::apply_body_bypass                                                                                                                                                                           _flow_graph_node_impl.h
17  tbb::flow::interface11::internal::apply_body_task_bypass<tbb::flow::interface11::internal::continue_input<tbb::flow::interface11::continue_msg, tbb::flow::interface11::internal::Policy<void>>, tbb::flow::interface11::continue_msg>::execute                                                                                      _flow_graph_body_impl.h
18  tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::process_bypass_loop(tbb::internal::context_guard_helper<false>&, tbb::task *, long)                                                                                                                                                                                                           
19  tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::local_wait_for_all(tbb::task&, tbb::task *)                                                                                                                                                                                                                                                   
20  tbb::internal::arena::process(tbb::internal::generic_scheduler&)  

@Jeroen-Bakker: does this ring a bell?

Another way to get above assert is to open the file and (you have to be very quick) expand the collection in the outliner before all shaders have properly been built: ``` 1 CustomData_get_active_layer 2 extract_uv_init draw_cache_extract_mesh.c 1879 0x32807e2 3 extract_init draw_cache_extract_mesh.c 4700 0x3296e06 4 extract_init_and_run draw_cache_extract_mesh.c 4728 5 TaskNode::run(tbb::flow::interface11::continue_msg)::{lambda()#1}::operator()() 6 tbb::interface7::internal::delegated_function<TaskNode::run(tbb::flow::interface11::continue_msg)::{lambda()#1} const, void>::operator()() const task_arena.h 7 tbb::interface7::internal::isolate_within_arena(tbb::interface7::internal::delegate_base&, long) 8 tbb::interface7::internal::isolate_impl<void, TaskNode::run(tbb::flow::interface11::continue_msg)::{lambda()#1} const>(TaskNode::run(tbb::flow::interface11::continue_msg)::{lambda()#1} const&) task_arena.h 9 tbb::interface7::this_task_arena::isolate<TaskNode::run(tbb::flow::interface11::continue_msg)::{lambda()#1}>(tbb::interface7::internal::return_type_or_void const&) task_arena.h 10 TaskNode::run 11 std::__invoke_impl<tbb::flow::interface11::continue_msg, tbb::flow::interface11::continue_msg (TaskNode:: *&)(tbb::flow::interface11::continue_msg), TaskNode *&, tbb::flow::interface11::continue_msg const&> invoke.h 12 std::__invoke<tbb::flow::interface11::continue_msg (TaskNode:: *&)(tbb::flow::interface11::continue_msg), TaskNode *&, tbb::flow::interface11::continue_msg const&> invoke.h 13 std::_Bind<tbb::flow::interface11::continue_msg (TaskNode:: *(TaskNode *, std::_Placeholder<1>))(tbb::flow::interface11::continue_msg)>::__call<tbb::flow::interface11::continue_msg, tbb::flow::interface11::continue_msg const&, 0ul, 1ul>(std::tuple<tbb::flow::interface11::continue_msg const&>&&, std::_Index_tuple<0ul, 1ul>) 14 std::_Bind<tbb::flow::interface11::continue_msg (TaskNode:: *(TaskNode *, std::_Placeholder<1>))(tbb::flow::interface11::continue_msg)>::operator()<tbb::flow::interface11::continue_msg const&, tbb::flow::interface11::continue_msg>(tbb::flow::interface11::continue_msg const&) 15 tbb::flow::interface11::internal::function_body_leaf<tbb::flow::interface11::continue_msg, tbb::flow::interface11::continue_msg, std::_Bind<tbb::flow::interface11::continue_msg (TaskNode:: *(TaskNode *, std::_Placeholder<1>))(tbb::flow::interface11::continue_msg)>>::operator()(tbb::flow::interface11::continue_msg const&) _flow_graph_body_impl.h 16 tbb::flow::interface11::internal::continue_input<tbb::flow::interface11::continue_msg, tbb::flow::interface11::internal::Policy<void>>::apply_body_bypass _flow_graph_node_impl.h 17 tbb::flow::interface11::internal::apply_body_task_bypass<tbb::flow::interface11::internal::continue_input<tbb::flow::interface11::continue_msg, tbb::flow::interface11::internal::Policy<void>>, tbb::flow::interface11::continue_msg>::execute _flow_graph_body_impl.h 18 tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::process_bypass_loop(tbb::internal::context_guard_helper<false>&, tbb::task *, long) 19 tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::local_wait_for_all(tbb::task&, tbb::task *) 20 tbb::internal::arena::process(tbb::internal::generic_scheduler&) ``` @Jeroen-Bakker: does this ring a bell?
Jeroen Bakker self-assigned this 2020-06-16 11:14:31 +02:00
Member

I see it is where I made some changes. so will dive deeper. The issue is related to a hack we introduced d98ae27f02 to fix another issue.

I see it is where I made some changes. so will dive deeper. The issue is related to a hack we introduced d98ae27f02 to fix another issue.
Author

I show you previous I send first message of crash. https://developer.blender.org/T77793

After crash then appear longest paragraph appear I copy and paste.

I show you previous I send first message of crash. https://developer.blender.org/T77793 After crash then appear longest paragraph appear I copy and paste.
Author

Open the application Blender 2.90 Alpha appear then Command + O then push the ESC key then Control+Command+F 2 times then Command+O then esc cause crash guide while I am do fastest.

Open the application Blender 2.90 Alpha appear then Command + O then push the ESC key then Control+Command+F 2 times then Command+O then esc cause crash guide while I am do fastest.
Member

I was able to reproduce it with RPanel2_repro.blend open file and keep switching between object and edit mode. First time it took me a minute but I was able to reproduce. Will have a go at it next week.

I was able to reproduce it with [RPanel2_repro.blend](https://archive.blender.org/developer/F8632137/RPanel2_repro.blend) open file and keep switching between object and edit mode. First time it took me a minute but I was able to reproduce. Will have a go at it next week.

Added subscriber: @iss

Added subscriber: @iss

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

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

I can't reproduce any of provided files, but will confirm on behalf of @Jeroen-Bakker

I can't reproduce any of provided files, but will confirm on behalf of @Jeroen-Bakker
Member

The assert is telling the developer that the mesh custom data is in an incorrect state. So somewhere in blender we miss a call to CustomData_update_typemap

@ideasman42 during drawing of a mesh just after leaving edit mode we can get an assert (CustomData_update_typemap isn't up to date). I expect that there is a missing call to CustomData_update_typemap somewhere in the codebase. Note that the new threading in drawing seems seems to point it out, although it is still very hard to reproduce.

Does this ring a bell that CustomData_update_typemap isn't up to date when starting drawing?

The assert is telling the developer that the mesh custom data is in an incorrect state. So somewhere in blender we miss a call to `CustomData_update_typemap` @ideasman42 during drawing of a mesh just after leaving edit mode we can get an assert (CustomData_update_typemap isn't up to date). I expect that there is a missing call to `CustomData_update_typemap` somewhere in the codebase. Note that the new threading in drawing seems seems to point it out, although it is still very hard to reproduce. Does this ring a bell that CustomData_update_typemap isn't up to date when starting drawing?
Member

Added subscriber: @ideasman42

Added subscriber: @ideasman42
Member

Ah I see that the tangent normals is changing the typemap! what used to be in the main thread, but now is inside a thread so other threads may have a synchorization issue here.
extract_tan_ex can perform a CustomData_free_layers, BKE_editmesh_loop_tangent_calc or BKE_mesh_calc_loop_tangent_ex this should be moved to the main thread.

Ah I see that the tangent normals is changing the typemap! what used to be in the main thread, but now is inside a thread so other threads may have a synchorization issue here. `extract_tan_ex` can perform a `CustomData_free_layers`, `BKE_editmesh_loop_tangent_calc` or `BKE_mesh_calc_loop_tangent_ex` this should be moved to the main thread.

This issue was referenced by 8f97a64dec

This issue was referenced by 8f97a64dec356d48a51948658efed7d7a9074c6e
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Author

July 6, 2020
MacOS 11 for Mac only.
No there worse CRASH GUIDE still.
You may see youtube. https://youtu.be/MpU61sdHnNs

July 6, 2020 MacOS 11 for Mac only. No there worse CRASH GUIDE still. You may see youtube. https://youtu.be/MpU61sdHnNs
Author

June 6, 2020
I forget to tell you add.
Blender 2.90 Alpha I did not touch anything take a many minutes and few hours until Blender crash guide without I do I did not touch anything.
Still bad crash guide Blender 2.90 Alpha

June 6, 2020 I forget to tell you add. Blender 2.90 Alpha I did not touch anything take a many minutes and few hours until Blender crash guide without I do I did not touch anything. Still bad crash guide Blender 2.90 Alpha
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
5 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#77893
No description provided.