CI Build Failure in ade on ros2-web-bridge via rclnodejs
Description
Job #481383602 failed for 199621bc:
This appears to be due to an update to rclnodejs
. We should pin rclnodejs
to version 0.10.3 (see https://github.com/RobotWebTools/rclnodejs/releases) to guarantee compatibility with Dashing.
How to Reproduce
Run a CI job where re-building the ade
image is necessary.
Current Behavior
Build fails on ade
step with the following error:
make: Leaving directory '/usr/lib/node_modules/ros2-web-bridge/node_modules/ref-napi/build'
> rclnodejs@0.13.0 install /usr/lib/node_modules/ros2-web-bridge/node_modules/rclnodejs
> node-gyp rebuild
make: Entering directory '/usr/lib/node_modules/ros2-web-bridge/node_modules/rclnodejs/build'
CXX(target) Release/obj.target/rclnodejs/src/addon.o
CXX(target) Release/obj.target/rclnodejs/src/executor.o
../src/executor.cpp: In member function ‘bool rclnodejs::Executor::WaitForReadyCallbacks(rcl_wait_set_t*, int32_t)’:
../src/executor.cpp:176:35: warning: ignoring return value of ‘rcl_ret_t rcl_wait_set_add_guard_condition(rcl_wait_set_t*, const rcl_guard_condition_t*, size_t*)’, declared with attribute warn_unused_result [-Wunused-result]
rcl_wait_set_add_guard_condition(wait_set, g_sigint_gc, nullptr);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CXX(target) Release/obj.target/rclnodejs/src/handle_manager.o
CXX(target) Release/obj.target/rclnodejs/src/rcl_bindings.o
../src/rcl_bindings.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE rclnodejs::Init(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/rcl_bindings.cpp:70:13: warning: unused variable ‘ret’ [-Wunused-variable]
rcl_ret_t ret = rcl_init_options_init(&init_options, allocator);
^~~
In file included from ../src/rcl_bindings.cpp:36:0:
../src/rcl_bindings.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE rclnodejs::GetParameterOverrides(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/rcl_bindings.cpp:123:19: error: ‘rcl_arguments_get_param_overrides’ was not declared in this scope
rcl_arguments_get_param_overrides(parsed_args, ¶ms),
^
../src/macros.hpp:20:16: note: in definition of macro ‘CHECK_OP_AND_THROW_ERROR_IF_NOT_TRUE’
if (lhs op rhs) { \
^~~
../src/rcl_bindings.cpp:121:3: note: in expansion of macro ‘THROW_ERROR_IF_NOT_EQUAL’
THROW_ERROR_IF_NOT_EQUAL(
^~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp:123:19: note: suggested alternative: ‘rcl_arguments_get_param_files’
rcl_arguments_get_param_overrides(parsed_args, ¶ms),
^
../src/macros.hpp:20:16: note: in definition of macro ‘CHECK_OP_AND_THROW_ERROR_IF_NOT_TRUE’
if (lhs op rhs) { \
^~~
../src/rcl_bindings.cpp:121:3: note: in expansion of macro ‘THROW_ERROR_IF_NOT_EQUAL’
THROW_ERROR_IF_NOT_EQUAL(
^~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp: In function ‘v8::Local<v8::Object> rclnodejs::wrapParameters(rcl_params_t*)’:
../src/rcl_bindings.cpp:167:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i=0; i < parsed_args->num_nodes; i++) {
~~^~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp:177:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int j=0; j < node_parameters.num_params; j++) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp:216:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k=0; k < value.bool_array_value->size; k++) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp:226:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k=0; k < value.string_array_value->size; k++) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp:236:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k=0; k < value.byte_array_value->size; k++) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp:245:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k=0; k < value.integer_array_value->size; k++) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp:254:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k=0; k < value.double_array_value->size; k++) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE rclnodejs::TriggerGuardCondition(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/rcl_bindings.cpp:326:13: warning: unused variable ‘ret’ [-Wunused-variable]
rcl_ret_t ret = rcl_trigger_guard_condition(gc);
^~~
../src/rcl_bindings.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE rclnodejs::Log(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/rcl_bindings.cpp:1376:75: warning: format not a string literal and no format arguments [-Wformat-security]
rcutils_log(&logging_location, severity, name.c_str(), message.c_str());
^
../src/rcl_bindings.cpp: In function ‘void rclnodejs::ExtractNamesAndTypes(rcl_names_and_types_t, v8::Local<v8::Array>*)’:
../src/rcl_bindings.cpp:1412:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < names_and_types.names.size; ++i) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp:1420:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int j = 0; j < names_and_types.types[i].size; ++j) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE rclnodejs::GetNodeNames(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/rcl_bindings.cpp:1589:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < node_names.size; ++i) {
~~^~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE rclnodejs::Init(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/rcl_bindings.cpp:108:27: warning: ignoring return value of ‘rcl_ret_t rcl_guard_condition_init(rcl_guard_condition_t*, rcl_context_t*, rcl_guard_condition_options_t)’, declared with attribute warn_unused_result [-Wunused-result]
rcl_guard_condition_init(g_sigint_gc, context, sigint_gc_options);
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/rcl_bindings.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE rclnodejs::Shutdown(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/rcl_bindings.cpp:1251:29: warning: ignoring return value of ‘rcl_ret_t rcl_guard_condition_fini(rcl_guard_condition_t*)’, declared with attribute warn_unused_result [-Wunused-result]
rcl_guard_condition_fini(g_sigint_gc);
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
rclnodejs.target.mk:126: recipe for target 'Release/obj.target/rclnodejs/src/rcl_bindings.o' failed
make: *** [Release/obj.target/rclnodejs/src/rcl_bindings.o] Error 1
make: Leaving directory '/usr/lib/node_modules/ros2-web-bridge/node_modules/rclnodejs/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:191:23)
gyp ERR! stack at ChildProcess.emit (events.js:198:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Linux 4.19.78-coreos
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/lib/node_modules/ros2-web-bridge/node_modules/rclnodejs
gyp ERR! node -v v10.19.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! rclnodejs@0.13.0 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the rclnodejs@0.13.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-03-23T13_52_43_818Z-debug.log
The command '/bin/sh -c . /opt/ros/dashing/setup.sh && npm install -g --unsafe $(cut -d# -f1 </tmp/npm-packages) && rm -rf /tmp/npm-packages' returned a non-zero code: 1
Expected behavior
Creation of the ade
image should complete successfully.