-
Notifications
You must be signed in to change notification settings - Fork 350
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue while loading long trace files in trace_processor #456
Comments
Do you have a repro trace to share? This doesn't repro with any large trace I have. |
Hi @LalitMaganti Thank you for the fast response. Unfortunately I cannot share the trace as much as i want to, because it contains confidential stuff. But here is a stack trace of the error with debug symbols on. Does this help ? I can help you with other things, please let me know.
|
Trace processor is built with debug symbols on the latest commit 52366ac |
Without the trace, I can simply guess at what the problem is. I've sent https://android-review.git.corp.google.com/c/platform/external/perfetto/+/2457489 to try to fix this. Would appreciate your help in checking if this works. |
Hi @LalitMaganti Thank you for the quick update. I am not able to access this link as it appears to be a google internal link. Can you please help me out with a public link. Id be happy to help test it. Thanks. |
Actually https://android-review.googlesource.com/c/platform/external/perfetto/+/2457489 appears to be working - I copied this from the old issue and changed the number - Let me try this |
This was amazing...! @LalitMaganti You are awesome....!!! It worked. Now I am able to load all the traces..! |
Seems like for large non-proto traces, because we do not have compression, the total memory managed by the BumpAllocator can exceed 4GB. Because of this, make all the allocator ids 60 bits instead of 32. This ends up having to allocate 8 extra bytes per TracePacketData/TrackEventData for the packet size but to avoid significantly increasing the complexity, it's fine for now. If we see these 8 extra bytes are a big problem, we can revisit this. Bug: #456 Change-Id: Id75a0aa331e1ca60e73530efa50e75743f780945
Hi this is a follow up to issue 435. I was able to move past the earlier error on a large trace file but now run into this. @LalitMaganti Can you please take a look ? I would be really grateful.
`[232.452] ing_trace_parser.cc:110 Fuchsia trace detected
[411.819] bump_allocator.cc:68 PERFETTO_CHECK(LastChunkIndex() < kMaxChunkCount) (errno: 0, Undefined error: 0)
-----BEGIN PERFETTO PRE-CRASH LOG-----
trace_uuid: 00000000-0000-0000-d919-7e42f24
[232.452] ing_trace_parser.cc:110 Fuchsia trace detected
[411.819] bump_allocator.cc:68 PERFETTO_CHECK(LastChunkIndex() < kMaxChunkCount) (errno: 0, Undefined error: 0)
-----END PERFETTO PRE-CRASH LOG-----
------------------ BEGINNING OF CRASH ------------------
Signal: Illegal instruction (possibly unaligned access)
Fault addr: 000000010AE8B610
Backtrace:
#00 _sigtramp
#1 perfetto::trace_processor::BumpAllocator::Alloc(unsigned int)
#2 perfetto::trace_processor::TraceTokenBuffer::AllocAndResizeInternedVectors(unsigned int)
#3 perfetto::trace_processor::TraceTokenBuffer::Id perfetto::trace_processor::TraceTokenBuffer::Appendperfetto::trace_processor::FuchsiaRecord(perfetto::trace_processor::FuchsiaRecord)
#4 perfetto::trace_processor::TraceSorter::PushFuchsiaRecord(long long, perfetto::trace_processor::FuchsiaRecord)
#5 perfetto::trace_processor::FuchsiaTraceTokenizer::ParseRecord(perfetto::trace_processor::TraceBlobView)
#6 perfetto::trace_processor::FuchsiaTraceTokenizer::Parse(perfetto::trace_processor::TraceBlobView)
#7 perfetto::trace_processor::ForwardingTraceParser::Parse(perfetto::trace_processor::TraceBlobView)
#8 perfetto::trace_processor::TraceProcessorStorageImpl::Parse(perfetto::trace_processor::TraceBlobView)
#9 perfetto::trace_processor::TraceProcessorImpl::Parse(perfetto::trace_processor::TraceBlobView)
#0A perfetto::trace_processor::ReadTraceUnfinalized(perfetto::trace_processor::TraceProcessor*, char const*, std::__1::function<void (unsigned long long)> const&)
#0B perfetto::trace_processor::(anonymous namespace)::LoadTrace(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, double*)
#0C perfetto::trace_processor::(anonymous namespace)::TraceProcessorMain(int, char**)
#0D main
#0E start
------------------ END OF CRASH ------------------
Illegal instruction
`
The text was updated successfully, but these errors were encountered: