[lttng-dev] Allocation failures with babeltrace and TraceCompass - corrupt trace?

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Wed Jun 14 16:39:33 UTC 2017


----- On Jun 14, 2017, at 11:55 AM, Thomas McGuire thomas.mcguire at kdab.com wrote:

> Hi,
> 
> On 14.06.2017 17:12, Mathieu Desnoyers wrote:
>> Can you provide a copy of the metadata file ? And ideally the data
>> streams too ? This would give us a better idea of what is happening.
>> 
>> Do you perform kernel or user-space tracing ? Do you trace huge
>> sequences of bytes within your own tracepoints ?
> 
> I perform kernel traceing only, in this case limited to syscalls,
> sched*, block* and irq*. No user-space tracepoints.
> 
> I didn't know the metadata file was plain text, I had a quick look into
> it and noticed corruption already, with random garbage data inserted all
> over the place. I'm surprised babeltrace didn't choke on the metadata
> already.

The lttng metadata is "packetized plain-text". What you see is plain-text in
a transport layer which is binary. This explains the "garbage" you see:
those are binary headers for packets. Use babeltrace -o ctf-metadata
to extract the text-only metadata (which is also valid metadata under CTF).
Both packetized and pure text metadata are allowed.


> I can not provide the data file as it has confidential data. Looking at
> it with a hex editor, I see the same kind of garbage as in the metadata
> file, so both files are affected by the same problem.

The CTF data files are binary, so the garbage you see can be either
headers or padding.

> 
> I've uploaded the metadata file to
> http://www.kdab.com/~thomas/stuff/metadata.
> 
> To double-check that it isn't file system corruption, I ran "yes >
> test.data" - that file is OK, so it's probably a different problem.
> 
> Any idea what can cause the corrupted trace?

Based on your babeltrace backtrace, the possible culprits would be the
events that have a sequence (variable-sized array):

syscalls: select, poll, ppoll, pselect6, epoll_wait, epoll_pwait

block_rq_issue, block_rq_insert, block_rq_complete, block_rq_requeue, block_rq_abort.

There are a few approaches to cornering the issue. You can try reproducing
on your workload/config by only enabling one of these events at a time.
Just knowing which event(s) is/are the culprit would be a good start.

Another possibility would be to send us a trace reproducing the issue
with only those events enabled, which should not contain confidential
info about your system.

Thanks,

Mathieu



> 
> Regards,
> Thomas
> --
> Thomas McGuire | thomas.mcguire at kdab.com | Senior Software Engineer
> KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
> Tel: +49-30-521325470
> KDAB - The Qt Experts
> 
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list