Page MenuHome

Crash - Geometry nodes using Mesh to curve > Fill curve (set to N-gon)
Closed, ResolvedPublicBUG

Description

System Information
Operating system: Windows-10-10.0.19043-SP0 64 Bits
Graphics card: Radeon RX Vega ATI Technologies Inc. 4.5.14802 Core Profile Context 22.1.2 30.0.14023.3004

Blender Version
Broken: version: 3.2.0 Alpha, branch: master, commit date: 2022-02-19 14:35, hash: rB991781c8eabe
Worked: Never

Short description of error
Blender crashes on a primitive sphere mesh, but not a cube. After adding two nodes.

Exact steps for others to reproduce the error

  • Open .blend file
  • Set fill type to N-Gons



Related Objects

Event Timeline

Pratik Borhade (PratikPB2123) changed the task status from Needs Triage to Confirmed.Feb 21 2022, 5:31 AM

Thanks for the report. Can reproduce crash.
Not a regression, crash is reproducible since Mesh to Curve node landed in master.

blender.exe         :0x00007FF67A7C8490  bli_windows_system_backtrace_stack_thread C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\system_win32.c:219
blender.exe         :0x00007FF67A7C7520  BLI_windows_system_backtrace_stack C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\system_win32.c:306
blender.exe         :0x00007FF67A7C6EF0  BLI_system_backtrace C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\system_win32.c:372
blender.exe         :0x00007FF67A7CB710  _BLI_assert_print_backtrace C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\BLI_assert.c:36
blender.exe         :0x00007FF67A8FEFF0  blender::meshintersect::remove_faces_in_holes<double> C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\delaunay_2d.cc:2470
blender.exe         :0x00007FF67A8FE9A0  blender::meshintersect::prepare_cdt_for_output<double> C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\delaunay_2d.cc:2641
blender.exe         :0x00007FF67A8FC6B0  blender::meshintersect::get_cdt_output<double> C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\delaunay_2d.cc:2649
blender.exe         :0x00007FF67A8F9DB0  blender::meshintersect::delaunay_calc<double> C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\delaunay_2d.cc:2781
blender.exe         :0x00007FF67A907C10  blender::meshintersect::delaunay_2d_calc C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\delaunay_2d.cc:2787
blender.exe         :0x00007FF6795D47C0  blender::nodes::node_geo_curve_fill_cc::do_cdt C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\nodes\geometry\nodes\node_geo_curve_fill.cc:69
blender.exe         :0x00007FF6795D4500  blender::nodes::node_geo_curve_fill_cc::curve_fill_calculate C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\nodes\geometry\nodes\node_geo_curve_fill.cc:130
blender.exe         :0x00007FF6795CC730  <lambda_094e9b88e2c9cf74dfbc46004ce853f1>::operator() C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\nodes\geometry\nodes\node_geo_curve_fill.cc:145
blender.exe         :0x00007FF6795C7540  blender::FunctionRef<void __cdecl(GeometrySet &)>::callback_fn<<lambda_094e9b88e2c9cf74dfbc46004ce8 C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\BLI_function_ref.hh:96
blender.exe         :0x00007FF67844A8B0  blender::FunctionRef<void __cdecl(GeometrySet &)>::operator() C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\BLI_function_ref.hh:133
blender.exe         :0x00007FF678449EB0  <lambda_48cd2054a6a5634f0ba4bc8b9b759717>::operator() C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenkernel\intern\geometry_set.cc:553
blender.exe         :0x00007FF6784451C0  blender::threading::parallel_for_each<blender::Vector<GeometrySet *,4,blender::GuardedAllocator>,<l C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\BLI_task.hh:46
blender.exe         :0x00007FF678450560  GeometrySet::modify_geometry_sets C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenkernel\intern\geometry_set.cc:552
blender.exe         :0x00007FF6795DCCF0  blender::nodes::node_geo_curve_fill_cc::node_geo_exec C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\nodes\geometry\nodes\node_geo_curve_fill.cc:147
blender.exe         :0x00007FF678EE6E60  blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute_geometry_node C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:994
blender.exe         :0x00007FF678EE8D50  blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute_node C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:968
blender.exe         :0x00007FF678EEFC90  blender::modifiers::geometry_nodes::GeometryNodesEvaluator::node_task_run C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:776
blender.exe         :0x00007FF678EF38B0  blender::modifiers::geometry_nodes::GeometryNodesEvaluator::run_node_from_task_pool C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:754
blender.exe         :0x00007FF67A87B970  Task::operator() C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\task_pool.cc:165
blender.exe         :0x00007FF67A87C180  tbb_task_pool_run C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\task_pool.cc:215
blender.exe         :0x00007FF67A87C7C0  BLI_task_pool_push C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\task_pool.cc:472
blender.exe         :0x00007FF678EE2890  blender::modifiers::geometry_nodes::GeometryNodesEvaluator::add_node_to_task_pool C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:1402
blender.exe         :0x00007FF678ED5550  blender::modifiers::geometry_nodes::GeometryNodesEvaluator::with_locked_node<<lambda_531922ecfeaca7 C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:1755
blender.exe         :0x00007FF678EF3E40  blender::modifiers::geometry_nodes::GeometryNodesEvaluator::send_output_required_notification C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:1372
blender.exe         :0x00007FF678ED5CD0  blender::modifiers::geometry_nodes::GeometryNodesEvaluator::with_locked_node<<lambda_97e59d60c46e6e C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:1739
blender.exe         :0x00007FF678EF39E0  blender::modifiers::geometry_nodes::GeometryNodesEvaluator::schedule_initial_nodes C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:692
blender.exe         :0x00007FF678EE6D80  blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:490
blender.exe         :0x00007FF678EE6CC0  blender::modifiers::geometry_nodes::evaluate_geometry_nodes C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes_evaluator.cc:1942
blender.exe         :0x00007FF678E2DA50  compute_geometry C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes.cc:1136
blender.exe         :0x00007FF678E36200  modifyGeometry C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes.cc:1245
blender.exe         :0x00007FF678E0D980  modifyGeometrySet C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\modifiers\intern\MOD_nodes.cc:1267
blender.exe         :0x00007FF67851B000  modifier_modify_mesh_and_geometry_set C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenkernel\intern\DerivedMesh.cc:705
blender.exe         :0x00007FF678518DE0  mesh_calc_modifiers C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenkernel\intern\DerivedMesh.cc:1037
blender.exe         :0x00007FF678518800  mesh_build_data C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenkernel\intern\DerivedMesh.cc:1633
blender.exe         :0x00007FF67851E7F0  makeDerivedMesh C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenkernel\intern\DerivedMesh.cc:1788
blender.exe         :0x00007FF6785665C0  BKE_object_handle_data_update C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenkernel\intern\object_update.c:174
blender.exe         :0x00007FF678566440  BKE_object_eval_uber_data C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenkernel\intern\object_update.c:337
blender.exe         :0x00007FF678BF7920  <lambda_dfec21a1fb9cbd0068712bf807655c50>::operator() C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\depsgraph\intern\builder\deg_builder_nodes.cc:1454
blender.exe         :0x00007FF678BF2950  std::invoke<<lambda_dfec21a1fb9cbd0068712bf807655c50> &,Depsgraph *> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\type_traits:1610
blender.exe         :0x00007FF678BEC770  std::_Invoker_ret<void,1>::_Call<<lambda_dfec21a1fb9cbd0068712bf807655c50> &,Depsgraph *> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\functional:745
blender.exe         :0x00007FF678BFAC80  std::_Func_impl_no_alloc<<lambda_dfec21a1fb9cbd0068712bf807655c50>,void,Depsgraph *>::_Do_call C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\functional:921
blender.exe         :0x00007FF678BC00F0  std::_Func_class<void,Depsgraph *>::operator() C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\functional:969
blender.exe         :0x00007FF678BC0A90  blender::deg::`anonymous namespace'::evaluate_node C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\depsgraph\intern\eval\deg_eval.cc:104
blender.exe         :0x00007FF678BC0830  blender::deg::`anonymous namespace'::deg_task_run_func C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\depsgraph\intern\eval\deg_eval.cc:116
blender.exe         :0x00007FF67A87B970  Task::operator() C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\task_pool.cc:165
blender.exe         :0x00007FF67A87C180  tbb_task_pool_run C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\task_pool.cc:215
blender.exe         :0x00007FF67A87C250  tbb_task_pool_work_and_wait C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\task_pool.cc:227
blender.exe         :0x00007FF67A87C9C0  BLI_task_pool_work_and_wait C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenlib\intern\task_pool.cc:487
blender.exe         :0x00007FF678BC0590  blender::deg::deg_evaluate_on_refresh C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\depsgraph\intern\eval\deg_eval.cc:385
blender.exe         :0x00007FF678B6FB70  deg_flush_updates_and_refresh C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\depsgraph\intern\depsgraph_eval.cc:45
blender.exe         :0x00007FF678B6FCD0  DEG_evaluate_on_refresh C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\depsgraph\intern\depsgraph_eval.cc:69
blender.exe         :0x00007FF6781FF2D0  scene_graph_update_tagged C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenkernel\intern\scene.c:2571
blender.exe         :0x00007FF6781F8480  BKE_scene_graph_update_tagged C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\blenkernel\intern\scene.c:2619
blender.exe         :0x00007FF67803CEE0  wm_event_do_depsgraph C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\windowmanager\intern\wm_event_system.c:381
blender.exe         :0x00007FF67803EF20  wm_event_do_refresh_wm_and_depsgraph C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\windowmanager\intern\wm_event_system.c:404
blender.exe         :0x00007FF67803E380  wm_event_do_notifiers C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\windowmanager\intern\wm_event_system.c:615
blender.exe         :0x00007FF678012720  WM_main C:\Users\Pratik\Desktop\BlenderOSP\blender\source\blender\windowmanager\intern\wm.c:629
blender.exe         :0x00007FF67800A1C0  main C:\Users\Pratik\Desktop\BlenderOSP\blender\source\creator\creator.c:548
blender.exe         :0x00007FF67AB524B0  invoke_main d:\a01\_work\12\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79
blender.exe         :0x00007FF67AB52260  __scrt_common_main_seh d:\a01\_work\12\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
blender.exe         :0x00007FF67AB52240  __scrt_common_main d:\a01\_work\12\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331
blender.exe         :0x00007FF67AB52570  mainCRTStartup d:\a01\_work\12\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17
KERNEL32.DLL        :0x00007FFEBE947020  BaseThreadInitThunk
ntdll.dll           :0x00007FFEC05E2630  RtlUserThreadStart
Hans Goudey (HooglyBoogly) changed the subtype of this task from "Report" to "Bug".Feb 28 2022, 6:18 PM

I simplified the file a bit to this:


Not sure where to go from there. The bug seems to be somewhere in triangulation code. It's quite sensitive to the input, so small changes in the inputs can stop making it crash.
@Howard Trickey (howardt) can you have a look at this?

Hard to say, but this may be related to T95518.

Thanks for looking into this guys. Not sure this is helpful, might be a separate issue, or not an issue at all. But starting with a holed mesh and trying convert the edges into curves then filling give unexpected results. The resulting faces seem to have no Z depth. If this isn't helpful just ignore.

The problem is basically that my delaunay code expects there to be faces in the input if the output mode "VALID_BMESH_WITH_HOLES" is used. I'm not sure what the user was expecting here -- a triangulation of the convex hull of the segments that includes those segments, and then dissolving non-input edges inside as much as possible while leaving valid bmesh? I suppose I could add that output mode, but none of the current output modes do that.

Of course it shouldn't crash and I'll fix that, but the current output will just be a set of points, no faces, because there are no input faces to preserve in the output.

Thanks for looking into this @Howard Trickey (howardt). I don't think the triangulation needs to accomplish anything here, just avoiding the crash would be perfect.