-
Notifications
You must be signed in to change notification settings - Fork 41
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
Fails to install with official node 12 docker image #62
Comments
@daveisfera Thanks for the heads up and good catch! It looks like the official docker images don't have python installed and gyp needs python. The reason this works in node versions < 11 is we fall back to pre-built binaries when we can't compile the native metrics module. Once we have formal support for 11/12 (which is coming, pinkie swear) we'll have a pre-built binaries for these newer node versions. Thank you for bringing this to our attention. |
Any ETA on when this will be available? |
@daveisfera We can't comment officially about dates here for -- reasons. I can say it's on our roadmap and Node 11/12 support (including native metrics) is near the top of our priority list. If you need an official answer out of New Relic our official support channels are probably your best bet: https://support.newrelic.com/ |
with the official node:12.10.0-stretch (not alpine), the build fails anyway with:
|
Getting a similar error with Circle CI's node 12 image using the new 5.0.0 release:
Using |
Hey all -- in the interest of transparency, we're mid-stream on our Node 12 work. We have a new published version of the native metrics module that should build with Node 12. We do not, however, have our pre-built binaries in place yet which means if the build does fail (like @AndrewLeedham's did) then there's nothing to fall back on. We're working on getting those binaries in place, but for now if you see a build issue please let us know about it so we can determine if the problem's in our code or something else. @AndrewLeedham -- looking over the build output
This seems like it might be a problem related to the version of |
Hi @astormnewrelic thanks for getting back to me. Yes you are right it was an issue with a node-gyp dependency. Adding a resolution for tar |
Closing this issue out as we now have pre-built binaries to fall-back on and haven't found any issues with compilation that are not dependency related. Feel free to re-open or open a new issue if other problems come up. |
I just did an
|
Also, it won't allow me to re-open the issue |
@daveisfera I'll look into those package.json messages at the end... not sure why we are getting those. Have you verified it is indeed not working? The message I'll go ahead and re-open so we can take a look. |
I had run
You can also reproduce this by running |
OK, we'll def take a look. If you have time, can you verify the native metrics aren't getting collected? Since the pre-built install might be successful given message prior to the package.json warnings I'm curious if this still end sup being mostly superficial. If not, we'll try to get to it soon. |
We don't run |
@daveisfera to confirm, were you running this inside the root of an initialized application? Or perhaps in an empty folder? We can't repro the We clearly have some work to see if we can make the successful fallback more obvious in the output. But here's a description of what we are seeing in the output and confirmed for that last message...
We've double-checked with Hopefully, this is just the case of the output being a little confusing. |
Hi, Since we haven't heard of any ongoing issues and this has been sitting a while, going to close it out. Feel free to reach out if you have further issues. Thanks! Michael |
I do confirm that this issue is still opened (with node 12 at least) [2020-03-31T18:10:33.405Z] ERROR [15183] : Command execution failed: Activity failed. (ElasticBeanstalk::ActivityFatalError)
|
I am also facing this same issue. My docker build is successful but I am getting this same error. Any updates or suggestion on this issue. |
@sunilkrishnatry The error output is expected. This is NPM logging that it couldn't manually build the native metrics module (which is a Node NAN/C++ base modules) and needed to fall back to downloading the pre-built binary. The native metrics module should still be a part of your system, and you should be getting the VM Page statistics it enables. If we've misunderstood your question and your native metrics module is malfunctioning or the warnings displayed by NPM are somehow blocking you, your best best is to route this through New Relic's support channels: https://support.newrelic.com/ |
It was annoying for me as well! I am trying to install I did a lot of research on it, and here is what I found. Three different errorsI saw a bunch of tickets like newrelic/node-newrelic#279 and this one, complaining about errors during installing The first error in the first post of this thread is The other error is in @maxgalbu's post, resulting in The third one, which is a warning that I am getting on > /usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js clean configure
> /usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build -j 1 native_metrics
make: Entering directory '/usr/src/app/node_modules/@newrelic/native-metrics/build'
CXX(target) Release/obj.target/native_metrics/src/native_metrics.o
In file included from ../src/native_metrics.cpp:7:
../../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../../nan/nan.h:2294:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
2294 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
| ^
In file included from ../../../nan/nan.h:56,
from ../src/native_metrics.cpp:7:
../src/native_metrics.cpp: At global scope:
/root/.cache/node-gyp/14.8.0/include/node/node.h:746:43: warning: cast between incompatible function types from 'void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)' {aka 'void (*)(v8::Local<v8::Object>)'} to 'node::addon_register_func' {aka 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)'} [-Wcast-function-type]
746 | (node::addon_register_func) (regfunc), \
| ^
/root/.cache/node-gyp/14.8.0/include/node/node.h:780:3: note: in expansion of macro 'NODE_MODULE_X'
780 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
| ^~~~~~~~~~~~~
../src/native_metrics.cpp:22:1: note: in expansion of macro 'NODE_MODULE'
22 | NODE_MODULE(native_metrics, Init)
| ^~~~~~~~~~~
CXX(target) Release/obj.target/native_metrics/src/GCBinder.o
In file included from ../src/GCBinder.hpp:9,
from ../src/GCBinder.cpp:7:
../../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../../nan/nan.h:2294:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
2294 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
| ^
CXX(target) Release/obj.target/native_metrics/src/LoopChecker.o
In file included from ../src/LoopChecker.hpp:8,
from ../src/LoopChecker.cpp:10:
../../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../../nan/nan.h:2294:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
2294 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
| ^
CXX(target) Release/obj.target/native_metrics/src/RUsageMeter.o
In file included from ../src/RUsageMeter.cpp:8:
../../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../../nan/nan.h:2294:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
2294 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
| ^
SOLINK_MODULE(target) Release/obj.target/native_metrics.node
COPY Release/native_metrics.node
make: Leaving directory '/usr/src/app/node_modules/@newrelic/native-metrics/build'
install successful: _newrelic_native_metrics-5_3_0-native_metrics-83-linux-x64 (Note that there is a line of Fixing Python Not Found ErrorWell, Alpine is so minimal that it doesn't come with python. You can simply add Where do nan error/warnings come from?The reason it's not happening for everyone is:
Solutions:On problem #2 and #3, depending on whether the last line is For the
For the
Hope it helps! |
💥 Thanks the deep dive @eyedean -- that's great troubleshooting and great information. Assuming it doesn't cause problems on any of our supported platforms we'd be super-open to a PR that added the @eyedean Regarding getting |
See nodejs/nan#807 for the `nan` issue, and newrelic#62 (comment) for detailed conversation. Inspired by https:/DataDog/dd-trace-js/pull/943/files
Thanks for your response @astormnewrelic. I am glad that it helped! :) I created this PR: #112, but wasn't very successful in building and testing in inside docker containers (I don't have a linux machine around). Left notes at #112 (comment). I hope it still helps. Regarding Thanks. |
I had to |
I feel like the bad guy that is constantly coming in and closing this issue and... here I am once again. Some incremental improvement was landed above. Overall, this is an environment compilation issue we aren't currently planning on trying to improve with our priorities. Thank you to everyone for adding your solution notes to the issue. If some specific documentation would be helpful, let us know. |
Works with node 10:
But fails with node 12:
Originally from node 12 support in the newrelic module
The text was updated successfully, but these errors were encountered: