LTTng bugs repository: Issueshttps://bugs.lttng.org/https://bugs.lttng.org/themes/lttng/favicon/a.ico?14249722912023-07-12T14:04:04ZLTTng bugs repository
Redmine Babeltrace - Bug #1382 (Resolved): stable-2.0 branch fails to buildhttps://bugs.lttng.org/issues/13822023-07-12T14:04:04ZMathieu Desnoyersmathieu.desnoyers@efficios.com
<p>stable-2.0 branch at commit 375847ee0df2f fails to build on my debian laptop:</p>
<pre>
make[2]: Entering directory '/home/compudj/git/babeltrace/src/ctf-writer'
CC trace.lo
In file included from object-pool.h:54,
from clock-class.h:29,
from trace.c:43:
In function 'bt_ctf_object_set_parent',
inlined from 'bt_ctf_object_set_parent' at object.h:120:6,
inlined from 'bt_ctf_trace_common_add_stream_class' at trace.c:1243:3:
object.h:141:26: error: null pointer dereference [-Werror=null-dereference]
141 | if (child->parent) {
| ~~~~~^~~~~~~~
object.h:141:26: error: null pointer dereference [-Werror=null-dereference]
</pre>
<p>with gcc version 12.2.0 (Debian 12.2.0-14)</p> LTTng-tools - Bug #1377 (Resolved): tests/regression/kernel/test_callstack fails with gcc 13https://bugs.lttng.org/issues/13772023-05-25T22:35:00ZRichard Purdie
<p>When Yocto Project tests upgrading to gcc 13, we see a ptest failure in lttng-tools (2.13.9) in tests/regression/kernel/test_callstack (6.1 kernel). The log of the failing test:</p>
1..22
<ol>
<li>Kernel tracer - Callstack context<br />ok 1 - Start session daemon<br />PASS: kernel/test_callstack 1 - Start session daemon</li>
<li>Userspace callstack test<br />ok 2 - Create session callstack in -o /tmp/tmp.test_user_callstack_trace_path.1DdyIt<br />PASS: kernel/test_callstack 2 - Create session callstack in -o /tmp/tmp.test_user_callstack_trace_path.1DdyIt<br />ok 3 - Enable channel chan0 for session callstack<br />PASS: kernel/test_callstack 3 - Enable channel chan0 for session callstack<br />ok 4 - Enable kernel syscall gettid for session callstack on channel chan0<br />PASS: kernel/test_callstack 4 - Enable kernel syscall gettid for session callstack on channel chan0<br />ok 5 - Add context command for type: callstack-user<br />PASS: kernel/test_callstack 5 - Add context command for type: callstack-user<br />ok 6 - Untrack command with opts: -s callstack --all --pid -k<br />PASS: kernel/test_callstack 6 - Untrack command with opts: -s callstack --all --pid -k<br />ok 7 - Track command with opts: -s callstack -k --pid=2503<br />PASS: kernel/test_callstack 7 - Track command with opts: -s callstack -k --pid=2503<br />ok 8 - Start tracing for session <br />PASS: kernel/test_callstack 8 - Start tracing for session<br />ok 9 - Stop lttng tracing for session <br />PASS: kernel/test_callstack 9 - Stop lttng tracing for session<br />Traceback (most recent call last):<br /> File "/usr/lib/lttng-tools/ptest/tests/regression/././kernel//../../utils/parse-callstack.py", line 160, in <module><br /> main()<br /> File "/usr/lib/lttng-tools/ptest/tests/regression/././kernel//../../utils/parse-callstack.py", line 155, in main<br /> raise Exception('Expected function name not found in recorded callstack')<br />Exception: Expected function name not found in recorded callstack<br />ok 10 - Destroy session callstack<br />PASS: kernel/test_callstack 10 - Destroy session callstack<br />not ok 11 - Validate userspace callstack<br />FAIL: kernel/test_callstack 11 - Validate userspace callstack</li>
<li> Failed test 'Validate userspace callstack'</li>
<li> in ./kernel/test_callstack:test_user_callstack() at line 80.</li>
<li>Kernel callstack test<br />ok 12 - Create session callstack in -o /tmp/tmp.test_kernel_callstack_trace_path.rHPMq3<br />PASS: kernel/test_callstack 12 - Create session callstack in -o /tmp/tmp.test_kernel_callstack_trace_path.rHPMq3<br />ok 13 - Enable channel chan0 for session callstack<br />PASS: kernel/test_callstack 13 - Enable channel chan0 for session callstack<br />ok 14 - Enable kernel syscall read for session callstack on channel chan0<br />PASS: kernel/test_callstack 14 - Enable kernel syscall read for session callstack on channel chan0<br />ok 15 - Add context command for type: callstack-kernel<br />PASS: kernel/test_callstack 15 - Add context command for type: callstack-kernel<br />ok 16 - Untrack command with opts: -s callstack --all --pid -k<br />PASS: kernel/test_callstack 16 - Untrack command with opts: -s callstack --all --pid -k<br />ok 17 - Track command with opts: -s callstack -k --pid=2532<br />PASS: kernel/test_callstack 17 - Track command with opts: -s callstack -k --pid=2532<br />ok 18 - Start tracing for session <br />PASS: kernel/test_callstack 18 - Start tracing for session<br />ok 19 - Stop lttng tracing for session <br />PASS: kernel/test_callstack 19 - Stop lttng tracing for session<br />ok 20 - Destroy session callstack<br />PASS: kernel/test_callstack 20 - Destroy session callstack<br />ok 21 - Validate kernel callstack<br />PASS: kernel/test_callstack 21 - Validate kernel callstack</li>
<li>Killing (signal SIGTERM) lttng-sessiond and lt-lttng-sessiond pids: 2469 2470 <br />ok 22 - Wait after kill session daemon<br />PASS: kernel/test_callstack 22 - Wait after kill session daemon</li>
<li>Looks like you failed 1 test of 22.</li>
</ol>
<p>I've attached the test binary to this bug.</p> LTTng-tools - Bug #1361 (Resolved): lttng: Fix reproducibility issues https://bugs.lttng.org/issues/13612022-10-21T11:40:07ZAlexander Kanavin
<p>Yocto has added a patch to fix reproducibility issues:<br /><a class="external" href="https://git.yoctoproject.org/poky/tree/meta/recipes-kernel/lttng/lttng-tools/determinism.patch">https://git.yoctoproject.org/poky/tree/meta/recipes-kernel/lttng/lttng-tools/determinism.patch</a></p>
<p>The description from RP is:
=======<br />Add a hack to hardcode in specific rpaths which we then remove,<br /> allowing the build to be reproducible.</p>
<p>This is a bit ugly. Specifing abs_builddir as an RPATH is plain wrong when<br />cross compiling. Sadly, removing the rpath makes libtool/automake do<br />weird things and breaks the build as shared libs are no longer generated.</p>
<p>We already try and delete the RPATH at do_install with chrpath however<br />that does leave the path in the string table so it doesn't help us<br />with reproducibility.</p>
<p>Instead, hack in a bogus but harmless path, then delete it later in<br />our do_install. Ultimately we may want to pass a specific path to use<br />to configure if we really do need to set an RPATH at all. It is unclear<br />to me whether the tests need that or not.</p>
<p>Fixes reproducibility issues for lttng-tools.</p>
<p>Upstream-Status: Pending [needs discussion with upstream about the correct solution]
====</p>
<p>And so this bug is created so that the discussion can take place :-)</p> LTTng-tools - Bug #1360 (Resolved): Test stop/hang when run ptest of lttng-tools (OE/yocto) https://bugs.lttng.org/issues/13602022-10-14T06:42:59ZHeng Guo
<p>Linux and related packages versions:<br />Linux version: 5.10.79 (OE/yocto)<br />Liburcu 0.13.2<br />Lttng_tools: 2.13.8<br />Lttng_ust: 2.13.5<br />Lttng modules: 2.13.5</p>
<p>Build environment:<br />Build kernel and rootfs on Ubuntu (kernel 4.18.0)<br />Target BSP: intel-x86-64<br />Test is run on target board: Intel-snr (cpu atom) and command is:<br />./run-ptest <br />or <br />make -k -s LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=$PWD top_builddir=$PWD check</p>
<p>Issue: <br />Using ptest from (OE/yocto), so all lttng-tools unit tests can be run.<br />Ptest stop/hang at tools/base-path/test_ust, please find the attached log: test_ust.log and ptest-lttng-tools-2.13.8.log.</p>
<p>Root cause:<br />In configure.ac, "no" string is set to $PGREP if pgrep is not found during build. Refer to below codes,</p>
<p>--------<br />AC_PATH_PROG([PGREP], [pgrep], [no])<br />AM_CONDITIONAL([HAVE_PGREP], [test "x$PGREP" != "xno"])<br /></code></pre><br />In tests/utils/utils.sh, NULL string is used to check for $PGREP, so correct pgrep is not set correctly to $PGREP. Refer to below codes,<br /><pre><code class="C syntaxhl" data-language="C"><span class="cp"># Check pgrep from env, default to pgrep if none
</span><span class="k">if</span> <span class="p">[</span> <span class="o">-</span><span class="n">z</span> <span class="s">"$PGREP"</span> <span class="p">];</span> <span class="n">then</span>
<span class="n">PGREP</span><span class="o">=</span><span class="n">pgrep</span>
</code></pre></p>
<p>Solution:<br /> Check "no" string instead of NULL in utils.sh.<br /> The fix patch is attached: 0001-Fix-tests-PGREP-is-not-checked-correctly-in-utils-sc.patch<br /> Test log is attached too: test_ust-fix.log and ptest-lttng-tools-2.13.8-fix.log</p> LTTng-tools - Bug #1354 (Resolved): Cannot Modprobe unload lttng-clock-plugin-test in test case t...https://bugs.lttng.org/issues/13542022-05-13T08:09:24ZHeng Guo
<p>Issue
=====<br />Below modprobe FATAL is got in test_clock_override:</p>
<pre><code>ok 29 - Wait after kill session daemon<br /> modprobe: FATAL: Module lttng_clock_plugin_test is in use.<br /> ok 30 - Unique event timestamps with clock override: 1 expect 1</code></pre>
<p>Cause
=====<br />This issue was introduced by the following commit:</p>
<p>commit d267104b87f12ea8f0bf73bff1af272f98dc069e<br />Author: Francis Deslauriers <<a class="email" href="mailto:francis.deslauriers@efficios.com">francis.deslauriers@efficios.com</a>><br />Date: Tue Sep 15 12:10:18 2020 -0400<br /> Cleanup: use `modprobe --remove` rather than `rmmod`</p>
<p>Modprobe unload lttng-clock-plugin-test before lttng-test</p>
<p>Patch
=====<br />Please find the attached file: 0001-Tests-fix-wrong-sequence-of-unload-modules.patch</p>
<p>Test
====<br />Test log is attached.<br />fail.log is the log without my patch<br />ok.log is the log with my patch</p> LTTng-tools - Bug #1275 (Resolved): kernel trace metadata file is placed outside the kernel/ dire...https://bugs.lttng.org/issues/12752020-06-29T16:06:57ZChristophe Bedard
<p>Host:</p>
<ul>
<li>Ubuntu 18.04 5.3.0-61-generic</li>
<li>Docker version 19.03.12, build 48a66213fe</li>
<li>lttng-modules-dkms 2.11.2-1~ubuntu18.04.1 from the stable-2.11 PPA (I think my host also has lttng-ust & lttng-tools from the same PPA, but I assume it doesn't matter here)<br /> lttng (LTTng Trace Control) 2.11.2 - Lafontaine</li>
</ul>
<p>Docker container:</p>
<ul>
<li>Ubuntu 18.04.1 (same: 5.3.0-61-generic)</li>
<li>The `/lib/modules/5.3.0-61-generic` dir from the host is mounted inside the container (same directory), and I do see the `lttng-*.ko` files under `/lib/modules/`uname -r`/updates/dkms/`</li>
<li>Compiled from source from the `stable-2.11` branches: lttng-ust (89909e362150f437c619f627e20bb4434a1566aa), lttng-tools (14a5bf2843c2bdc13c3a4ec3335a13c867ba3619)<br /> lttng (LTTng Trace Control) 2.11.4 - Lafontaine - v2.11.4-23-g14a5bf28</li>
</ul>
<p>If I setup simple session with a few kernel syscall events, the resulting trace cannot be read with babeltrace. Upon inspection, I found that the metadata file is <em>outside</em> the kernel/ directory (so right under the trace directory itself). If I move it to the kernel/ directory, babeltrace can read the trace fine.</p>
<p>E.g.</p>
<pre>
$ lttng create ksesh
$ lttng enable-event -k --syscall open,read,poll
$ lttng start
$ # wait
$ lttng stop
$ lttng destroy
$ cd lttng-traces/
$ babeltrace ksesh-20200629-120439/
[warning] Skipping directory 'kernel' found in trace
$ ll ksesh-20200629-120439/
kernel metadata
$ mv ksesh-20200629-120439/metadata ksesh-20200629-120439/kernel/
$ babeltrace ksesh-20200629-120439/
(a lot of events)
</pre>
<p>I'm currently trying to setup a minimal docker image to reproduce.</p> LTTng - Bug #1212 (Resolved): Gethostname return FQDN and lttng-relayd does not accept "." in hos...https://bugs.lttng.org/issues/12122020-01-07T20:59:43ZJonathan Rajotte Julienjonathan.rajotte-julien@efficios.com
<p>Since commit:</p>
<pre>
commit 590f0324d6dfd382f79229a7934fa8b5b661641f
Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Date: Fri Aug 30 18:10:56 2019 -0400
Fix: validate that session, host and basepath are legal
Ensure that session name, hostname and the session's base path
do not contain dots ('.') to safeguard against malformed names
that could be used to walk-up the relay daemon output path
hierarchy.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
────────────────────────────────────────────────────────────────────────────────────────────────────────
modified: src/bin/lttng-relayd/session.c
────────────────────────────────────────────────────────────────────────────────────────────────────────
@ session.c:101 @ struct relay_session *session_create(const char *session_name,
uint32_t minor)
{
int ret;
struct relay_session *session;
struct relay_session *session = NULL;
if (session_name && strstr(session_name, ".")) {
ERR("Illegal character in session name: \"%s\"",
session_name);
goto error;
}
if (base_path && strstr(base_path, "../")) {
ERR("Invalid session base path walks up the path hierarchy: \"%s\"",
base_path);
goto error;
}
if (hostname && strstr(hostname, ".")) {
ERR("Invalid character in hostname: \"%s\"",
hostname);
goto error;
}
session = zmalloc(sizeof(*session));
if (!session) {
</pre>
<p>lttng-relayd does not accept dots in the hostname.</p>
<p>We have a host for which gethostname return the FQDN (e.g ci-node-el8-amd64-03-01.internal.efficios.com). This is legal. We can either allow dot in hostname or go fetch the "localname" (hostname --short). A basic implementation of the last solution is available here as a WIP here: <a class="external" href="https://review.lttng.org/c/lttng-tools/+/2740">https://review.lttng.org/c/lttng-tools/+/2740</a></p>
<p>The "downside" with getting the shortname is that we would need to do the same for the lttng-ust metadata env generator in lttng-ust. Do we really want to restrict hostname with dots? I imagine that this is to prevent stuff ala hostname = ../../../myhostname?</p>
<p>Opinion?</p> LTTng-tools - Bug #1125 (Resolved): Functions added to lttng-ctl as part of the 2.10 release cycl...https://bugs.lttng.org/issues/11252017-07-25T00:06:32ZJérémie Galarneaujeremie.galarneau@efficios.com
<p>New channel and notification functions which were introduced as part of the liblttng-ctl API are undocumented. These should be documented before the final 2.10 release.</p> LTTng-tools - Bug #1013 (Resolved): Loading a session prints an error message and exits with non-...https://bugs.lttng.org/issues/10132016-05-04T16:19:18ZPhilippe Proulxeeppeliteloop@gmail.com
<p>Steps:</p>
<pre>
pkill lttng-sessiond
lttng create my-session
lttng save my-session
lttng destroy my-session
lttng load my-session
echo $?
lttng list
</pre>
<p>Using:</p>
<pre>
(LTTng Trace Control) 2.9.0-pre - Codename TBD - v2.7.0-rc1-600-g1d57c99
</pre> LTTng-tools - Bug #1012 (Resolved): Snapshot record results in warning if there are no events in ...https://bugs.lttng.org/issues/10122016-04-19T20:18:17ZJérémie Galarneaujeremie.galarneau@efficios.com
<p>Creating a session containing both kernel and userspace channels and taking a snapshot will result in a warning if there were no events recorded in one of the domains.</p> LTTng-tools - Bug #959 (Resolved): Event status incorrect after loadhttps://bugs.lttng.org/issues/9592015-10-22T12:35:15ZLi Liguanglx125087@163.com
<p>We have found a bug in LTTng regarding state of events after loading saved session configuration.</p>
<p>Steps to reproduce:<br />This requires a LTTng test application (hello-tp.h, hello-tp.c and hello.c) which can be found on LTTng web site: <a class="external" href="http://lttng.org/docs/#doc-tracing-your-own-user-application">http://lttng.org/docs/#doc-tracing-your-own-user-application</a></p>
<p>1) Start test application<br />2) lttng create s1<br />3) lttng enable-event -u -s s1 hello_world:my_first_tracepoint -f '$ctx.procname "hello*"'<br />4) lttng enable-event -u -s s1 -c channel0 hello_world:my_first_tracepoint<br />5) lttng disable-event -u -s s1 -c channel0 -a<br />6) lttng enable-event -u -s s1 -c channel0 hello_world:my_first_tracepoint<br />7) lttng list s1<br />Tracing session s1: [inactive]<br />Trace path: /root/lttng-traces/s1-20000101-223220<br />Live timer interval (usec): 0</p>
= Domain: UST global ===
<p>Buffer type: per UID</p>
<p>Channels:<br />-------------<br />- channel0: [enabled]</p>
<p>Attributes:<br />overwrite mode: 0<br />subbufers size: 131072<br />number of subbufers: 4<br />switch timer interval: 0<br />read timer interval: 0<br />trace file count: 0<br />trace file size (bytes): 0<br />output: mmap()</p>
<p>Events:<br />hello_world:my_first_tracepoint (type: tracepoint) [enabled]<br />hello_world:my_first_tracepoint (type: tracepoint) [disabled] [with filter]</p>
<p>Note that first event is enabled which is correct.</p>
<p>8) lttng save<br />9) lttng destroy<br />10) lttng load<br />11) lttng list s1<br />Tracing session s1: [inactive]<br />Trace path: /root/lttng-traces/s1-20000101-223220<br />Live timer interval (usec): 0</p>
<p>=== Domain: UST global ===</p>
<p>Buffer type: per UID</p>
<p>Channels:<br />-------------<br />- channel0: [enabled]</p>
<p>Attributes:<br />overwrite mode: 0<br />subbufers size: 131072<br />number of subbufers: 4<br />switch timer interval: 0<br />read timer interval: 0<br />trace file count: 0<br />trace file size (bytes): 0<br />output: mmap()</p>
<p>Events:<br />hello_world:my_first_tracepoint (type: tracepoint) [disabled] [with filter]<br />hello_world:my_first_tracepoint (type: tracepoint) [disabled]</p>
<p>Bug! All events are disabled!</p> Babeltrace - Bug #790 (Invalid): babeltrace crash while reading 3 traceshttps://bugs.lttng.org/issues/7902014-04-28T18:03:57ZFrancis Giraldeaufrancis.giraldeau@gmail.com
<p>Reading a trace directory containing three traces makes babeltrace crash. Reading individual traces does not trigger the problem. The problem is reproducible with current master branch (up to commit 62f11f7472d3c). The trace is is added to the bug report. The GDB crash report is following.</p>
<pre>
[francis@berta babeltrace]$ libtool --mode=execute gdb ./converter/babeltrace
GNU gdb (Ubuntu 7.7-0ubuntu3) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/francis/gitsrc/babeltrace/converter/.libs/lt-babeltrace...done.
(gdb) run /home/francis/lttng-traces/django-index > /dev/null
Starting program: /home/francis/gitsrc/babeltrace/converter/.libs/lt-babeltrace /home/francis/lttng-traces/django-index > /dev/null
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[error] Only CTF traces with a single clock description are supported by this babeltrace version.
[error] No clocks can be correlated and multiple traces are added to the collection. If you are certain those traces can be correlated, try using "--clock-force-correlate".
[warning] [Context] cannot open trace "/home/francis/lttng-traces/django-index/django-db/peer-django-db.phd.local-20140428-172732/kernel" from /home/francis/lttng-traces/django-index for reading.
[warning] errors occurred when opening trace "/home/francis/lttng-traces/django-index" for reading, continuing anyway.
*** Error in `/home/francis/gitsrc/babeltrace/converter/.libs/lt-babeltrace': free(): invalid pointer: 0x0000000000932760 ***
Program received signal SIGABRT, Aborted.
0x00007ffff64baf79 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 0x00007ffff64baf79 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff64be388 in __GI_abort () at abort.c:89
#2 0x00007ffff64f81d4 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7ffff6606a10 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
#3 0x00007ffff65044ae in malloc_printerr (ptr=<optimized out>, str=0x7ffff6602b03 "free(): invalid pointer", action=1) at malloc.c:4996
#4 _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3840
#5 0x00007ffff6a86e3b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6 0x00007ffff79b613c in ctf_destroy_metadata (trace=trace@entry=0x947040) at ctf-visitor-generate-io-struct.c:3131
#7 0x00007ffff799e70d in ctf_close_trace (tdp=0x947040) at ctf.c:2517
#8 0x00007ffff7bd13e7 in remove_trace_handle (handle=0xfa0e50) at context.c:235
#9 0x00007ffff6a9fc67 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff6aa09a1 in g_hash_table_remove_all () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007ffff6aa0a0e in g_hash_table_destroy () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007ffff7bd17d1 in bt_context_destroy (ctx=0x60bab0) at context.c:201
#13 bt_context_put (ctx=0x60bab0) at context.c:222
#14 0x0000000000402946 in main (argc=<optimized out>, argv=<optimized out>) at babeltrace.c:792
</pre> Babeltrace - Bug #648 (Invalid): Something is fishy with truncated event nameshttps://bugs.lttng.org/issues/6482013-10-10T14:27:16ZDaniel U. Thibaultdaniel.thibault@drdc-rddc.gc.ca
<p>I was fooling around with too-long event names when I stumbled into what seems to be corruption of the output trace (<code>local</code> session). I have unfortunately been unable so far to reliably reproduce the "bug" (<code>virgin</code> and <code>corrupt</code> sessions). The real question is how come the trace passed the babeltrace semantic check but then caused an "event id outside of range" error.</p>
<p>Here are the two console sessions (the first to run the sessions and babeltrace them, the second to compile/run the long-name user-space event provider). Some lines have already scrolled off the top of the second console, unfortunately:</p>
<pre>
$ lttng list
Available tracing sessions:
1) local (/home/daniel/lttng-traces/local-20131007-163851) [inactive]
Use lttng list <session_name> for more details
$ lttng set-session local
Session set to local
$ lttng enable-event -a -u
All UST events are enabled in channel channel0
$ lttng start
Tracing started for session local
$ lttng stop
Waiting for data availability
Tracing stopped for session local
$ babeltrace ~/lttng-traces/local-20131007-163851/ -w ~/lttng-traces/local -n all -f all
$ lttng start
Tracing started for session local
$ lttng stop
Waiting for data availability
Tracing stopped for session local
$ babeltrace ~/lttng-traces/local-20131007-163851/ -w ~/lttng-traces/local2 -n all -f all -v
[verbose] Verbose mode active.
[verbose] Converting from directory(ies):
[verbose] /home/daniel/lttng-traces/local-20131007-163851/
[verbose] Converting from format: ctf <default>
[verbose] Converting to target: /home/daniel/lttng-traces/local2
[verbose] Converting to format: text <default>
[verbose] CTF visitor: parent links creation... [verbose] done.
[verbose] CTF visitor: semantic check... [verbose] done.
[verbose] CTF visitor: metadata construction...
[verbose] env.hostname = "sds-dut-vb"
[verbose] env.domain = "ust"
[verbose] env.tracer_name = "lttng-ust"
[verbose] env.tracer_major = 2
[verbose] env.tracer_minor = 3
[verbose] done.
[error] Event id 8 is outside range.
[error] Reading event failed.
Error printing trace.
$ lttng create virgin
Session virgin created.
Traces will be written in /home/daniel/lttng-traces/virgin-20131010-093725
$ lttng enable-event -a -u
All UST events are enabled in channel channel0
$ lttng start
Tracing started for session virgin
$ lttng stop
Waiting for data availability
Tracing stopped for session virgin
$ babeltrace ~/lttng-traces/virgin-20131010-093725/ -w ~/lttng-traces/virgin -n all -f all
$ lttng create corrupt
Session corrupt created.
Traces will be written in /home/daniel/lttng-traces/corrupt-20131010-093928
$ lttng enable-event -a -u
All UST events are enabled in channel channel0
$ lttng start
Tracing started for session corrupt
$ lttng stop
Waiting for data availability
Tracing stopped for session corrupt
$ babeltrace ~/lttng-traces/corrupt-20131010-093928/ -w ~/lttng-traces/corrupt -n all -f all -v
[verbose] Verbose mode active.
[verbose] Converting from directory(ies):
[verbose] /home/daniel/lttng-traces/corrupt-20131010-093928/
[verbose] Converting from format: ctf <default>
[verbose] Converting to target: /home/daniel/lttng-traces/corrupt
[verbose] Converting to format: text <default>
[verbose] CTF visitor: parent links creation... [verbose] done.
[verbose] CTF visitor: semantic check... [verbose] done.
[verbose] CTF visitor: metadata construction...
[verbose] env.hostname = "sds-dut-vb"
[verbose] env.domain = "ust"
[verbose] env.tracer_name = "lttng-ust"
[verbose] env.tracer_major = 2
[verbose] env.tracer_minor = 3
[verbose] done.
[verbose] finished converting. Output written to:
/home/daniel/lttng-traces/corrupt
$ lttng start
Tracing started for session corrupt
$ lttng stop
Waiting for data availability
Tracing stopped for session corrupt
$ babeltrace ~/lttng-traces/corrupt-20131010-093928/ -w ~/lttng-traces/corrupt2 -n all -f all -v
[verbose] Verbose mode active.
[verbose] Converting from directory(ies):
[verbose] /home/daniel/lttng-traces/corrupt-20131010-093928/
[verbose] Converting from format: ctf <default>
[verbose] Converting to target: /home/daniel/lttng-traces/corrupt2
[verbose] Converting to format: text <default>
[verbose] CTF visitor: parent links creation... [verbose] done.
[verbose] CTF visitor: semantic check... [verbose] done.
[verbose] CTF visitor: metadata construction...
[verbose] env.hostname = "sds-dut-vb"
[verbose] env.domain = "ust"
[verbose] env.tracer_name = "lttng-ust"
[verbose] env.tracer_major = 2
[verbose] env.tracer_minor = 3
[verbose] done.
[verbose] finished converting. Output written to:
/home/daniel/lttng-traces/corrupt2
$ lttng start
Tracing started for session corrupt
$ lttng stop
Waiting for data availability
Tracing stopped for session corrupt
$ babeltrace ~/lttng-traces/corrupt-20131010-093928/ -w ~/lttng-traces/corrupt3 -n all -f all -v
[verbose] Verbose mode active.
[verbose] Converting from directory(ies):
[verbose] /home/daniel/lttng-traces/corrupt-20131010-093928/
[verbose] Converting from format: ctf <default>
[verbose] Converting to target: /home/daniel/lttng-traces/corrupt3
[verbose] Converting to format: text <default>
[verbose] CTF visitor: parent links creation... [verbose] done.
[verbose] CTF visitor: semantic check... [verbose] done.
[verbose] CTF visitor: metadata construction...
[verbose] env.hostname = "sds-dut-vb"
[verbose] env.domain = "ust"
[verbose] env.tracer_name = "lttng-ust"
[verbose] env.tracer_major = 2
[verbose] env.tracer_minor = 3
[verbose] done.
[verbose] finished converting. Output written to:
/home/daniel/lttng-traces/corrupt3
$ lttng start
Tracing started for session corrupt
$ lttng stop
Waiting for data availability
Tracing stopped for session corrupt
$ babeltrace ~/lttng-traces/corrupt-20131010-093928/ -w ~/lttng-traces/corrupt4 -n all -f all -v
[verbose] Verbose mode active.
[verbose] Converting from directory(ies):
[verbose] /home/daniel/lttng-traces/corrupt-20131010-093928/
[verbose] Converting from format: ctf <default>
[verbose] Converting to target: /home/daniel/lttng-traces/corrupt4
[verbose] Converting to format: text <default>
[verbose] CTF visitor: parent links creation... [verbose] done.
[verbose] CTF visitor: semantic check... [verbose] done.
[verbose] CTF visitor: metadata construction...
[verbose] env.hostname = "sds-dut-vb"
[verbose] env.domain = "ust"
[verbose] env.tracer_name = "lttng-ust"
[verbose] env.tracer_major = 2
[verbose] env.tracer_minor = 3
[verbose] done.
[verbose] finished converting. Output written to:
/home/daniel/lttng-traces/corrupt4
</pre>
<pre>
$ ./sample_static
liblttng_ust_tracepoint[14686/14686]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in add_callsite() at tracepoint.c:326)
liblttng_ust_tracepoint[14686/14686]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
sample starting
sample done
$ make clean
[...]
$ make static
[...]
$ ./sample_static
liblttng_ust_tracepoint[14900/14900]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in add_callsite() at tracepoint.c:326)
liblttng_ust_tracepoint[14900/14900]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
sample starting
sample done
$ make clean
[...]
$ make static
[...]
$ ./sample_static
sample starting
sample done
$ ./sample_static
sample starting
sample done
$ ./sample_static
sample starting
sample done
$ make clean
[...]
$ make static
[...]
$ ./sample_static
liblttng_ust_tracepoint[15378/15378]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in add_callsite() at tracepoint.c:326)
liblttng_ust_tracepoint[15378/15378]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[15378/15378]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[15378/15378]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in add_tracepoint() at tracepoint.c:276)
liblttng_ust_tracepoint[15378/15378]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[15378/15378]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in tracepoint_sync_callsites() at tracepoint.c:412)
sample starting
sample done
liblttng_ust_tracepoint[15378/15378]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[15378/15378]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[15378/15378]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256 which exceeds size limits of 255 chars (in tracepoint_sync_callsites() at tracepoint.c:412)
$ make clean
[...]
$ make static
[...]
$ ./sample_static
sample starting
sample done
$ ./sample_static
sample starting
sample done
$ make clean
[...]
$ make static
[...]
$ ./sample_static
liblttng_ust_tracepoint[15853/15853]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in add_callsite() at tracepoint.c:326)
liblttng_ust_tracepoint[15853/15853]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[15853/15853]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[15853/15853]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in add_tracepoint() at tracepoint.c:276)
liblttng_ust_tracepoint[15853/15853]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[15853/15853]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in tracepoint_sync_callsites() at tracepoint.c:412)
sample starting
sample done
liblttng_ust_tracepoint[15853/15853]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[15853/15853]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[15853/15853]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256_ which exceeds size limits of 255 chars (in tracepoint_sync_callsites() at tracepoint.c:412)
$ make clean
[...]
$ make static
[...]
$ ./sample_static
liblttng_ust_tracepoint[16086/16086]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256__ which exceeds size limits of 255 chars (in add_callsite() at tracepoint.c:326)
liblttng_ust_tracepoint[16086/16086]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256__ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[16086/16086]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256__ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[16086/16086]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256__ which exceeds size limits of 255 chars (in add_tracepoint() at tracepoint.c:276)
liblttng_ust_tracepoint[16086/16086]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256__ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[16086/16086]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256__ which exceeds size limits of 255 chars (in tracepoint_sync_callsites() at tracepoint.c:412)
sample starting
sample done
liblttng_ust_tracepoint[16086/16086]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256__ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[16086/16086]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256__ which exceeds size limits of 255 chars (in get_tracepoint() at tracepoint.c:250)
liblttng_ust_tracepoint[16086/16086]: Warning: Truncating tracepoint name sample_component:event24____30________40________50________60________70________80________90_______100_______110_______120_______130_______140_______150_______160_______170_______180_______190_______200_______210_______220_______230_______240_______250___256__ which exceeds size limits of 255 chars (in tracepoint_sync_callsites() at tracepoint.c:412)
</pre>
<ul>
<li>Question: Why is it some runs of the too-long event provider raise only two "Warning: Truncating tracepoint name" but others do it 6+3 times?</li>
</ul>
<ul>
<li>Observation: Even if two different events whose names truncate to the same string are assigned to the same ID in the trace, this should not be a problem since we've seen in the past that babeltrace has no problem with two identically-named user-space events having completely different payloads. Or are different mechanisms in play here?</li>
</ul>
<p>Using:<br />lttng-tools 2.3.0-1 c9dc128,<br />lttng-ust 2.3.0-1 9f00ce3,<br />userspace-rcu 0.8.0-1 ca617ca and<br />babeltrace 1.1.1-31-513413e</p> LTTng-UST - Bug #556 (Resolved): Segmentation fault when printing an invalid commandhttps://bugs.lttng.org/issues/5562013-06-03T19:12:07ZJérémie Galarneaujeremie.galarneau@efficios.com
<p>I'm running a stress test launching 3000 applications emitting 100 events per second during 20 seconds each which causes the consumerd to segfault. While that is reproducible somewhat easily (that's the problem I was trying to debug), I just ran into a case that causes both one of the traced applications and the consumer daemon to segfault.</p>
<p>Traced application backtrace follows:<br /><pre>
Core was generated by `./TestApp_100perSecOnly 20 np'.
Program terminated with signal 11, Segmentation fault.
#0 print_cmd (handle=1634037881, cmd=1935763820) at lttng-ust-comm.c:212
212 if (cmd_name_mapping[cmd]) {
(gdb) bt
#0 print_cmd (handle=1634037881, cmd=1935763820) at lttng-ust-comm.c:212
#1 ust_listener_thread (arg=0x7f3314c19b20 <local_apps>) at lttng-ust-comm.c:1066
#2 0x00007f3313d8cdd2 in start_thread () from /usr/lib/libpthread.so.0
#3 0x00007f33132a5ced in clone () from /usr/lib/libc.so.6
(gdb) up
#1 ust_listener_thread (arg=0x7f3314c19b20 <local_apps>) at lttng-ust-comm.c:1066
1066
(gdb) print lum
$13 = {
handle = 1634037881,
cmd = 1935763820,
padding = " integer { size = 27; align = 1;",
u = {
channel = {
len = 2334102031740531488,
type = (LTTNG_UST_CHAN_METADATA | unknown: 1634082876),
padding = "lse; } := uint27_t;\n\ntrace {\n\tmajor = 1;\n\tminor = 8;\n\tuuid = \"f3a29a7d-7c01-4dfd-b463-696c4884ec49\";\n\tbyte_order = le;\n\tpacket.header := struct {\n\t\tuint32_t magic;\n\t\tuint8_t uuid[16];\n\t\tuint32_t stre"...,
data = 0x7f33129bda54 "\n\ttracer_major = 2;\n\ttracer_minor = 2;\n\ttracer_patchlevel = 0;\n\tvpid = 18492;\n\tprocname = \"TestApp_100perS\";\n};\n\nclock {\n\tname = monotonic;\n\tuuid = \"6a86dfb3-e819-4f9b-a6c2-b31292b16173\";\n\tdescription"...
},
stream = {
len = 2334102031740531488,
stream_nr = 1634082877,
padding = "lse; } := uint27_t;\n\ntrace {\n\tmajor = 1;\n\tminor = 8;\n\tuuid = \"f3a29a7d-7c01-4dfd-b463-696c4884ec49\";\n\tbyte_order = le;\n\tpacket.header := struct {\n\t\tuint32_t magic;\n\t\tuint8_t uuid[16];\n\t\tuint32_t stre"...
},
event = {
instrumentation = (unknown: 1734964000),
name = "ned = false; } := uint27_t;\n\ntrace {\n\tmajor = 1;\n\tminor = 8;\n\tuuid = \"f3a29a7d-7c01-4dfd-b463-696c4884ec49\";\n\tbyte_order = le;\n\tpacket.header := struct {\n\t\tuint32_t magic;\n\t\tuint8_t uuid[16];\n\t\tuint3"...,
loglevel_type = (LTTNG_UST_LOGLEVEL_RANGE | unknown: 544106848),
loglevel = 1965170749,
padding = "st\";\n\ttracer_nam",
u = {
padding = "e = \"lttng-ust\";\n\ttracer_major = 2;\n\ttracer_minor = 2;\n\ttracer_patchlevel = 0;\n\tvpid = 18492;\n\tprocname = \"TestApp_100perS\";\n};\n\nclock {\n\tname = monotonic;\n\tuuid = \"6a86dfb3-e819-4f9b-a6c2-b31292b1617"...
}
},
context = {
ctx = 1734964000,
padding = "ned = false; } :",
u = {
padding = "= uint27_t;\n\ntrace {\n\tmajor = 1;\n\tminor = 8;\n\tuuid = \"f3a29a7d-7c01-4dfd-b463-696c4884ec49\";\n\tbyte_order = le;\n\tpacket.header := struct {\n\t\tuint32_t magic;\n\t\tuint8_t uuid[16];\n\t\tuint32_t stream_id;\n\t"...
}
},
version = {
major = 1734964000,
minor = 543450478,
patchlevel = 1634082877
},
tracepoint = {
name = " signed = false; } := uint27_t;\n\ntrace {\n\tmajor = 1;\n\tminor = 8;\n\tuuid = \"f3a29a7d-7c01-4dfd-b463-696c4884ec49\";\n\tbyte_order = le;\n\tpacket.header := struct {\n\t\tuint32_t magic;\n\t\tuint8_t uuid[16];\n\t\tu"...,
loglevel = 1836016649,
padding = "ain = \"ust\";\n\ttr"
},
filter = {
data_size = 1734964000,
reloc_offset = 543450478,
seqnum = 4279953930213269565
},
padding = " signed = false; } := uint27_t;\n"
}
}
</pre></p>
<p>I will submit a patch to check the command against the size of the command string array to make sure an invalid command does not trigger an out-of-bounds error. There is unfortunately no way to know if a command really is invalid or just "unknown"...</p>
<p>Maybe we should log the command's ID in such cases to make corrupted messages easier to spot?</p> LTTng-UST - Bug #537 (Resolved): make CFLAGS=-g breaks examples buildhttps://bugs.lttng.org/issues/5372013-05-17T22:42:17ZMathieu Desnoyersmathieu.desnoyers@efficios.com
<p>cd doc/examples/easy-ust<br />compudj@thinkos:~/git/lttng-ust/doc/examples/easy-ust$ (git:master $)> make<br />gcc -I. -c -o tp.o tp.c<br />gcc -o sample sample.o tp.o -ldl -llttng-ust <br />compudj@thinkos:~/git/lttng-ust/doc/examples/easy-ust$ (git:master $)> make clean<br />rm -f <strong>.html<br />rm -f *.o sample<br />compudj@thinkos:~/git/lttng-ust/doc/examples/easy-ust$ (git:master $)> make CFLAGS=-g<br />gcc -g -c -o sample.o sample.c<br />gcc -g -c -o tp.o tp.c<br />In file included from sample_component_provider.h:143:0,<br /> from tp.c:33:<br />/usr/local/include/lttng/tracepoint-event.h:60:28: fatal error: ./sample_component_provider.h: No such file or directory<br />compilation terminated.<br />make: *</strong>* [tp.o] Error 1</p>
<p>for some reason, the CFLAGS += have no effect when a CFLAGS is specified on the command line.</p>