]> git.puffer.fish Git - mirror/frr.git/commitdiff
doc: document LD_PRELOAD workaround for lttng 8076/head
authorQuentin Young <qlyoung@nvidia.com>
Fri, 12 Feb 2021 23:14:53 +0000 (18:14 -0500)
committerQuentin Young <qlyoung@nvidia.com>
Fri, 12 Feb 2021 23:14:53 +0000 (18:14 -0500)
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
doc/developer/tracing.rst

index d54f6c7aaa8c9144ad8b05cd4f3ab07f66f1fc15..c194ae12707b087b17e3c9ff1ddcdd17d5a51d31 100644 (file)
@@ -308,6 +308,31 @@ Limitations
 Tracers do not like ``fork()`` or ``dlopen()``. LTTng has some workarounds for
 this involving interceptor libraries using ``LD_PRELOAD``.
 
+If you're running FRR in a typical daemonizing way (``-d`` to the daemons)
+you'll need to run the daemons like so:
+
+.. code-block:: shell
+
+   LD_PRELOAD=liblttng-ust-fork.so <daemon>
+
+
+If you're using systemd this you can accomplish this for all daemons by
+modifying ``frr.service`` like so:
+
+.. code-block:: diff
+
+   --- a/frr.service
+   +++ b/frr.service
+   @@ -7,6 +7,7 @@ Before=network.target
+    OnFailure=heartbeat-failed@%n.service
+
+    [Service]
+   +Environment="LD_PRELOAD=liblttng-ust-fork.so"
+    Nice=-5
+    Type=forking
+    NotifyAccess=all
+
+
 USDT tracepoints are relatively high overhead and probably shouldn't be used
 for "flight recorder" functionality, i.e. enabling and passively recording all
 events for monitoring purposes. It's generally okay to use LTTng like this,