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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Linux] Eager assembly load of managed profiler code #469

Merged
merged 6 commits into from
Aug 29, 2019

Conversation

zacharycmontoya
Copy link
Contributor

@zacharycmontoya zacharycmontoya commented Aug 13, 2019

The main mechanism for loading the managed profiler code was introduced in #462 (commit 4ce932f).

This PR turns on the feature for Linux. The main components are embedding the resources into the shared library, retrieving the embedded resources in the native profiler, and adding the correct PInvoke from the injected assembly load.

@DataDog/apm-dotnet

… we need to add the directory of the native profiler to the environment variable LD_LIBRARY_PATH.
@zacharycmontoya zacharycmontoya added the status:work-in-progress Actively worked on. If this is a PR, no review needed yet. WIP. label Aug 13, 2019
@zacharycmontoya zacharycmontoya self-assigned this Aug 13, 2019
@zacharycmontoya zacharycmontoya force-pushed the zach/unix/eager-profiler-load branch from b194e7d to 15e3359 Compare August 13, 2019 16:19
On Linux, BIT64 is always defined (previous behavior).

In the native profiler for Linux, get the path for the PInvoke by checking the platform-specific profiler path environment variable and falling back to the general environment variable if the first is undefined.
@lucaspimentel lucaspimentel added this to the 1.6.2 milestone Aug 14, 2019
@lucaspimentel lucaspimentel added area:native-library Automatic instrumentation native C++ code (Datadog.Trace.ClrProfiler.Native) os:linux labels Aug 14, 2019
@colin-higgins colin-higgins changed the base branch from develop to master August 14, 2019 15:07
@zacharycmontoya zacharycmontoya removed the status:work-in-progress Actively worked on. If this is a PR, no review needed yet. WIP. label Aug 14, 2019
@zacharycmontoya zacharycmontoya marked this pull request as ready for review August 14, 2019 15:18
@zacharycmontoya zacharycmontoya requested a review from a team as a code owner August 14, 2019 15:18
@zacharycmontoya
Copy link
Contributor Author

Tests are clean except for the Linux run of the StackExchangeRedisStackOverflowExceptionSmokeTest. Can you confirm if this fails on other PR's too or is it just mine?

@zacharycmontoya
Copy link
Contributor Author

Tests pass minus the Linux StackExchange SmokeTest 😄

@lucaspimentel lucaspimentel modified the milestones: 1.6.2, 1.6.3 Aug 20, 2019
@zacharycmontoya
Copy link
Contributor Author

Do you guys have any other feedback on this PR? The integration tests are passing so the Linux port is working correctly.

@zacharycmontoya zacharycmontoya merged commit 2be4161 into master Aug 29, 2019
@zacharycmontoya zacharycmontoya deleted the zach/unix/eager-profiler-load branch August 29, 2019 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:native-library Automatic instrumentation native C++ code (Datadog.Trace.ClrProfiler.Native) os:linux
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants