Package: babeltrace
Version: 1.2.2-2
Severity: wishlist
I've been looking at the sparc issue and this is just a tracker bug.
One patch that helps passing half the testsuite is cae67efbd9 ("Fix:
Align buffers from objstack_alloc on sizeof(void *)") [0].
I would suggest to use an alignment of 8 even on 32bit architectures.
The 4 additional bytes shouldn't matter and the Sparc FPU provides
double support which have a size of 8 bytes and so probably require an
aligment of 8 even on 32bit (the test suite didn't complain here).
Jérémie?
And the second bug I stumbled on is in test_ctf_writer:
|…
|ok 75 - Flush trace stream with one event
|ok 76 - Add a new event class to a stream class after writing an event
|ok 77 - Append 100 000 events to a stream
|
|Program received signal SIGSEGV, Segmentation fault.
|0xf7f6f778 in ctf_integer_write (ppos=0x70022328, definition=<optimized out>)
at integer.c:325
|325
bt_bitfield_write_be(mmap_align_addr(pos->base_mma) +
|(gdb) bt
|#0 0xf7f6f778 in ctf_integer_write (ppos=0x70022328, definition=<optimized
out>) at integer.c:325
|#1 0xf7f88014 in bt_ctf_field_integer_serialize (field=0x700cd928,
pos=0x70022328) at event-fields.c:1065
|#2 0xf7f88c88 in bt_ctf_field_serialize (field=0x700cd928, pos=0x70022328) at
event-fields.c:660
|#3 0xf7f88f10 in bt_ctf_field_structure_serialize (field=0x700cd8c8,
pos=0x70022328) at event-fields.c:1143
|#4 0xf7f88c88 in bt_ctf_field_serialize (field=0x700cd8c8, pos=0x70022328) at
event-fields.c:660
|#5 0xf7f857bc in bt_ctf_stream_flush (stream=0x70022310) at stream.c:458
|#6 0x7000577c in packet_resize_test (stream_class=<optimized out>,
stream=0x70022310, clock=0x70022108) at test_ctf_writer.c:698
|#7 0x70002750 in main (argc=<optimized out>, argv=0xffffd6f4) at
test_ctf_writer.c:818
|
|=> 0xf7f6f778 <+600>: ldub [ %l3 + %l1 ], %g4
|
|l1 0x10002 65538
|l3 0xf7bb4000 -138723328
and _bt_bitfield_write_le() had __ptr = 0xf7bb4000 and this_unit = 65538
|(gdb) print *((struct ctf_stream_pos *)ppos)->base_mma
|$3 = {page_aligned_addr = 0xf7bb4000, page_aligned_length = 131072, addr =
0xf7bb4000, length = 131072}
So it looks like it tried to load a byte from 0xf7bb4000 + 0x10002 and
this segfaulted. The mapping should be 131072 bytes in size it should
fit. This is confirmed by proc, too
|f7bb0000-f7bd0000 -w-s 00010000 fe:02 262357
/tmp/ctfwriter_5uYQD4/test_stream_0
|Size: 128 kB
So everything looks legal…
[0]
http://git.efficios.com/?p=babeltrace.git;a=commitdiff;h=cae67efbd9ddf2cee6bbefec076dc8933ababc43
Sebastian
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]