Closed dnascimb closed 3 years ago
The same error on node:14.16.0-alpine3.13
but node:14.16.0-alpine3.12
works
********************************************************************************
Appmetrics uses node-gyp to compile and build local binary libraries to enhance execution performance. If the following compilation and build logs contain errors, make sure you have the node-gyp pre-requisites installed (https://github.com/nodejs/node-gyp#installation). If you have them and the build still had errors, see if there are any related issues at https://github.com/RuntimeTools/appmetrics/issues). If there aren't, feel free to open a new issue to report the bug.
********************************************************************************
make: Entering directory '/app/node_modules/appmetrics/build'
ACTION binding_gyp_appmetrics_target_Set_appmetrics_reported_version_build_level Release/obj.target/appmetrics/geni/appmetrics.cpp
infile: ./src/appmetrics.cpp
outfile: /app/node_modules/appmetrics/build/Release/obj.target/appmetrics/geni/appmetrics.cpp
Replacing '"99\.99\.99\.29991231"' with '"5.1.1.202103292235"'
CXX(target) Release/obj.target/appmetrics/geni/appmetrics.o
In file included from Release/obj.target/appmetrics/geni/appmetrics.cpp:25:
../src/plugins/node/prof/watchdog.h: In function 'const char* watchdog::StartCpuProfiling(v8::Isolate*, uint64_t)':
../src/plugins/node/prof/watchdog.h:251:6: error: 'struct sigevent' has no member named '_sigev_un'
251 | ev._sigev_un._tid = profiler_tid;
| ^~~~~~~~~
../src/plugins/node/prof/watchdog.h: In function 'void watchdog::Initialize(v8::Isolate*, v8::Local<v8::Object>)':
../src/plugins/node/prof/watchdog.h:305:3: error: no matching function for call to 'v8::Object::Set(v8::Local<v8::String>, v8::Local<v8::Function>)'
305 | );
| ^
In file included from /root/.cache/node-gyp/14.16.0/include/node/node.h:67,
from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.cache/node-gyp/14.16.0/include/node/v8.h:3670:37: note: candidate: 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)'
3670 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
| ^~~
/root/.cache/node-gyp/14.16.0/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided
/root/.cache/node-gyp/14.16.0/include/node/v8.h:3673:37: note: candidate: 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)'
3673 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
| ^~~
/root/.cache/node-gyp/14.16.0/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided
Release/obj.target/appmetrics/geni/appmetrics.cpp: In function 'void emitMessage(uv_async_t*, int)':
Release/obj.target/appmetrics/geni/appmetrics.cpp:424:44: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
424 | listener->callback->Call(argc, argv);
| ^
In file included from Release/obj.target/appmetrics/geni/appmetrics.cpp:22:
../../nan/nan.h:1742:3: note: declared here
1742 | Call(int argc, v8::Local<v8::Value> argv[]) const {
| ^~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp: In function 'void lrtime(const Nan::FunctionCallbackInfo<v8::Value>&)':
Release/obj.target/appmetrics/geni/appmetrics.cpp:593:64: warning: ignoring return value of 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)', declared with attribute 'warn_unused_result' [-Wunused-result]
593 | result->Set(context, 0, v8::Number::New(isolate, ts.tv_sec));
| ^
In file included from /root/.cache/node-gyp/14.16.0/include/node/node.h:67,
from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.cache/node-gyp/14.16.0/include/node/v8.h:3673:37: note: declared here
3673 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
| ^~~
Release/obj.target/appmetrics/geni/appmetrics.cpp:594:78: warning: ignoring return value of 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)', declared with attribute 'warn_unused_result' [-Wunused-result]
594 | result->Set(context, 1, v8::Integer::NewFromUnsigned(isolate, ts.tv_nsec));
| ^
In file included from /root/.cache/node-gyp/14.16.0/include/node/node.h:67,
from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.cache/node-gyp/14.16.0/include/node/v8.h:3673:37: note: declared here
3673 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
| ^~~
Release/obj.target/appmetrics/geni/appmetrics.cpp: In function 'void init(v8::Local<v8::Object>, v8::Local<v8::Object>)':
Release/obj.target/appmetrics/geni/appmetrics.cpp:713:52: warning: cast between incompatible function types from 'void (*)(uv_async_t*, int)' {aka 'void (*)(uv_async_s*, int)'} to 'uv_async_cb' {aka 'void (*)(uv_async_s*)'} [-Wcast-function-type]
713 | uv_async_init(uv_default_loop(), messageAsync, (uv_async_cb)emitMessage);
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
Release/obj.target/appmetrics/geni/appmetrics.cpp: At global scope:
/root/.cache/node-gyp/14.16.0/include/node/node.h:758:7: warning: cast between incompatible function types from 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Object>)' to 'node::addon_register_func' {aka 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)'} [-Wcast-function-type]
758 | (node::addon_register_func) (regfunc), \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/14.16.0/include/node/node.h:792:3: note: in expansion of macro 'NODE_MODULE_X'
792 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
| ^~~~~~~~~~~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp:768:1: note: in expansion of macro 'NODE_MODULE'
768 | NODE_MODULE(appmetrics, init)
| ^~~~~~~~~~~
make: Leaving directory '/app/node_modules/appmetrics/build'
make: *** [Makefile:282: Release/obj.target/appmetrics/geni/appmetrics.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:315:20)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
gyp ERR! System Linux 4.19.121-linuxkit
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /app/node_modules/appmetrics
gyp ERR! node -v v14.16.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! appmetrics@5.1.1 install: `node showBuildInfo.js && node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the appmetrics@5.1.1 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
The same error on
node:14.16.0-alpine3.13
butnode:14.16.0-alpine3.12
works
I was able to verify this. Thanks for responding.
Closing issue since a workaround of using node:14.16.0-alpine3.12
seems to be sufficient.
This issue occurs with the latest version (v5.1.1) of appmetrics and the public node:14-alpine3.13 docker image. I verified that this works with the node:12.20-alpine image.