-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
fix(sortable): unsubscribe item capture when component is destroyed #6546
base: development
Are you sure you want to change the base?
fix(sortable): unsubscribe item capture when component is destroyed #6546
Conversation
Unsubscribed subscription in sortable component was causing memory to leak. We need to ensure all subscriptions are released whenever a component is destroyed.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## development #6546 +/- ##
===============================================
- Coverage 76.60% 76.59% -0.01%
===============================================
Files 317 317
Lines 10748 10754 +6
Branches 2866 2866
===============================================
+ Hits 8233 8237 +4
- Misses 2514 2516 +2
Partials 1 1
... and 5 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
bump @valorkin |
@lexasq Does this PR need any update on my part? :) |
@Arooba-git thanks for your contribution, this PR definitely caught my eye to have a better look. No actions needed on your part, we appreciate your help to make this lib better! |
Hello 👋
As part of our project, we are using Facebook's new Memlab tool to detect memory leaks in SPA applications.
While running the tool and analyzing the code of ngx-bootstrap, we saw that your project does a very good job of ensuring that all async operations are cancelled when the component unmounts. However, as per Memlab execution results, we found a dangling subscription that was causing the memory to leak (screenshots below).
[before]
Hence we added the fix by unsubscribing the subscription and you can see the heap size and # of leaks reducing noticeably:
As per the contribution guidelines, we ran the unit test cases; NX successfully ran the target tests for 24 projects.
You can analyze this and other potential leak sources, if you like, by running Memlab with a scenario file covering the maximum # of use cases.
Following is a sample of the scenario file we used (it needs to be a .js file but attaching here in .txt form):
ngx-test-scenario-memlab.txt
Note that some other reported leaks (in Memlab) originated from Storybook, hence were ignored.