Skip to content

[Due for payment 2026-05-07] [Due for payment 2025-10-31] [Due for payment 2025-10-27] Audit Memory Leaks #63979

Closed

Description

@mountiny

Coming from here

Background:

Some third party libraries used in App (like RNPerformance or Airship) set up app lifecycle listeners. Failure to cleanup these listeners on React Native instance destruction results in memory leaks (memory was allocated for the listeners but never released). Memory leaks can result in reduced performance and degraded app responsiveness over time.

Problem:

When navigating between OD and ND or reloading the Expensify App, many global listeners leak through RN instance destruction, which degrades app performance.

Solution:

We should:

  • Conduct a comprehensive audit of the app to find all the memory leaks we can. This includes profiling the app in different scenarios (reloading, navigating) to pinpoint exactly where leaks occur.
  • Implement fixes for each identified issue incrementally.
  • (optional) After solving all leaking scenarios, repeat the audit in 6 months to ensure no new memory leaks have been introduced.
Issue OwnerCurrent Issue Owner: @jjcoffee

Activity

  1. added
    BugSomething is broken. Auto assigns a BugZero manager.
    on Jun 11, 2025
  2. melvin-bot commented on Jun 11, 2025

    @melvin-bot

    Triggered auto assignment to @twisterdotcom (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.

  3. changed the title [-]Proposal - Audit Memory Leaks[/-] [+]Audit Memory Leaks[/+] on Jun 11, 2025
  4. melvin-bot commented on Jun 11, 2025

    @melvin-bot

    Current assignee @mjasikowski is eligible for the AutoAssignerNewDotQuality assigner, not assigning anyone new.

  5. mountiny commented on Jun 11, 2025

    @mountiny
    ContributorAuthor

    @mjasikowski will help move this ahead @WoLewicki

  6. mjasikowski commented on Jun 11, 2025

    @mjasikowski
    Contributor

    @WoLewicki I think you could start with running memory profiling across the main flows and we'll gradually expand from there. If you find anything suspicious, I'll create separate issues for these items.

  7. melvin-bot commented on Jun 17, 2025

    @melvin-bot

    @WoLewicki Huh... This is 4 days overdue. Who can take care of this?

  8. mjasikowski commented on Jun 17, 2025

    @mjasikowski
    Contributor

    @WoLewicki any progress here? Do you have an ETA for when this can be handled?

  9. WoLewicki commented on Jun 17, 2025

    @WoLewicki
    Contributor

    I will try to post in the coming days some of the issues I found on simply reloading the application after start-up without further navigation as those should be handled first.

  10. 121 remaining items

  11. changed the title [-][Due for payment 2025-10-27] Audit Memory Leaks[/-] [+][Due for payment 2025-10-31] [Due for payment 2025-10-27] Audit Memory Leaks[/+] on Oct 24, 2025
  12. melvin-bot commented on Oct 24, 2025

    @melvin-bot

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.2.37-8 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 2025-10-31. 🎊

    For reference, here are some details about the assignees on this issue:

    • @jjcoffee requires payment through NewDot Manual Requests
    • @WoLewicki does not require payment (Contractor)
    • @mateuuszzzzz does not require payment (Contractor)
  13. melvin-bot commented on Oct 24, 2025

    @melvin-bot

    @jjcoffee @twisterdotcom The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]

  14. jjcoffee commented on Oct 27, 2025

    @jjcoffee
    Contributor

    Just to note the PR I reviewed (#72341) is due payment today. cc @twisterdotcom

  15. twisterdotcom commented on Oct 27, 2025

    @twisterdotcom
    Contributor

    Payment Summary:

  16. trjExpensify commented on Oct 29, 2025

    @trjExpensify
    Contributor

    approved $250 for @jjcoffee

  17. changed the title [-][Due for payment 2025-10-31] [Due for payment 2025-10-27] Audit Memory Leaks[/-] [+][Due for payment 2026-05-07] [Due for payment 2025-10-31] [Due for payment 2025-10-27] Audit Memory Leaks[/+] on Apr 30, 2026
  18. melvin-bot commented on Apr 30, 2026

    @melvin-bot

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.3.64-31 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 2026-05-07. 🎊

    For reference, here are some details about the assignees on this issue:

    • @jjcoffee requires payment through NewDot Manual Requests
    • @WoLewicki does not require payment (Contractor)
    • @mateuuszzzzz does not require payment (Contractor)
  19. melvin-bot commented on Apr 30, 2026

    @melvin-bot

    @jjcoffee The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]

  20. jjcoffee commented on May 1, 2026

    @jjcoffee
    Contributor

    I've already been paid here 😄

  21. linhvovan29546 commented on May 4, 2026

    @linhvovan29546
    Contributor

    Checklist: The fix PR for this issue (https://github.com/Expensify/Mobile-Expensify/pull/13656) introduced a regression #79386 caused the Android app to get stuck on a splash screen when reopened via quick actions. We’ve applied the fix here https://github.com/Expensify/Mobile-Expensify/pull/13905

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

AutoAssignerNewDotQualityUsed to assign quality issues to engineersAwaiting PaymentAuto-added when associated PR is deployed to productionBugSomething is broken. Auto assigns a BugZero manager.DailyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions