{ "id": "171970", "key": "TIMOB-26239", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "20432", "name": "Release 8.0.1", "archived": false, "released": true, "releaseDate": "2019-05-15" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2019-04-23T18:28:39.000+0000", "created": "2018-07-26T09:02:38.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "cache", "engSchedule", "leak", "module", "require" ], "versions": [ { "id": "20115", "name": "Release 7.3.0", "archived": false, "released": true, "releaseDate": "2018-08-17" }, { "id": "20099", "name": "Release 7.2.0", "archived": false, "released": true, "releaseDate": "2018-06-14" } ], "issuelinks": [ { "id": "56697", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "171950", "key": "TIMOB-26225", "fields": { "summary": "Android: TableView leaks memory when overwriting \"data\" property", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2019-04-23T18:28:39.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "Steps to reproduce:\r\n1. Create application, put attached files in {{Resources}}\r\n2. Run {{ti build}} with {{--debug-host localhost:8990}}\r\n3. Open {{chrome-devtools://}} link in Chrome\r\n4. Resume script execution, wait for app load\r\n5. In memory tab, press \"Take snapshot\"\r\n6. In app press \"OPEN 2ND WINDOW\"\r\n7. In memory tab, press \"Take snapshot\"\r\n8. In app press \"OPEN 3RD WINDOW\"\r\n9. In memory tab, press \"Take snapshot\"\r\n10. In app press back button\r\n11. In memory tab, press \"Take snapshot\"\r\n12. In app press back button\r\n13. In memory tab, press \"Take snapshot\"\r\n\r\nNow you got five snapshots.\r\n1. Select \"Snapshot 2\"\r\n2. Change \"Summary\" to \"Comparison\", put \"Window\" in \"Class filter\"\r\n3. Expand \"Window\", observe one new \"Window\" instance, remember @id\r\n4. Select \"Snapshot 5\", put \"Window\" in \"Class filter\"\r\n5. Expand \"Window\", observe three instance of \"Window\"\r\n6. Select \"Window\" instance with @id from (3)\r\n7. Observe \"Retainers\" below", "attachment": [ { "id": "65386", "filename": "0001-Android-fix-Ti.UI.currentWindow-leak.patch", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2018-07-26T09:47:01.000+0000", "size": 3585, "mimeType": "text/x-patch" }, { "id": "65384", "filename": "app.js", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2018-07-26T08:57:07.000+0000", "size": 276, "mimeType": "application/javascript" }, { "id": "65383", "filename": "win2.js", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2018-07-26T08:57:07.000+0000", "size": 333, "mimeType": "application/javascript" }, { "id": "65382", "filename": "win3.js", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2018-07-26T08:57:07.000+0000", "size": 339, "mimeType": "application/javascript" } ], "flagged": false, "summary": "Android: Window leak in Ti.UI.currentWindow", "creator": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "subtasks": [], "reporter": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "environment": null, "closedSprints": [ { "id": 1073, "state": "closed", "name": "2018 Sprint 19 SDK", "startDate": "2018-09-09T21:02:56.422Z", "endDate": "2018-09-23T21:02:00.000Z", "completeDate": "2018-09-23T22:28:10.932Z", "originBoardId": 114 }, { "id": 1093, "state": "closed", "name": "2018 Sprint 23", "startDate": "2018-11-04T23:35:52.006Z", "endDate": "2018-11-18T23:35:00.000Z", "completeDate": "2018-11-19T05:30:34.338Z", "originBoardId": 114 }, { "id": 1078, "state": "closed", "name": "2018 Sprint 20 SDK", "startDate": "2018-09-23T16:57:58.349Z", "endDate": "2018-10-07T16:57:00.000Z", "completeDate": "2018-10-07T23:31:40.476Z", "originBoardId": 114 }, { "id": 1095, "state": "closed", "name": "2018 Sprint 24", "startDate": "2018-11-19T05:35:58.310Z", "endDate": "2018-12-03T05:35:00.000Z", "completeDate": "2018-12-03T16:28:57.549Z", "originBoardId": 114 }, { "id": 1065, "state": "closed", "name": "2016 Sprint 17 SDK", "startDate": "2018-08-13T17:39:36.846Z", "endDate": "2018-08-27T17:39:00.000Z", "completeDate": "2018-08-29T16:10:57.013Z", "originBoardId": 114 }, { "id": 1084, "state": "closed", "name": "2018 Sprint 21", "startDate": "2018-10-07T23:32:40.560Z", "endDate": "2018-10-21T23:32:00.000Z", "completeDate": "2018-10-21T23:19:05.460Z", "originBoardId": 114 }, { "id": 1070, "state": "closed", "name": "2018 Sprint 18 SDK", "startDate": "2018-08-26T16:14:35.297Z", "endDate": "2018-09-09T16:14:00.000Z", "completeDate": "2018-09-11T20:59:21.495Z", "originBoardId": 114 }, { "id": 1088, "state": "closed", "name": "2018 Sprint 22", "startDate": "2018-10-21T23:20:52.653Z", "endDate": "2018-11-04T23:20:00.000Z", "completeDate": "2018-11-04T23:29:59.423Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "439493", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "body": "In summary: first {{require}} (once for each module) cause enclosuring current \"Window\" in \"Ti.UI.currentWindow\" which persist in context of this module. Since modules are cached this means that this \"Window\" (and all its children) will not be collected by gc. \r\n\r\nSame goes for \"Ti.UI.currentActivity\".", "updateAuthor": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2018-07-26T09:23:16.000+0000", "updated": "2018-07-26T09:23:16.000+0000" }, { "id": "439494", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "The {{Ti.UI.currentWindow}} property has been removed since 6.0.0, but I assume you mean the general window scope? cc [~jquick]", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-07-26T09:56:27.000+0000", "updated": "2018-07-26T09:56:27.000+0000" }, { "id": "439497", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "body": ">The Ti.UI.currentWindow property has been removed since 6.0.0\r\nIt is still there for android, look at the patch in attachments.", "updateAuthor": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2018-07-26T10:28:08.000+0000", "updated": "2018-07-26T10:28:08.000+0000" }, { "id": "439498", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "I see! But shouldn't it be removed there as well? I see that your PR might do exactly that (not an Android pro here) :-)", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-07-26T10:33:35.000+0000", "updated": "2018-07-26T10:33:35.000+0000" }, { "id": "439511", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This is something we're already actively looking into. Pleas see the below.\r\nhttps://github.com/appcelerator/titanium_mobile/pull/10195\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-07-26T16:38:38.000+0000", "updated": "2018-07-26T16:38:38.000+0000" }, { "id": "439537", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "body": "It's good to know, but actually that PR does not cover this case. Leak is in {{titanium.js}} and not in java side.", "updateAuthor": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2018-07-27T13:42:14.000+0000", "updated": "2018-07-27T13:42:14.000+0000" }, { "id": "440538", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "body": "bq. Status: RESOLVED\r\nThe PR that Joshua mentioned above and both PRs labeled as \"TIMOB-26239\" are not related to this issue.", "updateAuthor": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2018-08-07T08:49:26.000+0000", "updated": "2018-08-07T08:49:26.000+0000" }, { "id": "440684", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "body": "Hello everyone.\r\nJust trying to say that nothing has been done yet to address this issue.\r\n\r\nP.S. \"User mention\" feature seems not working (or disabled for me), hope Joshua Quick and Gary Mathews will receive notification anyway.", "updateAuthor": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2018-08-13T09:17:30.000+0000", "updated": "2018-08-13T09:17:30.000+0000" }, { "id": "440805", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We'll re-look into this later. For now, we're rolling with what we've got for 7.3.0 since it has full Android 8 support and targeting it is currently required by Google Play.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-08-15T21:59:22.000+0000", "updated": "2018-08-15T21:59:22.000+0000" }, { "id": "446538", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "body": "https://github.com/appcelerator/titanium_mobile/pull/10749", "updateAuthor": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2019-03-05T10:18:50.000+0000", "updated": "2019-03-05T10:18:50.000+0000" }, { "id": "447065", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "8_0_X: https://github.com/appcelerator/titanium_mobile/pull/10792", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-03-21T21:23:59.000+0000", "updated": "2019-03-21T21:23:59.000+0000" }, { "id": "447351", "author": { "name": "kmahalingam", "key": "kmahalingam", "displayName": "Keerthi Mahalingam", "active": false, "timeZone": "America/Los_Angeles" }, "body": "FR Passed. waiting for resolving jenkin test failure to merge.", "updateAuthor": { "name": "kmahalingam", "key": "kmahalingam", "displayName": "Keerthi Mahalingam", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-03-28T19:16:20.000+0000", "updated": "2019-03-28T19:16:20.000+0000" }, { "id": "447448", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Merged to 8_0_X and master", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2019-04-03T14:14:55.000+0000", "updated": "2019-04-03T14:14:55.000+0000" }, { "id": "447916", "author": { "name": "kmahalingam", "key": "kmahalingam", "displayName": "Keerthi Mahalingam", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix on SDK 8.1.0.v20190423074844 and 8.0.1.v20190418104938. works as expected.Closing\r\n{code}\r\nName = Mac OS X\r\n Version = 10.13.6\r\nNode.js\r\n Node.js Version = 8.9.1\r\n npm Version = 5.5.1\r\nTitanium CLI\r\n CLI Version = 5.1.1\r\nAppc cli =7.0.11-70X.1\r\nDevice = one plus 5t android 9\r\nEmulator =pixel android 8\r\nTitanium SDK{code}", "updateAuthor": { "name": "kmahalingam", "key": "kmahalingam", "displayName": "Keerthi Mahalingam", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-04-23T18:28:24.000+0000", "updated": "2019-04-23T18:28:24.000+0000" } ], "maxResults": 14, "total": 14, "startAt": 0 } } }