{ "id": "171416", "key": "TIMOB-25910", "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": "20115", "name": "Release 7.3.0", "archived": false, "released": true, "releaseDate": "2018-08-17" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2018-06-19T13:45:20.000+0000", "created": "2018-03-28T11:48:07.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2018-07-09T20:21:10.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": "h6.Reproduce steps\r\n1. Run the attached simple Alloy app. (Just an Alloy project that opens a modal window which has a TableView with rows containing Textfields. )\r\n2. Click the \"Open Window\" \r\n3. Hit the Android \"back\" button to dismiss the window with the tableview textfield rows \r\n4. Repeat steps 2 & 3 repeatedly until you start seeing messages such as the following: \r\n{code}\r\n[INFO] : zygote64: Background concurrent copying GC freed 302993(13MB) AllocSpace objects, 31(496KB) LOS objects, 44% free, 30MB/54MB, paused 214us total 258.736ms\r\n{code}\r\nAttached screenshot for that as well.", "attachment": [ { "id": "65005", "filename": "index.js", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2018-03-28T11:49:51.000+0000", "size": 140, "mimeType": "text/javascript" }, { "id": "65003", "filename": "index.xml", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2018-03-28T11:49:42.000+0000", "size": 100, "mimeType": "text/xml" }, { "id": "65006", "filename": "ListViewPage.js", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2018-03-28T11:49:52.000+0000", "size": 260, "mimeType": "text/javascript" }, { "id": "65004", "filename": "ListViewPage.xml", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2018-03-28T11:49:42.000+0000", "size": 95, "mimeType": "text/xml" }, { "id": "65002", "filename": "MemLeak3.png", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2018-03-28T11:48:06.000+0000", "size": 523047, "mimeType": "image/png" } ], "flagged": false, "summary": "Android: Memory leak when using TextFields in TableView rows", "creator": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "subtasks": [], "reporter": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "environment": "SDK 7.0.1.GA\r\n\r\nAndroid: Nexus 6P \r\nSDK Version = 8.0.0 (android-26) \r\nABIs = arm64-v8a, armeabi-v7a, armeabi", "closedSprints": [ { "id": 1028, "state": "closed", "name": "2018 Sprint 09 SDK", "startDate": "2018-04-22T22:53:08.928Z", "endDate": "2018-05-06T22:53:00.000Z", "completeDate": "2018-05-07T00:02:15.883Z", "originBoardId": 114 }, { "id": 1045, "state": "closed", "name": "2018 Sprint 13 SDK", "startDate": "2018-06-17T20:47:13.621Z", "endDate": "2018-07-01T20:47:00.000Z", "completeDate": "2018-07-02T18:40:05.029Z", "originBoardId": 114 }, { "id": 1034, "state": "closed", "name": "2018 Sprint 10 SDK", "startDate": "2018-05-07T00:03:21.636Z", "endDate": "2018-05-21T00:03:00.000Z", "completeDate": "2018-05-20T20:54:58.928Z", "originBoardId": 114 }, { "id": 1035, "state": "closed", "name": "2018 Sprint 11 SDK", "startDate": "2018-05-20T20:57:43.542Z", "endDate": "2018-06-03T20:57:00.000Z", "completeDate": "2018-06-04T15:13:14.425Z", "originBoardId": 114 }, { "id": 1039, "state": "closed", "name": "2018 Sprint 12 SDK", "startDate": "2018-06-03T15:22:23.401Z", "endDate": "2018-06-17T15:22:00.000Z", "completeDate": "2018-06-18T20:45:36.363Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "436573", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "body": "Any update?", "updateAuthor": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2018-04-06T12:09:59.000+0000", "updated": "2018-04-06T12:09:59.000+0000" }, { "id": "437893", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~sliang] What is the customer name here?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-05-23T19:39:52.000+0000", "updated": "2018-05-23T19:39:52.000+0000" }, { "id": "437897", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This is not a memory leak, the messages are routine logs from the GC after doing a cleanup.\r\n\r\nIf after running for some time, the customers app crashes with an {{Out of memory}} exception, then I would consider that a memory leak or mismanagement of memory.", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-05-23T20:54:53.000+0000", "updated": "2018-05-23T20:54:53.000+0000" }, { "id": "437910", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "body": "[~gmathews]\r\n\r\nUsing the example code and repeat 2&3 steps, the app will crash eventually. It might take 5 -10 mins to repeat those steps. \r\nbut customer confirmed that app will crash for sure. ", "updateAuthor": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2018-05-24T12:15:29.000+0000", "updated": "2018-05-24T12:18:11.000+0000" }, { "id": "438001", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "*TEST CASE*\r\n{code:js}\r\nconst root = Ti.UI.createWindow({ backgroundColor: 'gray' }),\r\n btn = Ti.UI.createButton({ title: 'OPEN TABLE WINDOW' });\r\n\r\nbtn.addEventListener('click', () => {\r\n const win = Ti.UI.createWindow({ backgroundColor: 'red' }),\r\n tableView = Ti.UI.createTableView();\r\n\r\n let rows = [];\r\n\r\n for (let i = 0; i < 64; i++) {\r\n \tconst row = Ti.UI.createTableViewRow();\r\n \tconst textField = Ti.UI.createTextField();\r\n\r\n \trow.add(textField);\r\n \trows.push(row);\r\n }\r\n\r\n tableView.data = rows;\r\n\r\n win.add(tableView);\r\n win.open();\r\n});\r\n\r\nroot.add(btn);\r\nroot.open();\r\n{code}", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-05-29T23:37:18.000+0000", "updated": "2018-05-29T23:37:18.000+0000" }, { "id": "438025", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master: https://github.com/appcelerator/titanium_mobile/pull/10081", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-05-30T17:20:43.000+0000", "updated": "2018-05-30T17:20:43.000+0000" }, { "id": "438047", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Here's the builds for {{7_1_0}}\r\nhttps://jenkins.appcelerator.org/blue/organizations/jenkins/titanium-sdk%2Ftitanium_mobile/detail/7_1_0-TIMOB-25910/3/artifacts", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-06-01T02:32:10.000+0000", "updated": "2018-06-01T02:32:10.000+0000" }, { "id": "439062", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix in SDK 7.4.0.v20180709112648 & 7.3.0.v20180703051211.\r\nClosing.\r\n\r\nStudio Ver: 5.1.0.201806291005\r\nOS Ver: 4.2.13\r\nXcode Ver: 7.0.4\r\nAppc NPM: 1.1.3\r\nAppc CLI: 10.13.5\r\nDaemon Ver: Xcode 9.4.1\r\nTi CLI Ver: 5.1.1\r\nAlloy Ver: 1.12.0\r\nNode Ver: 8.9.1\r\nNPM Ver: 5.5.1\r\nJava Ver: 1.8.0_131\r\nDevices: ⇨ google Nexus 5 --- Android 6.0.1\r\n ⇨ google Nexus 6P --- Android 8.1.0\r\nEmulator: ⇨ Android 4.1.2\r\n", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-07-09T20:21:04.000+0000", "updated": "2018-07-09T20:21:04.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }