Page MenuHome

Crash doing certain modeling operations [customdata_typemap_is_valid]
Closed, ResolvedPublic


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: rBb325ecef9c26
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

between belly through tail.
Knife drag

then select 2 or 3 vertex then push the 'M' key
From Vertex click to Face
Select Face

also Add materials and rename to "Extra Select" on materials
Change color.
(leave editmode)

Crash might occur, hard to reproduce.

Event Timeline

Philipp Oeser (lichtwerk) claimed this task.

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

But: I dont think anything changed since reporting T77793: Blender 2.90 Crash Guide?
No example file, no steps to reproduce, no nothing.

I can only repeat myself:

@Kent Davis (mac4kent) : 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

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)

I get me mad why you put invalid too fast!

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

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 (mac4kent) : 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.

File: BugsBunny v.0.0.4.blend

between belly through tail.
Knife drag

then select 2 or 3 vertex then push the 'M' key
From Vertex click to Face
Select Face

also Add materials and rename to "Extra Select" on materials
Change color.
Without step by step. Any where and any select.

Philipp Oeser (lichtwerk) reopened this task as Needs Triage.Jun 15 2020, 8:31 PM

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 T77776: Blender 2.83 crushes after join meshes.

This is still not really reproducable, just saying.

Philipp Oeser (lichtwerk) updated the task description. (Show Details)
Philipp Oeser (lichtwerk) updated the task description. (Show Details)
Philipp Oeser (lichtwerk) renamed this task from Blender 2.90 Alpha part 2 to Crash doing certain modeling operations [customdata_typemap_is_valid].Jun 16 2020, 10:33 AM

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 (jbakker): does this ring a bell?

I see it is where I made some changes. so will dive deeper. The issue is related to a hack we introduced rBd98ae27f02c7: Fix T68857 EditUV: Crash on Remesh modifier with 'Display in Edit Mode' to fix another issue.

Jeroen Bakker (jbakker) triaged this task as High priority.Jun 16 2020, 11:14 AM

I show you previous I send first message of crash.

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

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.

I was able to reproduce it with

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.

Richard Antalik (ISS) changed the task status from Needs Triage to Confirmed.Jun 22 2020, 8:27 AM

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

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

@Campbell Barton (campbellbarton) 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?

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.

July 6, 2020
MacOS 11 for Mac only.
No there worse CRASH GUIDE still.
You may see youtube.

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