Hi Glen,
Thank you for the response. I have taken the binary data prepended to the
textual packet data and using the link you provided, found this structure:
struct metadata_packet_header {
uint32_t magic; /* 0x75D11D57 */
uint8_t uuid[16]; /* Unique Universal Identifier */
uint32_t checksum; /* 0 if unused */
uint32_t content_size; /* in bits */
uint32_t packet_size; /* in bits */
uint8_t compression_scheme; /* 0 if unused */
uint8_t encryption_scheme; /* 0 if unused */
uint8_t checksum_scheme; /* 0 if unused */
uint8_t major; /* CTF spec version major number */
uint8_t minor; /* CTF spec version minor number */
};
This helped decode the binary data and I came up with the following:
57h,1Dh,D1h,75h, -> 0x75D11D57 magic number
3Fh,ADh,A9h,29h,32h,BEh,C8h,4Eh,B9h,64h,99h,8Fh,14h,89h,6Eh,AEh, -> UUID
00h,00h,00h,00h, -> Checksum
D8h,27h,00h,00h, -> 0x000027D8 1020d Content Size (bits)
00h,80h,00h,00h, -> 0x00008000 2048d Packet size (bits)
00h, compression -> none
00h, encryption -> none
00h, checksum scheme -> ?
01h, -> CTF major version
F0h -> CTF minor version
So the mystery regarding the binary data at the start of the metadata is solved.
What is still confusing is why this should appear again and again in the body
of the text-part of the metadata.
Regards,
Neil.
From: Glen Keane [mailto:[email protected]]
Sent: Thursday, March 05, 2015 12:02 PM
To: Neil Bryan
Cc: [email protected]<mailto:[email protected]>
Subject: Re: [lttng-dev] LTTng 2.6.0: Corrupt metadata?
Hey Neil,
I hope that this helps you!
The start of the lttng metadata file will start with some binary data if it is
generated by a tracing session, The binary correlates to a 32 bit magic number,
a uuid, with 16 sections of 8 bit ints, a 32 bit checksum, a 32 bit content
size, a 32 bit packet size, some 8 bit ints representing the compression
scheme, the encryption scheme, the checksum, the major release number of the
Common Trace Format(CTF) in use and the minor release number of the CTF in use.
Everything after that binary data is the textual representation of the CTF
metadata, which is sent in packets, I think. The "corrupt" areas you see in the
text is the end of a packet that was created by lttng and start of a new packet
that was created by lttng, again, I think, I'm not an expert on this part of
the CTF. I know that the start of the CTF metadata can have the binary I
described, however.
Its all part of the CTF, the guys pointed me to this on their IRC channel,
maybe it could help you?
http://diamon.org/docs/ctf/v1.8.2/
Sorry I rambled, I enjoy the theory behind the CTF! :D
The segmentation fault is still an issue though. :(
On Thu, Mar 5, 2015 at 10:50 AM, Neil Bryan
<[email protected]<mailto:[email protected]>> wrote:
Hello LTTng devs,
I am experiencing a strange problem with what I believe is corrupt metadata.
This is seen on v2.6.0 of LTTng.
If I try and parse recovered traces using Babeltrace, it fails with a
segmentation fault.
nbryan@meteorubuntu-OptiPlex-7010:/data/nbryan/Meteor/altera_trace$ babeltrace
--help
BabelTrace Trace Viewer and Converter 1.0.0-rc1
nbryan@meteorubuntu-OptiPlex-7010:/data/nbryan/Meteor/altera_trace$ babeltrace
auto-20150304-091109/
Segmentation fault (core dumped)
I thought it may be worth a look at the metadata file and I observed the
following (these are just three examples):
Environment:
env {
hostname = "socfpga_cyclone5";
domain = "kernel";
sysname = "Linux";
kernel_release = "3.10.31-ltsi-05035-g801a40f";
kernel_version = "#3 SMP Tue Mar 3 17:31:45 GMT 2015";
tracer_name = "lttng-modules";
tracer_major = 2;
tracer_minor = 6;
tracer_patchlevel = 0;
};
event {
name = "syscall_exit_recvmmsg";
id = 921;
stream_id = 0;
fields := struct {
integer { size = 32; align = 32; signed = 1; encoding = none; base =
10; } _ret;
integer { size = 32; align = 32; signe WСu?©)2ѕИN№d™Џ‰n® и
Ђ d = 0; encoding = none; base = 16; } _mmsg;
integer { size = 32; align = 32; signed = 0; encoding = none; base =
16; } _timeout;
};
};
Decoded binary values:
00h,00h,00h,57h,1Dh,D1h,75h,3Fh,ADh,A9h,29h,32h,BEh,C8h,4Eh,B9h,64h,99h,8Fh,14h,89h,6Eh,AEh,00h,00h,00h,00h,E8h,7Fh,00h,00h,00h,80h,00h,00h,
00h,00h,00h,01h,08h
event {
name = "syscall_exit_getcpu";
id = 903;
stream_id = 0;
fields := struct {
integer { size = 32; align = 32; signed = 1; encoding = none; base =
10; } _ret;
integer { size = 32; align = 32; signed = 0; encoding = none; base =
16; } _cpup;
integer { size = 32; align = 32; signed = 0; encoding = none; base =
16; } _nodep;
integer { size = 32; align = 32; signed = 0; encoding = none; base =
WСu?©)2ѕИN№d™Џ‰n® и Ђ 16; } _tcache;
};
};
Decoded binary values:
00h,00h,00h,57h,1Dh,D1h,75h,3Fh,ADh,A9h,29h,32h,BEh,C8h,4Eh,B9h,64h,99h,8Fh,14h,89h,6Eh,AEh,00h,00h,00h,00h,E8h,7Fh,00h,00h,00h,80h,00h,00h,00h,
00h,00h,01h,08h
event {
name = "syscall_exit_fstatat64";
id = 886;
stream_id = 0;
fields := struct {
integer { size = 32; align = 32; signed = 1; encoding = none; base =
10; } _ret;
integer { size = 32; align = 32; signed = 1; encod
WСu?©)2ѕИN№d™Џ‰n® и Ђ ing = none; base = 10; } _dfd;
string _filename;
integer { size = 32; align = 32; signed = 0; encoding = none; base =
16; } _statbuf;
integer { size = 32; align = 32; signed = 1; encoding = none; base =
10; } _flag;
};
};
Decoded binary values:
00h,00h,00h,57h,1Dh,D1h,75h,3Fh,ADh,A9h,29h,32h,BEh,C8h,4Eh,B9h,64h,99h,8Fh,14h,89h,6Eh,AEh,00h,00h,00h,00h,E8h,7Fh,00h,00h,00h,80h,00h,00h,
00h,00h,00h,01h,08h
In a metadata file containing 7200 lines, I see this corruption 74 times.
I also notice that the header of the metadata file contains something very
similar:
57h,1Dh,D1h,75h,3Fh,ADh,A9h,29h,32h,BEh,C8h,4Eh,B9h,64h,99h,8Fh,14h,89h,6Eh,AEh,00h,00h,00h,00h,D8h,27h,00h,00h,00h,80h,00h,00h,00h,00h,00h,01h,08h
This appears identical to the other instances, less the first three 00h bytes.
Now it may be intentional to squirt binary data into what is essentially a
text file, but it looks suspicious. Can anyone shed any light on what is
happening here?
Is the metadata file supposed to have any binary data in it at all?
Thanks,
Neil.
_______________________________________________
lttng-dev mailing list
[email protected]<mailto:[email protected]>
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev