Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crashes Godot when attempting Visual Selection #201

Open
Swivelgames opened this issue Oct 17, 2024 · 8 comments
Open

Crashes Godot when attempting Visual Selection #201

Swivelgames opened this issue Oct 17, 2024 · 8 comments

Comments

@Swivelgames
Copy link

Swivelgames commented Oct 17, 2024

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. 🤔

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
Copy link
Author

Swivelgames commented Oct 17, 2024

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)

@blackears
Copy link
Owner

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.

@Swivelgames
Copy link
Author

Swivelgames commented Oct 17, 2024

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! ❤️

@blackears
Copy link
Owner

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.

@Swivelgames
Copy link
Author

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! 😅


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

@blackears
Copy link
Owner

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
Copy link
Owner

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.

@Swivelgames
Copy link
Author

Swivelgames commented Oct 20, 2024

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. 🎉

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 👍


@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! 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants