[PLAT-6134] Fix inaccurate app.duration values #1014
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Goal
Fix the calculation of
app.duration
andapp.durationInForeground
when multiple calls tonotify()
are made.Changeset
The root cause was that each call to
bsg_kscrashstate_updateDurationStats()
was incrementing the duration by adding the time elapsed sinceappStateTransitionTime
.The fix is to make sure each call to
bsg_kscrashstate_updateDurationStats()
only adds the time elapsed since it was last called.To make this clearer,
appStateTransitionTime
has been renamed tolastUpdateDurationsTime
.The accuracy has also been improved - the values were previously being rounded to the nearest second.
Testing
Added an E2E scenario that can replicate the original issue, and verified that it now passes.