-
Notifications
You must be signed in to change notification settings - Fork 373
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
New profiler breaks libgit2 ssh transport #2721
Comments
Thanks a lot @tjk for the report. This definitely looks similar to the mysql2 issue another customer reported (see known issues in the release notes). You mentioned that
Please do let us know about you find out! I'll work to reproduce this as well... For now indeed the best solution is to not use the new profiler for this application. |
I was able to reproduce this easily -- thanks for the clear notes! It's indeed the same issue as called out in the release notes for the mysql2 gem. I can confirm the observation that the issue seems to be triggered in the ssh transport, and when cloning via http there seems to be no issue. It's unclear to me if the issue right now is in libssh2 (used by the ssh transport) or libgit2 (I don't think it comes from @tjk: Actually getting a fix in may take a while, since I'll need to report this to the Are you OK with not enabling the new profiler for this specific app while we work on this? Alternatively, I can look into exposing an API that could be used to wrap the I'll also make sure to document this and add the |
This is useful when testing if a specific bit of code is affected by sigprof signal delivery. I'm using it to test the issue reported in #2721. I think this helper is small enough/useful enough to keep around for later.
**What does this PR do?**: This PR adds the `rugged` gem to the list of gems that prevent the new CPU Profiling 2.0 profiler from being auto-enabled. This is needed because the `rugged` gem (more specifically, its C-level dependencies) do not correctly handle the unix signals that the new profiler uses. We plan to do more than just add this workaround, but until we do so, this change will prevent customers from being bitten by the issue. **Motivation**: Make sure that customers being moved to the new CPU Profiling 2.0 profiler have a smooth experience. **Additional Notes**: N/A **How to test the change?**: The snippet shared by the customer in <#2721> reproduces the issue for me every time. With this change, as expected, the issue no longer appears.
### What does this PR do? This PR extends the troubleshooting steps added in #17370 with a new known incompatiblity with the `rugged` gem. (Originally reported in DataDog/dd-trace-rb#2721 ) ### Motivation Document the known incompatibility.
…17552) * [PROF-7409] Document Ruby profiler incompatibility with rugged gem ### What does this PR do? This PR extends the troubleshooting steps added in #17370 with a new known incompatiblity with the `rugged` gem. (Originally reported in DataDog/dd-trace-rb#2721 ) ### Motivation Document the known incompatibility. * Update content/en/profiler/profiler_troubleshooting.md --------- Co-authored-by: cecilia saixue watt <[email protected]>
Update: I've reported the issue to the libssh2 developers and also asked the rugged developers if they'd be open to shipping a workaround built-into the gem. |
Looks like there's a PR to fix libssh2 ( libssh2/libssh2#1058 ), hopefully it will get accepted soon. |
EDIT: While disabling the new profiler seems to fix the issue, there might be an underlying problem related to different libssl due to different libssh2 that is just heightened with this feature on... will continue investigating and report back.
Current behaviour
Setting
profiling.advanced.force_enable_new_profiler
totrue
makes using rugged (libgit2) ssh transport break.Steps to reproduce
Make sure to compile rugged with :ssh feature, and the do the following:
You will see an error like
Failed to open SSH channel: Error waiting on socket (Rugged::SshError)
Environment
Datadog.configure ...
): see aboveThe text was updated successfully, but these errors were encountered: