Bug #1350
openBabeltrace failes at a negative clock `offset`
0%
Description
Below lttng packages are using in our project.
Lttng_tools: 2.12.3
Lttng_ust: 2.12.1
Babeltrace: 1.5.8
1.
In Lttng live mode, we get below babletrace error when we call "babeltrace --clock-date --no-delta -i lttng-live net://localhost/host/xxxxx/session"
[error] ctf_clock_declaration_visit: unexpected unary expression for clock offset [error] ctf_visitor_construct_metadata: clock declaration error [error] Error in CTF metadata constructor -22 [error] [Context] Cannot open_mmap_trace of format ctf. [error] Error adding trace [warning] [Context] Cannot open_trace of format lttng-live at path net://localhost/host/xxxxx/session. [warning] [Context] cannot open trace "net://localhost/host/xxxxx/session" for reading. [error] opening trace "net://localhost/host/xxxxx/session" for reading. [error] none of the specified trace paths could be opened.
Finally we port commit: 61cf588beae752e5ddfc60b6b5310f769ac9e852 from master branch to 1.5.8, then the issue is fixed.
2. With this commit: 61cf588beae752e5ddfc60b6b5310f769ac9e852, we find test case: tests/bin/intersection/test_intersection fails.
1) The 1st reason is wrong clock offset_s = 1351530929945824323, refer to below :
cat tests/ctf-traces/intersection/3eventsintersect/metadata ..... clock { name = test_clock; uuid = "7b9e2f2a-530e-4ab1-816f-0831b5c09140"; description = "This is a test clock"; freq = 1000000000; precision = 10; offset_s = 1351530929945824323; offset = 0; absolute = TRUE; };
There is a overflow in clock_offset_ns() if clock offset_s = 1351530929945824323.
static inline uint64_t clock_offset_ns(struct ctf_clock *clock) { return clock->offset_s * 1000000000ULL + clock_cycles_to_ns(clock, clock->offset); }
Double check the babeltrace 2, it is already fixed to "offset_s = 13515309;" in tests/data/ctf-traces/intersection/3eventsintersect/metadata
2) The 2nd reason is the regression of commit: 61cf588beae752e5ddfc60b6b5310f769ac9e852. uint64_t should be changed to int64_t in some codes related to option "--stream-intersection".
Attach 3 related patches based on branch remotes/origin/stable-1.5.
So why commit 61cf588beae752e5ddfc60b6b5310f769ac9e852 is not merged to branch 1.5? Is there any reason or side effect of this commit?
Files
Updated by Jonathan Rajotte Julien over 2 years ago
- Description updated (diff)
- Status changed from New to Feedback
Hi,
If you have a look at the commit message from 61cf588beae752e5ddfc60b6b5310f769ac9e852 the reason why it is not present in stable 1.5.8 is pretty clear.
It introduces API-breaking changes in the C and Python APIs, since we need to be able to return negative time values, which were previously used as errors (-1ULL).
Unless there is very compelling reasons why you are sticking with babeltrace 1.5.8, please upgrade to babeltrace2.
Cheers
Updated by Heng Guo over 2 years ago
We have the same issue on babletrace2 and create case https://bugs.lttng.org/issues/1351.
Heng