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

Signal 'tree_exiting' is already connected to given callable 'Joint2D::_body_exit_tree' in that object. Error on project start. #90408

Closed
chrisl8 opened this issue Apr 8, 2024 · 2 comments · Fixed by #91936

Comments

@chrisl8
Copy link
Contributor

chrisl8 commented Apr 8, 2024

Tested versions

  • Reproducible in: v4.3.dev.custom_build [9d6bdbc]
  • Not Reproducible in: 4.2.1 Stable

System information

Godot v4.3.dev (9d6bdbc) - Windows 10.0.22621 - GLES3 (Compatibility) - NVIDIA GeForce RTX 3080 Ti (NVIDIA; 31.0.15.5186) - AMD Ryzen 9 5900X 12-Core Processor (24 Threads)

Issue description

Upon running the Physics-Based Platformer 2D Demo project Godot throws this error every time:

ERROR: Signal 'tree_exiting' is already connected to given callable 'Joint2D::_body_exit_tree' in that object.
   at: (core\object\object.cpp:1413)
ERROR: Signal 'tree_exiting' is already connected to given callable 'Joint2D::_body_exit_tree' in that object.
   at: (core\object\object.cpp:1413)
ERROR: Signal 'tree_exiting' is already connected to given callable 'Joint2D::_body_exit_tree' in that object.
   at: (core\object\object.cpp:1413)
ERROR: Signal 'tree_exiting' is already connected to given callable 'Joint2D::_body_exit_tree' in that object.
   at: (core\object\object.cpp:1413)

This error does not appear with 4.2.1 Stable version.

Steps to reproduce

Run the Physics-Based Platformer 2D Demo project and view the Output or console log.

Minimal reproduction project (MRP)

Use the Physics-Based Platformer 2D Demo project.

Bisect Results

63bff87 is the first bad commit
commit 63bff87
Author: @KoBeWi
Date: Sun Apr 7 12:21:40 2024 +0200

Fix PinJoint2D deferred call error

scene/2d/physics/joints/joint_2d.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

That is #90340

That PR was a fix for Issue #90107 so it seems perhaps one error was traded for another?

Or possibly the Demo itself has a problem, but again this error does not occur with 4.2.1 Stable, so if it is an error it is due to a change in 4.3 that is either breaking or bringing an old problem to light.

@KoBeWi
Copy link
Member

KoBeWi commented Apr 9, 2024

Fun fact: the original regression (#90107) came from #67713
#86301 only made the deferred call print an error. Which means that it was broken for a long time and no one noticed. Which also means the current behavior is what would have happened if #67713 was done "correctly".

Makes me wonder if we shouldn't just remove the deferred call. It was broken for two years and apparently didn't cause visible problems?

@jsjtxietian
Copy link
Contributor

jsjtxietian commented May 14, 2024

Makes me wonder if we shouldn't just remove the deferred call. It was broken for two years and apparently didn't cause visible problems?

Or I guess we could add some protection when connect signal to body like #91936 ?

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

Successfully merging a pull request may close this issue.

4 participants