Mercerenies / gdlisp

Lisp on the Godot platform
GNU General Public License v3.0
141 stars 1 forks source link

Intermittent Networking Bug #44

Closed Mercerenies closed 2 years ago

Mercerenies commented 3 years ago

I have no idea how to debug this one, but I want to document it.

Intermittently, and very randomly, tests which interact with the Godot server fail. It happens very rarely, and not always with the same test, and I haven't found a pattern in how it happens. Re-running the test suite always fixes the problem.

Here's some recent output from one time I observed this today.

ERROR: start: Script does not inherit a Node: res://GDLisp.gd
   At: main/main.cpp:1777.
test test::import_test::private_macro_import_test ... ok
SCRIPT ERROR: pretty: Invalid get index 'Cons' (on base: 'Nil').
   At: res://main.gd:85.
test test::import_test::public_class_import_test_1 ... FAILED

It does seem to happen more frequently in tests that involve imports, though I believe I've observed it on others too. Will document more as I observe patterns.

Mercerenies commented 3 years ago

Another seemingly unrelated example that I suspect is actually related. It also disappeared after rerunning the tests.

ERROR: start: Script does not inherit a Node: res://GDLisp.gd
   At: main/main.cpp:1777.
test test::builtin_function_test::array_test ... ok
SCRIPT ERROR: exec: Invalid get index 'FreshNameGenerator' (on base: 'Nil').
   At: <built-in>:2.
SCRIPT ERROR: exec: Invalid call. Nonexistent function '_if' in base 'Nil'.
   At: <built-in>:2.
test test::builtin_function_test::return_test ... ok
SCRIPT ERROR: exec: Invalid get index 'FreshNameGenerator' (on base: 'Nil').
   At: <built-in>:2.
test test::class_test::bad_member_var_class_test_1 ... FAILED
Mercerenies commented 2 years ago

Several runs later, and I cannot reproduce this error. I'm thanking my lucky stars and finally calling this issue closed.