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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Thread deadlock in the NodeJS loader #499

Closed
devraymondsh opened this issue May 13, 2024 · 1 comment
Closed

Thread deadlock in the NodeJS loader #499

devraymondsh opened this issue May 13, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@devraymondsh
Copy link
Member

馃悰 Bug Report

Thread deadlock in the NodeJS loader

Run the test to replicate the issue:

ctest -VV -R metacall-node-multithread-deadlock-test

Output:

UpdateCTestConfiguration  from :/home/raymond/projects/core/build/DartConfiguration.tcl
Parse Config file:/home/raymond/projects/core/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :/home/raymond/projects/core/build/DartConfiguration.tcl
Parse Config file:/home/raymond/projects/core/build/DartConfiguration.tcl
Test project /home/raymond/projects/core/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 27
    Start 27: metacall-node-multithread-deadlock-test

27: Test command: /home/raymond/projects/core/build/metacall-node-multithread-deadlock-testd
27: Working Directory: /home/raymond/projects/core/build/source/tests/metacall_node_multithread_deadlock_test
27: Environment variables:
27:  LOADER_LIBRARY_PATH=/home/raymond/projects/core/build
27:  LOADER_SCRIPT_PATH=/home/raymond/projects/core/build/scripts
27:  CONFIGURATION_PATH=/home/raymond/projects/core/build/configurations/global.json
27:  SERIAL_LIBRARY_PATH=/home/raymond/projects/core/build
27:  DETOUR_LIBRARY_PATH=/home/raymond/projects/core/build
27:  PORT_LIBRARY_PATH=/home/raymond/projects/core/build
27: Test timeout computed to be: 1500
27: [==========] Running 1 test from 1 test suite.
27: [----------] Global test environment set-up.
27: [----------] 1 test from metacall_node_multithread_deadlock_test
27: [ RUN      ] metacall_node_multithread_deadlock_test.DefaultConstructor
27: Debug: MetaCall default logger to stdout initialized
27: Debug: Initializing MetaCall
27: Debug: Global configuration loaded from /home/raymond/projects/core/build/configurations/global.json
27: Debug: Loading plugin: rapid_json_seriald
27: Debug: Loading plugin symbol: dynlink_symbol_rapid_json_serial_impl_interface_singleton
27: Debug: Set MetaCall log level to Debug
27: Debug: Loader script path: /home/raymond/projects/core/build/scripts/
27: Debug: Loading plugin: ext_loaderd
27: Debug: Loading plugin symbol: dynlink_symbol_ext_loader_impl_interface_singleton
27: Debug: Loading plugin: /home/raymond/projects/core/build/plugins/backtrace_plugin/metacall.json
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:53: Failure
27: Expected: ((void *)__null) != ((void *)future), actual: NULL vs NULL
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:55: Failure
27: Expected equality of these values:
27:   (enum metacall_value_id)metacall_value_id(future)
27:     Which is: 20
27:   (enum metacall_value_id)METACALL_FUTURE
27:     Which is: 12
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:53: Failure
27: Expected: ((void *)__null) != ((void *)future), actual: NULL vs NULL
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:55: Failure
27: Expected equality of these values:
27:   (enum metacall_value_id)metacall_value_id(future)
27:     Which is: 20
27:   (enum metacall_value_id)METACALL_FUTURE
27:     Which is: 12
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:53: Failure
27: Expected: ((void *)__null) != ((void *)future), actual: NULL vs NULL
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:53: Failure
27: Expected: ((void *)__null) != ((void *)future), actual: NULL vs NULL
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:53: Failure
27: Expected: ((void *)__null) != ((void *)future), actual: NULL vs NULL
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:55: Failure
27: Expected equality of these values:
27:   (enum metacall_value_id)metacall_value_id(future)
27:     Which is: 20
27:   (enum metacall_value_id)METACALL_FUTURE
27:     Which is: 12
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:55: Failure
27: Expected equality of these values:
27:   (enum metacall_value_id)metacall_value_id(future)
27:     Which is: 20
27:   (enum metacall_value_id)METACALL_FUTURE
27:     Which is: 12
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:55: Failure
27: Expected equality of these values:
27:   (enum metacall_value_id)metacall_value_id(future)
27:     Which is: 20
27:   (enum metacall_value_id)METACALL_FUTURE
27:     Which is: 12
27:
27: metacall-node-multithread-deadlock-testd: /home/raymond/projects/core/source/metacall/source/metacall_value.c:317: metacall_value_to_future: Assertion `value_type_id(v) == TYPE_FUTURE' failed.
27: metacall-node-multithread-deadlock-testd: /home/raymond/projects/core/source/metacall/source/metacall_value.c:317: metacall_value_to_future: Assertion `value_type_id(v) == TYPE_FUTURE' failed.
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:53: Failure
27: Expected: ((void *)__null) != ((void *)future), actual: NULL vs NULL
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:53: Failure
27: Expected: ((void *)__null) != ((void *)future), actual: NULL vs NULL
27:
27: /home/raymond/projects/core/source/tests/metacall_node_multithread_deadlock_test/source/metacall_node_multithread_deadlock_test.cpp:55: Failure
27: Expected equality of these values:
27:   (enum metacall_value_id)metacall_value_id(future)
27:     Which is: 20
27:   (enum metacall_value_id)METACALL_FUTURE
27:     Which is: 12
27:
1/1 Test #27: metacall-node-multithread-deadlock-test ...Subprocess aborted***Exception:   0.19 sec

0% tests passed, 1 tests failed out of 1

Label Time Summary:
metacall-node-multithread-deadlock-test    =   0.19 sec*proc (1 test)

Total Test time (real) =   0.19 sec

The following tests FAILED:
	 27 - metacall-node-multithread-deadlock-test (Subprocess aborted)
Errors while running CTest
Output from these tests are in: /home/raymond/projects/core/build/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
@viferga
Copy link
Member

viferga commented May 17, 2024

This is partially solved, it needs to be properly refactored and extended to all the loader implementation.. but the workaround is done: #502

@viferga viferga closed this as completed May 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants