Your data. Anywhere you go.

New Relic for iOS or Android


Download on the App Store    Android App on Google play


New Relic Insights App for iOS


Download on the App Store


Learn more

Close icon

New Relic Thread profiler won't start on rails app


#1

Hi,

I’m trying to profile a rails app here: https://rpm.newrelic.com/accounts/1009232/applications/127348941/profiles. It’s been stuck for over an hour now.

I’ve tried to profile rails instances on a few different servers with the same results. They are production servers so they should be serving traffic right now.

Is there anything else I can do to start the profiling?

For what it’s worth, I accidentally profiled our Phusion Passenger instance earlier on a different server which did work but did not yield any useful information.


#2

@max.short Thanks for your post. Are you still having an issue?

I noticed a couple profiles were run the same day as your post. One appears to have run for 5 minutes and the other for 10 minutes. Is this the server that did not show the level of detail you expect?

Typically, sparse profiles indicate a low level of throughput to the app. However, it does appear that the host that was selected was handling a decent level of throughput.

Are you still seeing the behavior?


#3

Hi @hakimu,

Yes, still having the issue. When I profile our web server processes the profiler works but does not produce useful information. Those are the 5 and 10 minute profiles from that day.

We saw a somewhat similar issue when we were using an open source profiler, rbtrace. In that case the issue was that our web server, Phusion Passenger, was blocking the OS signal handlers that would allow for profiling our process. I wonder if something similar is happening here.

Here’s what I found for rbtrace: https://github.com/tmm1/rbtrace/issues/9.


#4

@max.short Thanks for following up with us. I’ve been working with our engineering team regarding what you’ve noticed. Unfortunately, we’ve uncovered an issue where the Thread Profiler doesn’t work as expected for a process that is being served by Phusion Passenger.

Essentially, when you make the selection in the UI to run the profiler, a signal is sent to the agent installed on your app. For whatever reason, the signal is consistently being sent to an idle Phusion Passenger process.

Our engineers will need to look more into why this is happening. Unfortunately, at this point, I’m not able to offer a workaround.


#5

@hakimu Thanks for the update.

I was able to get rbtrace working using the solution in the issue I linked to above by requiring rbtrace after Passenger forked. I wonder if a similar workaround is needed here.


#6

@max.short Thanks for following up to let us know about requiring rbtrace after Passenger forks. I’ve passed that info along to our engineers.