Skip to content

Commit f7ae707

Browse files
committed
[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.
1 parent 596c312 commit f7ae707

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

content/en/profiler/profiler_troubleshooting.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,9 @@ Starting from `dd-trace-rb` 1.11.0, the "CPU Profiling 2.0" profiler gathers dat
240240
Sending `SIGPROF` is a common profiling approach, and may cause system calls from native extensions/libraries to be interrupted with a system [`EINTR` error code][8].
241241
Rarely, native extensions or libraries called by them may have missing or incorrect error handling for the `EINTR` error code.
242242

243-
One known instance of this issue is when using the `mysql2` gem together with versions of libmysqlclient [older than 8.0.0][9]. The affected libmysqlclient version is known to be present on Ubuntu 18.04, but not 20.04 and later releases. For this case, the profiler auto-detects when the `mysql2` gem is in use and auto-applies the solution described below.
243+
There are a few known instances of this issue. For these gems, the auto-detects the incompatibility and automatically applies the workaround documented below:
244+
* Using the `mysql2` gem together with versions of libmysqlclient [older than 8.0.0][9]. The affected libmysqlclient version is known to be present on Ubuntu 18.04, but not 20.04 and later releases.
245+
* [Using the `rugged` gem.][10]
244246

245247
If you encounter run-time failures or errors from Ruby gems that use native extensions, you can revert back to the legacy profiler which does not use `SIGPROF` signals. To revert to the legacy profiler, set the `DD_PROFILING_FORCE_ENABLE_LEGACY` environment variable to `true`, or in code:
246248

@@ -262,6 +264,7 @@ Doing this enables Datadog to add them to the auto-detection list, and to work w
262264
[7]: https://github.com/DataDog/dd-trace-rb/issues/1799
263265
[8]: https://man7.org/linux/man-pages/man7/signal.7.html#:~:text=Interruption%20of%20system%20calls%20and%20library%20functions%20by%20signal%20handlers
264266
[9]: https://bugs.mysql.com/bug.php?id=83109
267+
[10]: https://github.com/DataDog/dd-trace-rb/issues/2721
265268
{{< /programming-lang >}}
266269
{{< programming-lang lang="dotnet" >}}
267270

0 commit comments

Comments
 (0)