cyclopsLevelBuilder icon indicating copy to clipboard operation
cyclopsLevelBuilder copied to clipboard

Crashes Godot when attempting Visual Selection

Open Swivelgames opened this issue 1 year ago • 12 comments

First time using Cyclops Level Builder. It's very intriguing! But it seems to get into a buggy state that results in a crash whenever I use it.

Problem

Cyclops Blocks are not selectable in the Viewport. Attempting to Visual Select the block crashes Godot completely.

Reproduction Steps

  1. Open a mildly populated scene via the Godot Editor
  2. Add a Cyclops Block to the Scene
  3. Deselect the Cyclops Block
  4. Attempt to select the Cyclops Block by Left Clicking on it in the Viewport
  5. Attempt to visually select in the Godot Editor

Result

  • Notice the editor hangs for a while
  • Godot crashes after about 5 seconds, producing the logs below

Observations I first noticed this when attempting to visually select something in the viewport. It seems that you can't visually select anything in the viewport anymore.

When I was playing around with this during reproduction, I noticed that simply trying to click on a Cyclops Block seemed to trigger the Visual Selection. It was subtle, since I wasn't clicking-dragging, but just tapping within the viewport seems to trigger Visual Selection, which is weird. Even when I wasn't in Cyclops mode, when I tapped in the viewport (without a Cyclops block selected), I noticed the yellow Cyclops dot briefly appear where I clicked. That might be a place to look!

I also noticed a number of errors in the logs that suggests there are some concerning errors being thrown in the GDScripts. None of these errors show in the version of the project right before adding Cyclops. :thinking:

Screenshot

image

Logs

ERROR: Condition "array_len == 0" is true. Returning: ERR_INVALID_DATA
   at: mesh_create_surface_data_from_arrays (servers/rendering_server.cpp:1195)
ERROR: Condition "err != OK" is true.
   at: add_surface_from_arrays (scene/resources/mesh.cpp:1810)

...(repeated)...

ERROR: Can't take value from empty array.
   at: back (core/variant/array.cpp:340)

...

ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)

...(repeated)...

SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)

...(repeated)...

ERROR: Condition "!is_ancestor_of(p_node)" is true. Returning: false
   at: is_editable_instance (scene/main/node.cpp:2518)

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.3.stable.arch_linux
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /usr/lib/libc.so.6(+0x411d0) [0x7354f57411d0] (??:0)
[2] godot(+0x26a4deb) [0x5ecfc59cbdeb] (??:?)
[3] godot(+0x26a8e9f) [0x5ecfc59cfe9f] (??:?)
[4] godot(+0x26d7c9f) [0x5ecfc59fec9f] (??:?)
[5] godot(+0x556beb2) [0x5ecfc8892eb2] (??:?)
[6] godot(+0x32a61f4) [0x5ecfc65cd1f4] (??:?)
[7] godot(+0x3184370) [0x5ecfc64ab370] (??:?)
[8] godot(+0x31dba30) [0x5ecfc6502a30] (??:?)
[9] godot(+0x31df948) [0x5ecfc6506948] (??:?)
[10] godot(+0x32000df) [0x5ecfc65270df] (??:?)
[11] godot(+0x5d4d08d) [0x5ecfc907408d] (??:?)
[12] godot(+0xed2f82) [0x5ecfc41f9f82] (??:?)
[13] godot(+0x51ea460) [0x5ecfc8511460] (??:?)
[14] godot(+0x51ec6a0) [0x5ecfc85136a0] (??:?)
[15] godot(+0xed6414) [0x5ecfc41fd414] (??:?)
[16] godot(+0xe1391c) [0x5ecfc413a91c] (??:?)
[17] /usr/lib/libc.so.6(+0x29e08) [0x7354f5729e08] (??:0)
[18] /usr/lib/libc.so.6(__libc_start_main+0x8c) [0x7354f5729ecc] (??:0)
[19] godot(+0xe36b85) [0x5ecfc415db85] (??:?)
-- END OF BACKTRACE --
================================================================
[1]    416037 IOT instruction (core dumped)  godot -e

Expand below to see the Full Log

Expand to see the entire log (Lots of errors!)
Godot Engine v4.3.stable.arch_linux - https://godotengine.org
Vulkan 1.3.293 - Forward+ - Using Device #0: AMD - AMD Radeon RX 6750 XT

ERROR: Condition "array_len == 0" is true. Returning: ERR_INVALID_DATA
   at: mesh_create_surface_data_from_arrays (servers/rendering_server.cpp:1195)
ERROR: Condition "err != OK" is true.
   at: add_surface_from_arrays (scene/resources/mesh.cpp:1810)
ERROR: Condition "array_len == 0" is true. Returning: ERR_INVALID_DATA
   at: mesh_create_surface_data_from_arrays (servers/rendering_server.cpp:1195)
ERROR: Condition "err != OK" is true.
   at: add_surface_from_arrays (scene/resources/mesh.cpp:1810)
ERROR: Can't take value from empty array.
   at: back (core/variant/array.cpp:340)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
ERROR: Condition "det == 0" is true.
   at: invert (core/math/basis.cpp:47)
ERROR: Condition "det == 0" is true.
   at: affine_invert (core/math/transform_2d.cpp:51)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
SCRIPT ERROR: Assertion failed: failed to add point in triangulation
          at: trianglate_face_vertex_indices (res://addons/cyclops_level_builder/math/math_util.gd:203)
ERROR: Condition "!is_ancestor_of(p_start_node)" is true. Returning: p_start_node
   at: get_deepest_editable_node (scene/main/node.cpp:2525)
ERROR: Condition "!is_ancestor_of(p_node)" is true. Returning: false
   at: is_editable_instance (scene/main/node.cpp:2518)

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.3.stable.arch_linux
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /usr/lib/libc.so.6(+0x411d0) [0x7354f57411d0] (??:0)
[2] godot(+0x26a4deb) [0x5ecfc59cbdeb] (??:?)
[3] godot(+0x26a8e9f) [0x5ecfc59cfe9f] (??:?)
[4] godot(+0x26d7c9f) [0x5ecfc59fec9f] (??:?)
[5] godot(+0x556beb2) [0x5ecfc8892eb2] (??:?)
[6] godot(+0x32a61f4) [0x5ecfc65cd1f4] (??:?)
[7] godot(+0x3184370) [0x5ecfc64ab370] (??:?)
[8] godot(+0x31dba30) [0x5ecfc6502a30] (??:?)
[9] godot(+0x31df948) [0x5ecfc6506948] (??:?)
[10] godot(+0x32000df) [0x5ecfc65270df] (??:?)
[11] godot(+0x5d4d08d) [0x5ecfc907408d] (??:?)
[12] godot(+0xed2f82) [0x5ecfc41f9f82] (??:?)
[13] godot(+0x51ea460) [0x5ecfc8511460] (??:?)
[14] godot(+0x51ec6a0) [0x5ecfc85136a0] (??:?)
[15] godot(+0xed6414) [0x5ecfc41fd414] (??:?)
[16] godot(+0xe1391c) [0x5ecfc413a91c] (??:?)
[17] /usr/lib/libc.so.6(+0x29e08) [0x7354f5729e08] (??:0)
[18] /usr/lib/libc.so.6(__libc_start_main+0x8c) [0x7354f5729ecc] (??:0)
[19] godot(+0xe36b85) [0x5ecfc415db85] (??:?)
-- END OF BACKTRACE --
================================================================
[1]    416037 IOT instruction (core dumped)  godot -e

Swivelgames avatar Oct 17 '24 06:10 Swivelgames

Here's a quick screenshot that I was able to grab when just trying to click on the block. This seems to happen regardless of whether or not I'm tapping on a Cyclops block, or any other object in my scene. You'll need to zoom in, but that's definitely a Visual Selection, even though I'm just clicking and not click-dragging.

image

image

Also, here's the logs from that test that show some different errors than we were getting before:

Expand for additional Error Logs
Godot Engine v4.3.stable.arch_linux - https://godotengine.org
Vulkan 1.3.293 - Forward+ - Using Device #0: AMD - AMD Radeon RX 6750 XT

ERROR: Node not found: "/root/CyclopsAutoload" (absolute path attempted from "/root/@EditorNode@16887/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/Node3D/block0").
   at: get_node (scene/main/node.cpp:1789)
SCRIPT ERROR: Invalid access to property or key 'builder' on a base object of type 'null instance'.
          at: CyclopsBlock._process (res://addons/cyclops_level_builder/nodes/cyclops_block.gd:207)
WARNING: 1 RID of type "Canvas" was leaked.
     at: _free_rids (servers/rendering/renderer_canvas_cull.cpp:2483)
WARNING: 9 RIDs of type "CanvasItem" were leaked.
     at: _free_rids (servers/rendering/renderer_canvas_cull.cpp:2485)
ERROR: 1 shaders of type SceneForwardClusteredShaderRD were never freed
   at: ~ShaderRD (servers/rendering/renderer_rd/shader_rd.cpp:845)
ERROR: 1 RID allocations of type 'N10RendererRD12LightStorage11ShadowAtlasE' were leaked at exit.
ERROR: 1 RID allocations of type 'N10RendererRD15MaterialStorage8MaterialE' were leaked at exit.
ERROR: 1 RID allocations of type 'N10RendererRD15MaterialStorage6ShaderE' were leaked at exit.
ERROR: 1 RID allocations of type 'N10RendererRD14TextureStorage12RenderTargetE' were leaked at exit.
ERROR: 12 RID allocations of type 'N10RendererRD14TextureStorage7TextureE' were leaked at exit.
ERROR: 1 RID allocations of type 'N16RendererViewport8ViewportE' were leaked at exit.
WARNING: 1 RID of type "UniformBuffer" was leaked.
     at: _free_rids (servers/rendering/rendering_device.cpp:5601)
WARNING: 20 RIDs of type "Texture" were leaked.
     at: finalize (servers/rendering/rendering_device.cpp:5758)
ERROR: 72 RID allocations of type 'PN18TextServerAdvanced22ShapedTextDataAdvancedE' were leaked at exit.
ERROR: 1 RID allocations of type 'PN18TextServerAdvanced12FontAdvancedE' were leaked at exit.
WARNING: ObjectDB instances leaked at exit (run with --verbose for details).
     at: cleanup (core/object/object.cpp:2284)
ERROR: 6 resources still in use at exit (run with --verbose for details).
   at: clear (core/io/resource.cpp:604)
ERROR: Pages in use exist at exit in PagedAllocator: N7Variant5Pools11BucketSmallE
   at: ~PagedAllocator (./core/templates/paged_allocator.h:170)

Swivelgames avatar Oct 17 '24 06:10 Swivelgames

Unfortunately, the .cpp errors are hard to debug because they do not offer any clue as to what it is that is causing the error. I have fixed the triangulation error in a patch that I'm working on, but I've been working on it for months now and don't know when I'm going to be able to check it in.

My guess is that one of your blocks has no data in it. Try deleting all the CyclopsBlocks in the scene and then create a new cube using the bottom panel.

blackears avatar Oct 17 '24 19:10 blackears

Yeah, I hear you. The cpp errors are not very helpful...

Unfortunately, this issue is reproducible with a fresh project and a fresh CyclopsBlock.

I'm able to reproduce this consistently by reverting the project back to its pre-Cyclops state, running through the setup steps again, and adding an initial CyclopsBlock.

Even after adding additional blocks and using the Cyclops Editor to add additional block features, outside of the Cyclops editor, clicking doesn't work, and clicking-dragging crashes Godot.

I've been able to reproduce the issue in the following scenarios:

  • With a fresh Cyclops block
  • Without any Cyclops block
  • With intricate Cyclops blocks

It seems that Cyclops is taking over the built-in editor and conflicting with the click/visual-selection functionality.

I pulled down the repo and will continue to investigate! :heart:

Swivelgames avatar Oct 17 '24 21:10 Swivelgames

I'm not sure what to say since it works on my machine. Does the same thing happen in a blank project? Perhaps it's due to a name clash with something in another part of your project.

blackears avatar Oct 17 '24 23:10 blackears

Currently in the process of tracking it down. I've actually started knocking out a bunch of the cpp errors one by one! I've got Stand Up in a few minutes, so I can't give a full update, but I'll give a rundown of what I've done so far when I get the chance!

I'll also push up the project I'm working in to hopefully make it easier to reproduce, but we'll see! :sweat_smile:


In the meantime, here's a more refined set of reproduction steps:

  1. Open default scene in your project (without any Cyclops blocks)
  2. Create a fresh new Cyclops Block
  3. Select it in the node list
  4. Deselect it
  5. Attempt to visual select in the standard Viewport

Result: Godot crashes

Swivelgames avatar Oct 18 '24 14:10 Swivelgames

I just merged a branch I've been working on for a few months now. You might want to check out the latest dev version and see if it is causing the same issues.

blackears avatar Oct 18 '24 20:10 blackears

How are you selecting it? The CyclopsBlock should be unselectable by the regular Godot tool, and the Cyclops move tool will only be available if at least one CyclopsBlock is selected.

blackears avatar Oct 18 '24 20:10 blackears

Latest main branch is working much more smoothly! No more crashes, and Viewport visual selection of other objects works without crashing again. Though, the first Cyclops tool defaults to "on" by default and has to be manually deselected. But that's not a major gripe.

As for the CPP errors, they seem to be more frequent with the version in the main branch. I'll continue tracking them down with the latest from the main branch and see if I can push up a PR that resolves them. :tada:

Most of them just have to do with attempting to iterate on or call methods for empty arrays or null values. Which, on its surface doesn't necessarily harm anything, but definitely adds to the instability I was facing. I noticed that as I started knocking those errors out, stability started to improve :+1:


@blackears How are you selecting it?

  In the meantime, here's a more refined set of reproduction steps:
  
  1. Open default scene in your project (without any Cyclops blocks)
  2. Create a fresh new Cyclops Block
+ 3. Select it in the node list
  4. Deselect it
  5. Attempt to visual select anything in the standard Viewport

  Result: Godot crashes

@blackears The CyclopsBlock should be unselectable by the regular Godot tool

Yeah, that's kind of a bummer, but I imagine there's limitations! :sweat_smile:

Swivelgames avatar Oct 20 '24 23:10 Swivelgames

This continues to be the same problem I have tested it both on my mac and windows. It has the same issues.....

GwartneyDev avatar Dec 28 '24 00:12 GwartneyDev

Sorry for not getting back to this sooner - how are you deselecting the block? A mouse click while the move tool is still selected or selecting something else in the Scene list? And how are you selecting the next thing after that? I've played around with this for a while but cannot create any crashes.

blackears avatar Dec 28 '24 13:12 blackears

@blackears There are several ways of deselecting a block, including simply clicking the deadspace in the Node list. :+1:

Swivelgames avatar Dec 30 '24 22:12 Swivelgames

I don't get this error, no matter how I deselect the block. Anyhow, I've just merged a large branch I've been working on. Can you check out the head and let me know if it still causes this error?

blackears avatar Dec 31 '24 05:12 blackears