Page MenuHome

Geometry Nodes: Crash using Poisson Disk Point Distribution on mesh with no faces
Closed, ResolvedPublicBUG

Description

System Information
Operating system: Linux-5.9.14-arch1-1-x86_64-with-arch-Arch-Linux 64 Bits
Graphics card: GeForce RTX 2070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 455.45.01

Blender Version
Broken: version: 2.92.0 Alpha, branch: master, commit date: 2020-12-21 19:07, hash: rB2d6e6d035b66
Worked: Never

Short description of error
On a mesh with no faces, attempting to use the Poisson Disk method on the Point Distribute node causes blender to crash.

Exact steps for others to reproduce the error

  1. Open the given file.
  2. Set the Point Distribute node's method from Random to Poisson Disk.
  3. Blender crashes.

Full, noisy, GDB backtrace below:

#0  0x000000000c2a77e6 in BLI_bvhtree_get_bounding_box (tree=0x0, r_bb_min=0x7fffd45b49b0, r_bb_max=0x7fffd45b49bc) at {SOURCE_DIR}/blender/source/blender/blenlib/intern/BLI_kdopbvh.c:1084
#1  0x000000000409aa48 in blender::nodes::poisson_scatter_points_from_mesh (mesh=0x7fffd2210008, density=1, minimum_distance=0.100000001, density_factors=..., r_ids=..., seed=0) at {SOURCE_DIR}/blender/source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc:214
#2  0x000000000409b2ca in blender::nodes::geo_node_point_distribute_exec (params=...) at {SOURCE_DIR}/blender/source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc:295
#3  0x0000000003de00e8 in GeometryNodesEvaluator::execute_node (this=0x7fffd45b5b90, node=..., params=...) at {SOURCE_DIR}/blender/source/blender/modifiers/intern/MOD_nodes.cc:307
#4  0x0000000003ddff0b in GeometryNodesEvaluator::compute_output_and_forward (this=0x7fffd45b5b90, socket_to_compute=...) at {SOURCE_DIR}/blender/source/blender/modifiers/intern/MOD_nodes.cc:290
#5  0x0000000003ddfb6e in GeometryNodesEvaluator::get_input_value (this=0x7fffd45b5b90, socket_to_compute=...) at {SOURCE_DIR}/blender/source/blender/modifiers/intern/MOD_nodes.cc:260
#6  0x0000000003ddf860 in GeometryNodesEvaluator::execute (this=0x7fffd45b5b90) at {SOURCE_DIR}/blender/source/blender/modifiers/intern/MOD_nodes.cc:226
#7  0x0000000003ddd1b2 in compute_geometry (tree=..., group_input_sockets=..., socket_to_compute=..., input_geometry_set=..., nmd=0x7fffd1e09008, ctx=0x7fffd45b6870) at {SOURCE_DIR}/blender/source/blender/modifiers/intern/MOD_nodes.cc:857
#8  0x0000000003ddd9a3 in modifyGeometry (md=0x7fffd1e09008, ctx=0x7fffd45b6870, geometry_set=...) at {SOURCE_DIR}/blender/source/blender/modifiers/intern/MOD_nodes.cc:964
#9  0x0000000003dddbea in modifyGeometrySet (md=0x7fffd1e09008, ctx=0x7fffd45b6870, geometry_set=0x7fffd45b69d0) at {SOURCE_DIR}/blender/source/blender/modifiers/intern/MOD_nodes.cc:984
#10 0x000000000389c849 in modifier_modify_mesh_and_geometry_set (md=0x7fffd1e09008, mectx=..., ob=0x7ffff4f53408, input_mesh=0x7fffd2210008, geometry_set=...) at {SOURCE_DIR}/blender/source/blender/blenkernel/intern/DerivedMesh.cc:916
#11 0x000000000389d7c1 in mesh_calc_modifiers (depsgraph=0x7ffff016db08, scene=0x7ffff5578c08, ob=0x7ffff4f53408, useDeform=1, need_mapping=false, dataMask=0x7fffd45b6eb0, index=-1, use_cache=true, allow_shared_mesh=true,  r_deform=0x7fffd45b6e28, r_final=0x7fffd45b6e20, r_geometry_set=0x7fffd45b6e30) at {SOURCE_DIR}/blender/source/blender/blenkernel/intern/DerivedMesh.cc:1254
#12 0x000000000389fdc7 in mesh_build_data (depsgraph=0x7ffff016db08, scene=0x7ffff5578c08, ob=0x7ffff4f53408, dataMask=0x7fffd45b6eb0, need_mapping=false) at {SOURCE_DIR}/blender/source/blender/blenkernel/intern/DerivedMesh.cc:1872
#13 0x00000000038a039f in makeDerivedMesh (depsgraph=0x7ffff016db08, scene=0x7ffff5578c08, ob=0x7ffff4f53408, em=0x0, dataMask=0x7fffd45b6f40) at {SOURCE_DIR}/blender/source/blender/blenkernel/intern/DerivedMesh.cc:2020
#14 0x00000000034d641e in BKE_object_handle_data_update (depsgraph=0x7ffff016db08, scene=0x7ffff5578c08, ob=0x7ffff4f53408) at {SOURCE_DIR}/blender/source/blender/blenkernel/intern/object_update.c:193
#15 0x00000000034d6dbc in BKE_object_eval_uber_data (depsgraph=0x7ffff016db08, scene=0x7ffff5578c08, ob=0x7ffff4f53408) at {SOURCE_DIR}/blender/source/blender/blenkernel/intern/object_update.c:385
#16 0x000000000af702bd in std::__invoke_impl<void, void (*&)(Depsgraph*, Scene*, Object*), Depsgraph*, Scene*&, Object*&> (__f=@0x7ffff4ecb520: 0x34d6d32 <BKE_object_eval_uber_data>) at /usr/include/c++/10.2.0/bits/invoke.h:60
#17 0x000000000af6e94a in std::__invoke<void (*&)(Depsgraph*, Scene*, Object*), Depsgraph*, Scene*&, Object*&> (__fn=@0x7ffff4ecb520: 0x34d6d32 <BKE_object_eval_uber_data>) at /usr/include/c++/10.2.0/bits/invoke.h:95
#18 0x000000000af6c96b in std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>::__call<void, Depsgraph*&&, 0ul, 1ul, 2ul>(std::tuple<Depsgraph*&&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) ( this=0x7ffff4ecb520, __args=...) at /usr/include/c++/10.2.0/functional:416
#19 0x000000000af6a508 in std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>::operator()<Depsgraph*, void>(Depsgraph*&&) (this=0x7ffff4ecb520) at /usr/include/c++/10.2.0/functional:499
#20 0x000000000af6765f in std::__invoke_impl<void, std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>&, Depsgraph*>(std::__invoke_other, std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>&, Depsgraph*&&) (__f=...) at /usr/include/c++/10.2.0/bits/invoke.h:60
#21 0x000000000af63e37 in std::__invoke_r<void, std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>&, Depsgraph*>(std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>&, Depsgraph*&&) (__fn=...) at /usr/include/c++/10.2.0/bits/invoke.h:110
#22 0x000000000af60f63 in std::_Function_handler<void (Depsgraph*), std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)> >::_M_invoke(std::_Any_data const&, Depsgraph*&&) (__functor=...,__args#0=@0x7fffd45b7160: 0x7ffff016db08) at /usr/include/c++/10.2.0/bits/std_function.h:291
#23 0x000000000af3b333 in std::function<void (Depsgraph*)>::operator()(Depsgraph*) const (this=0x7fffefb2d2c8, __args#0=0x7ffff016db08) at /usr/include/c++/10.2.0/bits/std_function.h:622
#24 0x000000000af3a599 in blender::deg::(anonymous namespace)::evaluate_node (state=0x7fffffffdb30, operation_node=0x7fffefb2d208) at {SOURCE_DIR}/blender/source/blender/depsgraph/intern/eval/deg_eval.cc:113
#25 0x000000000af3a5df in blender::deg::(anonymous namespace)::deg_task_run_func (pool=0x7fffc1cee608, taskdata=0x7fffefb2d208) at {SOURCE_DIR}/blender/source/blender/depsgraph/intern/eval/deg_eval.cc:124
#26 0x000000000c3cd762 in Task::operator()() const::{lambda()#1}::operator()() const (__closure=0x7fffd45b72f0) at {SOURCE_DIR}/blender/source/blender/blenlib/intern/task_pool.cc:118
#27 0x000000000c3cdb8e in tbb::interface7::internal::delegated_function<Task::operator()() const::{lambda()#1} const, void>::operator()() const (this=0x7fffd45b7280) at {SOURCE_DIR}/lib/linux_centos7_x86_64/tbb/include/tbb/task_arena.h:93
#28 0x000000000399f3d5 in tbb::interface7::internal::isolate_within_arena(tbb::interface7::internal::delegate_base&, long) ()
#29 0x000000000c3cd93f in tbb::interface7::internal::isolate_impl<void, Task::operator()() const::{lambda()#1} const>(Task::operator()() const::{lambda()#1} const&) (f=...) at {SOURCE_DIR}/lib/linux_centos7_x86_64/tbb/include/tbb/task_arena.h:160
#30 0x000000000c3cd859 in tbb::interface7::this_task_arena::isolate<Task::operator()() const::{lambda()#1}>(Task::operator()() const::{lambda()#1} const&) (f=...) at {SOURCE_DIR}/lib/linux_centos7_x86_64/tbb/include/tbb/task_arena.h:395
#31 0x000000000c3cd795 in Task::operator() (this=0x7fffd22053c8) at {SOURCE_DIR}/blender/source/blender/blenlib/intern/task_pool.cc:118
#32 0x000000000c3cdb6a in tbb::internal::function_task<Task>::execute (this=0x7fffd22053c0) at {SOURCE_DIR}/lib/linux_centos7_x86_64/tbb/include/tbb/task.h:1048
#33 0x00000000039acad5 in tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::process_bypass_loop(tbb::internal::context_guard_helper<false>&, tbb::task*, long) ()
#34 0x00000000039acd8b in tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::local_wait_for_all(tbb::task&, tbb::task*) ()
#35 0x000000000399f0e7 in tbb::internal::arena::process(tbb::internal::generic_scheduler&) ()
#36 0x00000000039a6850 in tbb::internal::market::process(rml::job&) ()
#37 0x00000000039a885c in tbb::internal::rml::private_worker::run() ()
#38 0x00000000039a8a59 in tbb::internal::rml::private_worker::thread_routine(void*) ()
#39 0x00007ffff7f783e9 in start_thread () from /usr/lib/libpthread.so.0
#40 0x00007ffff7b61293 in clone () from /usr/lib/libc.so.6

Event Timeline

Hans Goudey (HooglyBoogly) changed the task status from Needs Triage to Confirmed.Dec 22 2020, 3:01 AM
Hans Goudey (HooglyBoogly) changed the subtype of this task from "Report" to "Bug".

Thanks for the report, I can confirm this.