<font size=2 face="sans-serif">Hi,</font>
<br>
<br><font size=2 face="sans-serif">I have reproduced the issue with babeltrace
-v option . </font>
<br>
<br><font size=2 face="sans-serif"><br>
<br>
Thanks & Regards<br>
Venkata Ranganadh Kantimahanthi<br>
</font>
<br><font size=1 color=#800080 face="sans-serif">----- Forwarded by Venkata
Kantimahanthi/HYD/TCS on 02/24/2015 03:02 PM -----</font>
<br>
<br><font size=1 color=#5f5f5f face="sans-serif">From:      
 </font><font size=1 face="sans-serif">Venkata Kantimahanthi
<venkata.kantimahanthi@tcs.com></font>
<br><font size=1 color=#5f5f5f face="sans-serif">To:      
 </font><font size=1 face="sans-serif">lttng-dev@lists.lttng.org</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Date:      
 </font><font size=1 face="sans-serif">02/18/2015 02:29 PM</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Subject:    
   </font><font size=1 face="sans-serif">[lttng-dev]
Error is thrown when  continously using  babeltrace</font>
<br>
<hr noshade>
<br>
<br>
<br><font size=2 face="sans-serif">Hi,</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
We are using babeltrace 1.2.4 and LTTng Trace Control 2.5.3.  Continously
giving babeltrace is throwing this error.  I am actually getting this
while reading a snapshot session . I have given continously babeltrace
and path to read the traces . Then I am getting this error.</font><font size=3>
<br>
</font><font size=2 color=#ff0041 face="Calibri"><br>
************************************************</font><font size=1 color=#ff0041 face="Arial">
</font><font size=2 color=#ff0041 face="Calibri"><br>
[error] Unexpected end of packet. Either the trace data stream is corrupted
or metadata description does not match data layout.</font><font size=1 color=#ff0041 face="Arial">
</font><font size=2 color=#ff0041 face="Calibri"><br>
[error] Reading event failed.</font><font size=1 color=#ff0041 face="Arial">
</font><font size=2 color=#ff0041 face="Calibri"><br>
Error printing trace.</font><font size=1 color=#ff0041 face="Arial"> <br>
 </font><font size=2 color=#ff0041 face="Calibri"><br>
************************************************</font><font size=1 color=#ff0041 face="Arial">
</font><font size=1 face="Arial"><br>
As you said previously "</font><font size=2 face="Arial"><b>The corrupted
stream probably can't be handled by Babeltrace anymore at that point.</b></font><font size=1 face="Arial">"
</font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
Please see the  below code snippet how we are using the lttng calls
to handle our requirement</font><font size=3> </font><font size=2 face="sans-serif"><b><br>
creation of session:</b></font><font size=3> </font><font size=2 face="sans-serif"><br>
           lttng create s1 --snapshot -o /pramfs/telog</font><font size=3>
</font><font size=2 face="sans-serif"><br>
           lttng enable-channel ch1 -u --buffers-uid
--subbuf-size 4096 --num-subbuf 16</font><font size=3> </font><font size=2 face="sans-serif"><br>
           # Enable default events</font><font size=3>
</font><font size=2 face="sans-serif"><br>
           lttng enable-event -u -c ch1 --loglevel
TRACE_INFO '*'</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
After succesful creation of the session we are able to read the traces
using babeltrace successfully. But we have written a wrappers for using
lttng API calls in such a way to meet our requirement which is reading
only traces inside the buffer at that instant by writing into a file by
removing previously created snapshots.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
lttng_sessions[0].path contains</font><font size=2 color=blue face="sans-serif">
/pramfs/telog</font><font size=3> </font><font size=2 face="sans-serif"><br>
myrm is a function pointer which cleans the directory and returns 770 permissions
to that particular snapshot path.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
        if (ted_ss_reboot == SS_RB_CONF) {</font><font size=3>
</font><font size=2 face="sans-serif"><br>
                /* Only read snapshot
from last reboot once */</font><font size=3> </font><font size=2 face="sans-serif"><br>
                ted_ss_reboot =
SS_RB_DONE;</font><font size=3> </font><font size=2 face="sans-serif"><br>
                extra = FCORRELATE;</font><font size=3>
</font><font size=2 face="sans-serif"><br>
        } else {</font><font size=3> </font><font size=2 face="sans-serif"><br>
                /* Remove all previous
snapshots from output folder</font><font size=3> </font><font size=2 face="sans-serif"><br>
                 * This way filesystem
will not be flooded by snapshots</font><font size=3> </font><font size=2 face="sans-serif"><br>
                 * taken every
time user reads the log. OBS, All dirs under</font><font size=3> </font><font size=2 face="sans-serif"><br>
                 * path will be
deleted.</font><font size=3> </font><font size=2 face="sans-serif"><br>
                 */</font><font size=3>
</font><font size=2 face="sans-serif"><br>
                if (nftw(lttng_sessions[0].path,
myrm, FOPEN_MAX, FTW_DEPTH) < 0) {</font><font size=3> </font><font size=2 face="sans-serif"><br>
                    
   ERR("Failed to clean path, %s", lttng_sessions[0].path);</font><font size=3>
</font><font size=2 face="sans-serif"><br>
                    
   goto send_rsp;</font><font size=3> </font><font size=2 face="sans-serif"><br>
                }</font><font size=3>
</font><font size=2 face="sans-serif"><br>
        }</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
        /*</font><font size=3> </font><font size=2 face="sans-serif"><br>
         * Take a snapshot of lttng buffers  for
a given session</font><font size=3> </font><font size=2 face="sans-serif"><br>
         */</font><font size=3> </font><font size=2 face="sans-serif"><br>
        /* Create a output handle */</font><font size=3>
</font><font size=2 face="sans-serif"><br>
        if ((lttng_out = </font><font size=2 color=blue face="sans-serif">lttng_snapshot_output_create</font><font size=2 face="sans-serif">())
== NULL) {</font><font size=3> </font><font size=2 face="sans-serif"><br>
                ERR("lttng_snapshot_output_create
failed");</font><font size=3> </font><font size=2 face="sans-serif"><br>
                ret = -1;</font><font size=3>
</font><font size=2 face="sans-serif"><br>
                goto send_rsp;</font><font size=3>
</font><font size=2 face="sans-serif"><br>
        }</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
        /* Take a snapshot, output path used is same
as configured for the session */</font><font size=3> </font><font size=2 face="sans-serif"><br>
        ret =</font><font size=2 color=blue face="sans-serif">
lttng_snapshot_record</font><font size=2 face="sans-serif">(lttng_sessions[0].name,
lttng_out, 0);</font><font size=3> </font><font size=2 face="sans-serif"><br>
        if (ret < 0) {</font><font size=3> </font><font size=2 face="sans-serif"><br>
                ERR("lttng_snapshot_record
failed, ses:%s, %s",</font><font size=3> </font><font size=2 face="sans-serif"><br>
                    lttng_sessions[0].name,
lttng_strerror(ret));</font><font size=3> </font><font size=2 face="sans-serif"><br>
                ret = -1;</font><font size=3>
</font><font size=2 face="sans-serif"><br>
                goto send_rsp;</font><font size=3>
</font><font size=2 face="sans-serif"><br>
        }</font><font size=3> <br>
<br>
</font><font size=2 face="sans-serif"><br>
        lttng_snapshot_output_destroy(lttng_out);</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
        /*</font><font size=3> </font><font size=2 face="sans-serif"><br>
         * snapshot folder created by root lttng-sessiond
and all its</font><font size=3> </font><font size=2 face="sans-serif"><br>
         * subfolders have permissions set to 770,
meaning non-privileged</font><font size=3> </font><font size=2 face="sans-serif"><br>
         * user cant read/write from/to that folder.
A regular user should</font><font size=3> </font><font size=2 face="sans-serif"><br>
         * be able to read traces generated by root
sessiond.</font><font size=3> </font><font size=2 face="sans-serif"><br>
         * Changing permissions to this file tree.</font><font size=3>
</font><font size=2 face="sans-serif"><br>
         */</font><font size=3> </font><font size=2 face="sans-serif"><br>
        nftw(lttng_sessions[0].path, mychmod, FOPEN_MAX,
FTW_DEPTH);</font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
babeltrace --clock-date  --clock-force-correlate /pramfs/telog</font><font size=3>
</font><font size=2 face="sans-serif"><br>
which was giving the logs which we were expecting but if we keep this process
repeatedly above mentioned error was coming. I am sharing the log file
(there te log read is the wrapper call for above process which I mentioned).Please
tell if any other logs were required.</font><font size=3> <br>
<br>
<br>
</font><font size=2 face="sans-serif"><br>
<br>
Thanks & Regards<br>
Venkata Ranganadh Kantimahanthi</font>
<p><font size=3>=====-----=====-----=====<br>
Notice: The information contained in this e-mail<br>
message and/or attachments to it may contain <br>
confidential or privileged information. If you are <br>
not the intended recipient, any dissemination, use, <br>
review, distribution, printing or copying of the <br>
information contained in this e-mail message <br>
and/or attachments to it are strictly prohibited. If <br>
you have received this communication in error, <br>
please notify us by reply e-mail or telephone and <br>
immediately and permanently delete the message <br>
and any attachments. Thank you</font><tt><font size=2>_______________________________________________<br>
lttng-dev mailing list<br>
lttng-dev@lists.lttng.org<br>
</font></tt><a href="http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev"><tt><font size=2>http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev</font></tt></a><tt><font size=2><br>
</font></tt>