Skip to content

track_event coredump #34

Description

@official-minister

branch: master
commit: f447425

I find that I use trace_processor_shell to parse a trace.file and it will coredump like this :

(gdb) c
Continuing.
[117.115] ack_event_parser.cc:644 PERFETTO_CHECK(event_name.data()) (errno: 0, Success)
[Thread 0x7ffff7ff4740 (LWP 19420) exited]
Thread 1 "trace_processor" received signal SIGILL, Illegal instruction.
0x000000000071e85b in perfetto::trace_processor::TrackEventParser::EventImporter::ParseMetadataEvent (this=0x7fffffff50e0)
at ../../src/trace_processor/importers/proto/track_event_parser.cc:644
644 PERFETTO_DCHECK(event_name.data());
(gdb) c
Continuing.
_------------------ BEGINNING OF CRASH ------------------
Signal: Illegal instruction (possibly unaligned access)
Fault addr: 000000000071E85B
Backtrace:
#00 0x00007FFFF79C5390
#1 perfetto::trace_processor::TrackEventParser::EventImporter::ParseMetadataEvent()
../../src/trace_processor/importers/proto/track_event_parser.cc:644
#2 perfetto::trace_processor::TrackEventParser::EventImporter::Import()
../../src/trace_processor/importers/proto/track_event_parser.cc:178
#3 perfetto::trace_processor::TrackEventParser::ParseTrackEvent(long, perfetto::trace_processor::TrackEventData*, protozero::ConstBytes)
../../src/trace_processor/importers/proto/track_event_parser.cc:1570
#4 perfetto::trace_processor::TrackEventModule::ParsePacket(perfetto::protos::pbzero::TracePacket_Decoder const&, perfetto::trace_processor::TimestampedTracePiece const&, unsigned int)
../../src/trace_processor/importers/proto/track_event_module.cc:76
#5 perfetto::trace_processor::ProtoTraceParser::ParseTracePacketImpl(long, perfetto::trace_processor::TimestampedTracePiece, perfetto::trace_processor::TracePacketData const*, perfetto::protos::pbzero::TracePacket_Decoder const&)
../../src/trace_processor/importers/proto/proto_trace_parser.cc:115
#6 perfetto::trace_processor::ProtoTraceParser::ParseTracePacket(long, perfetto::trace_processor::TimestampedTracePiece)
../../src/trace_processor/importers/proto/proto_trace_parser.cc:96
#7 perfetto::trace_processor::TraceSorter::SortAndExtractEventsBeyondWindow(long)
../../src/trace_processor/trace_sorter.cc:140
#8 perfetto::trace_processor::TraceSorter::ExtractEventsForced()
../../src/trace_processor/trace_sorter.h:158
#9 perfetto::trace_processor::TraceProcessorStorageImpl::NotifyEndOfFile()
../../src/trace_processor/trace_processor_storage_impl.cc:0
#0A perfetto::trace_processor::TraceProcessorImpl::NotifyEndOfFile()
../../src/trace_processor/trace_processor_impl.cc:570
#0B perfetto::trace_processor::ReadTrace(perfetto::trace_processor::TraceProcessor*, char const*, std::_1::function<void (unsigned long)> const&)
../../src/trace_processor/read_trace.cc:122
#0C perfetto::trace_processor::(anonymous namespace)::TraceProcessorMain(int, char**)
../../src/trace_processor/trace_processor_shell.cc:951
#0D main
../../src/trace_processor/trace_processor_shell.cc:1109
#0E 0x00007FFFF71FE830
#0F 0x00000000005A3D29
------------------ END OF CRASH ------------------

and I use an old version can parse it(Jan 30 commit: 15c8c3e).

Then I use trace_to_text parseit, I find the error trace message like this:
packet {
trusted_uid: 10301
timestamp: 704682336306572
trusted_packet_sequence_id: 5
track_event {
category_iids: 1
debug_annotations {
name_iid: 1
string_value: "XXXXXXXXXXXXX"
}
legacy_event {
name_iid: 1
phase: 77
}
}
interned_data {
event_categories {
iid: 1
name: "cat"
}
event_names {
iid: 1
name: "process_name"
}
debug_annotation_names {
iid: 1
name: "name"
}
}
previous_packet_dropped: true
}

I read the code and I think the problem generate while you update perfetto:
NullTermStringView event_name = storage->GetString(name_id);
PERFETTO_DCHECK(event_name.data());
In LookupInternedMessage func, interned_data_ map can't find FieldId. Maybe InternedFieldMap initialization has problem.(because my trace packet has name : process_name but can't find it.)

Is it a bug? Or how can I fix it?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions