Attention is currently required from: Ben Hamilton, Mark Mentovai.
1 comment:
Patchset:
These 2 keys seem to be missing a lot. I guess it's valid to not have a LC_SOURCE_VERSION. I'm not sure why kThreadName is failing ( about 10x more than threadId -- which we somewhat expect since Crashpad iOS doesn't pause threads).
To view, visit change 4283479. To unsubscribe, or for help writing mail filters, visit settings.
Attention is currently required from: Justin Cohen, Mark Mentovai.
1 comment:
File snapshot/ios/thread_snapshot_ios_intermediate_dump.cc:
GetDataValueFromMap(thread_data, Key::kSuspendCount, &suspend_count_);
GetDataValueFromMap(thread_data, Key::kPriority, &priority_);
GetDataValueFromMap(thread_data, Key::kThreadID, &thread_id_);
GetDataValueFromMap(
thread_data, Key::kThreadDataAddress, &thread_specific_data_address_);
// This key is often missing.
GetDataStringFromMap(thread_data,
Key::kThreadName,
&thread_name_,
LogMissingDataValueFromMap::kDontLogIfMissing);
I suspect we'll always have some level of failure to get both basic and extended thread metadata, since the thread can always exit before we fetch the metadata.
One option is to not log at all for any of the thread-related keys here.
If the thread name in particular is often missing, that suggests either:
1) The call to `thread_info(thread, THREAD_EXTENDED_INFO, ...)` is failing at a high rate (which would be surprising to me), or
2) We have a huge backlog of intermediate dumps that predate the thread name feature which are repeatedly failing to convert to minidumps (also very surprising)
Do you have any other ideas of why this might be happening?
To view, visit change 4283479. To unsubscribe, or for help writing mail filters, visit settings.
Attention is currently required from: Ben Hamilton, Mark Mentovai.
1 comment:
File snapshot/ios/thread_snapshot_ios_intermediate_dump.cc:
GetDataValueFromMap(thread_data, Key::kSuspendCount, &suspend_count_);
GetDataValueFromMap(thread_data, Key::kPriority, &priority_);
GetDataValueFromMap(thread_data, Key::kThreadID, &thread_id_);
GetDataValueFromMap(
thread_data, Key::kThreadDataAddress, &thread_specific_data_address_);
// This key is often missing.
GetDataStringFromMap(thread_data,
Key::kThreadName,
&thread_name_,
LogMissingDataValueFromMap::kDontLogIfMissing);
I suspect we'll always have some level of failure to get both basic and extended thread metadata, si […]
What's strange is kThreadName fails 8x more than kThreadId. kThreadDataAddress, kPriority, kSuspendCount all seems to fail at a similar rate, although slightly less (70%) of kThreadID. I'd expect kThread stuff to fail all at the same rate.
see: https://screenshot.googleplex.com/AsjFyNmYgk2wGga
and without outliers: https://screenshot.googleplex.com/3oSSg2zGsyNXUGV
To view, visit change 4283479. To unsubscribe, or for help writing mail filters, visit settings.