You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[HOLD for payment 2024-07-10] [HOLD for payment 2024-07-02] [HOLD for payment 2024-06-28] [HOLD for payment 2024-06-28] MEDIUM: Enable Function Symbolication for Detailed Performance Tracing #43649
Without symbols in our profile traces we can only guess which functions took so much time, based on the bottom-up stack (and try to manually map the amount of loops & internals to what we have in code).
Solution
Properly symbolicate the data in the performance profile feature into human-readable function names, line numbers, and file names so our team can identify the cause of slows in app.
Here's one from 1 day ago that I couldn't symbolicate myself against latest main (same on @hurali97's end). We don't know (yet) the git tag for the build so it's not possible to match it against a source map file manually either. Profile_trace_for_1.4.81-9.cpuprofile
And that's the same one after matching it against this branch:
Hey, Hanno from Margelo here. I will look into checking why we have no source maps using rn-release-profiler in expensify. Feel free to assign to me! 😊
The traces we record on the device are unsymbolicated. We need a way to symbolicate them. The flow would be:
A user shares a profile trace
A developer receives the trace
The developer runs a script to symbolicate it
We already have a script for symbolication in place. The issue however is that the profile the user created is specific to an app version. And the script only symbolicates for the current commit we are on.
Additionally, switching versions as developer just to symbolicate the trace is quite the overhead (as a new release build needs to be created).
So a better solution would be to:
Add a GitHub action that runs when we create a new release version and uploads it as artefact to the GitHub action workflow run (also for the staging app versions).
Update our script to:
Get the app version from the file name of the trace
Download the artefact from the GitHub action runs for that version
changed the title [-][HOLD for payment 2024-07-02] [HOLD for payment 2024-06-28] [HOLD for payment 2024-06-28] MEDIUM: Enable Function Symbolication for Detailed Performance Tracing[/-][+][HOLD for payment 2024-07-10] [HOLD for payment 2024-07-02] [HOLD for payment 2024-06-28] [HOLD for payment 2024-06-28] MEDIUM: Enable Function Symbolication for Detailed Performance Tracing[/+]on Jul 3, 2024
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.3-7 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
[@grgia] The PR that introduced the bug has been identified. Link to the PR:
[@grgia] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[@grgia] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[@hannojg] Determine if we should create a regression test for this bug.
[@hannojg] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[@greg-schroeder] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:
Activity
melvin-bot commentedon Jun 13, 2024
Triggered auto assignment to @grgia (
AutoAssignerNewDotQuality)muttmuure commentedon Jun 13, 2024
@grgia I think this is likely one that an agency contributor will need to take the lead on.
@Szymon20000 @adhorodyski can you give us a path forward on achieving symbolication in our current profile tracing?
adhorodyski commentedon Jun 13, 2024
@Szymon20000 as far as I remember the ones we used to receive with different bug reports were already symbolicated correctly.
Do you think anything could have changed in this regard lately for the
react-native-release-profiler?Here's one from 1 day ago that I couldn't symbolicate myself against latest
main(same on @hurali97's end). We don't know (yet) the git tag for the build so it's not possible to match it against a source map file manually either.Profile_trace_for_1.4.81-9.cpuprofile
And that's the same one after matching it against this branch:

hannojg commentedon Jun 17, 2024
Hey, Hanno from Margelo here. I will look into checking why we have no source maps using
rn-release-profilerin expensify. Feel free to assign to me! 😊hannojg commentedon Jun 17, 2024
The traces we record on the device are unsymbolicated. We need a way to symbolicate them. The flow would be:
We already have a script for symbolication in place. The issue however is that the profile the user created is specific to an app version. And the script only symbolicates for the current commit we are on.
Additionally, switching versions as developer just to symbolicate the trace is quite the overhead (as a new release build needs to be created).
So a better solution would be to:
I can help with implementing that.
grgia commentedon Jun 17, 2024
@hannojg, thanks for looking into this. Shall I assign you this one?
hannojg commentedon Jun 17, 2024
Yes please, I'd go ahead and create two PRs, that will:
hannojg commentedon Jun 17, 2024
Update for step 1 uploading the source maps:
So I will fix the existing system first
33 remaining items
melvin-bot commentedon Jul 1, 2024
Triggered auto assignment to @greg-schroeder (
Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.grgia commentedon Jul 1, 2024
closing as complete, reviews were internal
[-][HOLD for payment 2024-07-02] [HOLD for payment 2024-06-28] [HOLD for payment 2024-06-28] MEDIUM: Enable Function Symbolication for Detailed Performance Tracing[/-][+][HOLD for payment 2024-07-10] [HOLD for payment 2024-07-02] [HOLD for payment 2024-06-28] [HOLD for payment 2024-06-28] MEDIUM: Enable Function Symbolication for Detailed Performance Tracing[/+]melvin-bot commentedon Jul 3, 2024
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.3-7 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2024-07-10. 🎊
For reference, here are some details about the assignees on this issue:
melvin-bot commentedon Jul 3, 2024
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed: