emberjs / emberjs/ember-jquery

Container instances retained in memory after installing addon

Open
#349 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
17
Forks
8
PR merge metrics
No merged PRs in 30d

Description

I have been investigating a memory leak in one of our apps and I’ve noticed that as soon as I add `@ember/jquery` to a new ember project, I start to see tons of `Container` instances retained in memory after running tests.

**Steps to reproduce:**
1. `ember new leak-test` _(ember-cli: 3.27.0, node: 14.17.0)_
2. `cd leak-test; ember install @ember/jquery`
3. create an integration test that just renders a simple string
4. `ember serve`
5. open up http://localhost:4200/tests, let tests finish running and check the heap snapshot using Chrome’s DevTools

Here’s the test snippet I used for step 3:

```js
// tests/integration/leak-test.js
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render } from '@ember/test-helpers';
import hbs from 'htmlbars-inline-precompile';

module('Leak', function (hooks) {
setupRenderingTest(hooks);
for (let i = 0; i < 10; i++) {
test(`test ${i}`, async function (assert) {
await render(hbs`Hi`);
assert.ok(true);
});
}
});
```

With `@ember/jquery` installed, I’m seeing one retained `Container` instance per test that has been executed (i.e. 10 instances using the snippet above). If I simply remove `@ember/jquery`, only one `Container` instance is retained.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.