{ "id": "173822", "key": "TIMOB-27207", "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": "20884", "name": "Release 8.2.1", "archived": false, "released": true, "releaseDate": "2019-10-25" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2019-10-15T11:11:11.000+0000", "created": "2019-06-28T14:06:11.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [ { "id": "19882", "name": "Release 8.0.0", "archived": false, "released": true, "releaseDate": "2019-03-14" }, { "id": "20432", "name": "Release 8.0.1", "archived": false, "released": true, "releaseDate": "2019-05-15" } ], "issuelinks": [ { "id": "58390", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "outwardIssue": { "id": "174450", "key": "TIMOB-27875", "fields": { "summary": "iOS: Crash on TiUIListItem.m line 579", "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": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2020-06-02T01:29:26.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": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "Old table row references are not cleared when calling *tableView.setData(rows)*.\r\n\r\nIn a production app running SDK 7.4.1.GA this is causing serious memory issues. Because the row structure is quite complex, it's important that old rows are completely cleaned from memory before new ones are set.\r\n\r\nWe've been able to reproduce this issue in a example application for multiple SDK's (8.0.0.GA, 7.4.1.GA, 8.0.1.GA). As demonstrated in the attached video you can see that the objects are not cleared from memory. The source code for the app running in the video has also been attached to this issue.\r\n\r\nWe've tried calling `$.off();$.destroy();` on the `controllers/imagerow` controller, this does not destroy the proxies.\r\n\r\n", "attachment": [ { "id": "66730", "filename": "app.zip", "author": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-06-28T13:57:18.000+0000", "size": 8445019, "mimeType": "application/zip" }, { "id": "67049", "filename": "Findings for TIMOB-27207.pdf", "author": { "name": "ssaddique", "key": "ssaddique", "displayName": "Sohail Saddique", "active": true, "timeZone": "Europe/London" }, "created": "2019-10-10T12:05:46.000+0000", "size": 68678, "mimeType": "application/pdf" }, { "id": "66731", "filename": "invalid-references.mov", "author": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-06-28T13:56:49.000+0000", "size": 1371563, "mimeType": "video/quicktime" }, { "id": "66752", "filename": "memleak8.0.2.GA.mp4", "author": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-03T08:41:25.000+0000", "size": 354404, "mimeType": "video/mp4" }, { "id": "66753", "filename": "Memory Leak Monitoring.mov", "author": { "name": "nsalahin", "key": "nsalahin", "displayName": "Nazmus Salahin", "active": true, "timeZone": "Asia/Dhaka" }, "created": "2019-07-04T05:23:41.000+0000", "size": 6690669, "mimeType": "video/quicktime" } ], "flagged": false, "summary": "TableView / TableViewRow memory leak", "creator": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "environment": " {\r\n \"os\": {\r\n \"name\": \"Mac OS X\",\r\n \"version\": \"10.14.5\",\r\n \"architecture\": \"64bit\",\r\n \"numcpus\": 8,\r\n \"memory\": 17179869184\r\n },\r\n \"node\": {\r\n \"version\": \"10.15.1\"\r\n },\r\n \"npm\": {\r\n \"version\": \"6.9.0\"\r\n },\r\n \"titanium\": {\r\n \"8.1.0.v20190313110656\": {\r\n \"version\": \"8.1.0\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/8.1.0.v20190313110656\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\"\r\n ],\r\n \"githash\": \"ef3995b\",\r\n \"timestamp\": \"3/13/2019 18:12\",\r\n \"nodeAppcVer\": \"0.2.47\"\r\n },\r\n \"8.0.1.v20190408125832\": {\r\n \"version\": \"8.0.1\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/8.0.1.v20190408125832\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\"\r\n ],\r\n \"githash\": \"ded78d1af4\",\r\n \"nodeAppcVer\": \"0.2.47\"\r\n },\r\n \"8.0.1.v20190318134648\": {\r\n \"version\": \"8.0.1\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/8.0.1.v20190318134648\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\"\r\n ],\r\n \"githash\": \"ce43153f60\",\r\n \"nodeAppcVer\": \"0.2.47\"\r\n },\r\n \"8.0.1.GA\": {\r\n \"version\": \"8.0.1\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/8.0.1.GA\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\"\r\n ],\r\n \"githash\": \"c4f6f25c7d\",\r\n \"nodeAppcVer\": \"0.2.47\"\r\n },\r\n \"8.0.0.GA\": {\r\n \"version\": \"8.0.0\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/8.0.0.GA\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\"\r\n ],\r\n \"githash\": \"3726240fa2\",\r\n \"nodeAppcVer\": \"0.2.47\"\r\n },\r\n \"7.5.2.GA\": {\r\n \"version\": \"7.5.2\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/7.5.2.GA\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\"\r\n ],\r\n \"githash\": \"31f9aa4\",\r\n \"timestamp\": \"4/2/2019 17:36\",\r\n \"nodeAppcVer\": \"0.2.47\"\r\n },\r\n \"7.5.1.GA\": {\r\n \"version\": \"7.5.1\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/7.5.1.GA\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\"\r\n ],\r\n \"githash\": \"4b82d9d6b2\",\r\n \"timestamp\": \"2/25/2019 23:48\",\r\n \"nodeAppcVer\": \"0.2.47\"\r\n },\r\n \"7.5.0.GA\": {\r\n \"version\": \"7.5.0\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/7.5.0.GA\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\"\r\n ],\r\n \"githash\": \"2e5a7423d0\",\r\n \"timestamp\": \"11/15/2018 21:52\",\r\n \"nodeAppcVer\": \"0.2.47\"\r\n },\r\n \"7.4.1.GA\": {\r\n \"version\": \"7.4.1\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/7.4.1.GA\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\"\r\n ],\r\n \"githash\": \"f47cf79a83\",\r\n \"timestamp\": \"10/8/2018 17:44\",\r\n \"nodeAppcVer\": \"0.2.45\"\r\n },\r\n \"7.1.1.GA\": {\r\n \"version\": \"7.1.1\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/7.1.1.GA\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\"\r\n ],\r\n \"githash\": \"1708b2d\",\r\n \"timestamp\": \"4/19/2018 18:20\",\r\n \"nodeAppcVer\": \"0.2.45\"\r\n },\r\n \"6.3.1.v20180111080500\": {\r\n \"version\": \"6.3.1\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/6.3.1.v20180111080500\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\",\r\n \"mobileweb\"\r\n ],\r\n \"githash\": \"c704320\",\r\n \"timestamp\": \"1/11/2018 16:12\",\r\n \"nodeAppcVer\": \"0.2.43\"\r\n },\r\n \"6.3.0.GA\": {\r\n \"version\": \"6.3.0\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/6.3.0.GA\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\",\r\n \"mobileweb\"\r\n ],\r\n \"githash\": \"3620088\",\r\n \"timestamp\": \"11/1/2017 01:20\",\r\n \"nodeAppcVer\": \"0.2.43\"\r\n },\r\n \"6.2.2.GA\": {\r\n \"version\": \"6.2.2\",\r\n \"path\": \"/Users/vdlp/Library/Application Support/Titanium/mobilesdk/osx/6.2.2.GA\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\",\r\n \"mobileweb\"\r\n ],\r\n \"githash\": \"42c7196\",\r\n \"timestamp\": \"9/19/2017 23:07\",\r\n \"nodeAppcVer\": \"0.2.43\"\r\n }\r\n },\r\n \"titaniumCLI\": {\r\n \"version\": \"5.1.1\",\r\n \"nodeAppcVer\": \"0.2.44\",\r\n \"selectedSDK\": \"8.0.0.GA\"\r\n },\r\n \"osx\": {\r\n \"title\": \"\",\r\n \"clitools\": {\r\n \"installed\": true,\r\n \"issues\": []\r\n }\r\n },\r\n \"haxm\": {\r\n \"compatible\": true,\r\n \"installed\": false,\r\n \"memlimit\": null\r\n },\r\n \"jdk\": {\r\n \"jdks\": {\r\n \"1.8.0_201\": {\r\n \"home\": \"/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home\",\r\n \"version\": \"1.8.0\",\r\n \"build\": \"201\",\r\n \"executables\": {\r\n \"java\": \"/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/java\",\r\n \"javac\": \"/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/javac\",\r\n \"keytool\": \"/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/keytool\",\r\n \"jarsigner\": \"/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/jarsigner\"\r\n },\r\n \"architecture\": \"64bit\"\r\n }\r\n },\r\n \"home\": \"/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home\",\r\n \"version\": \"1.8.0\",\r\n \"build\": \"201\",\r\n \"executables\": {\r\n \"java\": \"/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/java\",\r\n \"javac\": \"/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/javac\",\r\n \"keytool\": \"/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/keytool\",\r\n \"jarsigner\": \"/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/jarsigner\"\r\n },\r\n \"issues\": [],\r\n \"architecture\": \"64bit\"\r\n },\r\n \"genymotion\": {\r\n \"executables\": {\r\n \"genymotion\": null,\r\n \"player\": null,\r\n \"vboxmanage\": null\r\n },\r\n \"home\": null,\r\n \"avds\": [],\r\n \"issues\": [],\r\n \"tisdk\": \"8.0.0.GA\"\r\n },\r\n \"appcCLI\": {\r\n \"installer\": {\r\n \"version\": \"4.2.13\"\r\n },\r\n \"corepackage\": {\r\n \"version\": \"7.0.10\"\r\n }\r\n }\r\n }", "closedSprints": [ { "id": 1160, "state": "closed", "name": "2019 Sprint 17", "startDate": "2019-08-12T07:59:28.950Z", "endDate": "2019-08-25T07:59:00.000Z", "completeDate": "2019-08-26T15:35:29.980Z", "originBoardId": 114 }, { "id": 1161, "state": "closed", "name": "2019 Sprint 18", "startDate": "2019-08-26T21:46:26.269Z", "endDate": "2019-09-08T21:46:00.000Z", "completeDate": "2019-09-09T20:39:58.761Z", "originBoardId": 114 }, { "id": 1163, "state": "closed", "name": "2019 Sprint 19", "startDate": "2019-09-09T20:43:13.091Z", "endDate": "2019-09-22T20:43:00.000Z", "completeDate": "2019-09-23T15:37:35.874Z", "originBoardId": 114 }, { "id": 1165, "state": "closed", "name": "2019 Sprint 20", "startDate": "2019-09-23T15:38:43.949Z", "endDate": "2019-10-06T15:38:00.000Z", "completeDate": "2019-10-07T18:33:11.953Z", "originBoardId": 114 }, { "id": 1168, "state": "closed", "name": "2019 Sprint 21", "startDate": "2019-10-07T18:35:57.052Z", "endDate": "2019-10-20T18:35:00.000Z", "completeDate": "2019-10-21T15:38:00.182Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "449490", "author": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~menzo],\r\nThanks for sharing with us. Are you experiencing this for both iOS and android platform?", "updateAuthor": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-06-29T05:40:21.000+0000", "updated": "2019-06-29T05:40:21.000+0000" }, { "id": "449501", "author": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Currently testing this on iOS. Not sure how to accurately profile Android.\r\n\r\nFor our production app, the memory issues also occur on Android.", "updateAuthor": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-01T06:49:48.000+0000", "updated": "2019-07-01T06:49:48.000+0000" }, { "id": "449579", "author": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Any updates on this? :)", "updateAuthor": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-03T06:52:53.000+0000", "updated": "2019-07-03T06:52:53.000+0000" }, { "id": "449580", "author": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~menzo],\r\nThanks for your feedback. Can you please test this on 8.0.2.GA and let us know the results?", "updateAuthor": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-07-03T08:10:55.000+0000", "updated": "2019-07-03T08:10:55.000+0000" }, { "id": "449581", "author": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We've already tested this on 8.0.2.GA. Same issues, the Proxy's are not removed.", "updateAuthor": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-03T08:28:56.000+0000", "updated": "2019-07-03T08:29:18.000+0000" }, { "id": "449582", "author": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "body": " [^memleak8.0.2.GA.mp4] ", "updateAuthor": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-03T08:41:31.000+0000", "updated": "2019-07-03T08:41:31.000+0000" }, { "id": "449588", "author": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~menzo],\r\nAre you experiencing the same behaviour also in device also? Can you please check that?", "updateAuthor": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-07-03T10:05:20.000+0000", "updated": "2019-07-03T10:05:20.000+0000" }, { "id": "449589", "author": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Yes.", "updateAuthor": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-03T10:06:28.000+0000", "updated": "2019-07-03T10:06:28.000+0000" }, { "id": "449616", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (master): https://github.com/appcelerator/titanium_mobile/pull/11028\r\nPR (8_1_X): https://github.com/appcelerator/titanium_mobile/pull/11029\r\n\r\n[~menzo], you may want to try this line before you update {{table.data}} as a workaround:\r\n\r\n{code:js}\r\ntable.data.forEach(s => s.rows.forEach(r => r));\r\ntable.data = yourTableData;\r\n{code}", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-07-05T11:36:03.000+0000", "updated": "2019-07-05T11:36:03.000+0000" }, { "id": "449626", "author": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~menzo],\r\n\r\nHope you are doing fine today. \r\nWould you please reply us regarding previous reviews? We are looking forward to your response.\r\n", "updateAuthor": { "name": "rmitro", "key": "rmitro", "displayName": "Rakhi Mitro", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-07-07T04:39:33.000+0000", "updated": "2019-07-07T04:39:33.000+0000" }, { "id": "449631", "author": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Fix suggested by Jan doesn't work on *7.4.1.GA* & *8.0.2.GA*\r\n\r\n{code:javascript}\r\ntable.data.forEach(s => s.rows.forEach(r => r));\r\ntable.data = yourTableData;\r\n{code}\r\n\r\nOur app is running on 7.4 so upgrading to 8.1.X isn't really a option at this moment. Some more info on how the above code snippet is supposed fix our problem would be great.", "updateAuthor": { "name": "menzo", "key": "menzo", "displayName": "VDLP", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-07-08T07:03:39.000+0000", "updated": "2019-07-08T07:03:39.000+0000" }, { "id": "449678", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~menzo], see the ticket for a in-depth explanation. Long story short, accessing the sections and rows in JavaScript once will make sure they get properly garbage collected like they should. Here is a longer example which should make it more clear how to apply this workaround:\r\n\r\n{code:js}\r\nconst win = Ti.UI.createWindow({\r\n layout: 'vertical'\r\n});\r\nconst table = Ti.UI.createTableView({\r\n data: [ {title: 'Iron Man'}, {title: 'Deadpool'}, {title: 'Star-Lord'}, {title: 'Venom'} ]\r\n});\r\n// Workaround (1): access table data after initially creating the table ...\r\ntable.data.forEach(s => s.rows.forEach(r => r));\r\nconst btn = Ti.UI.createButton({\r\n title: 'Reload',\r\n top: 40\r\n});\r\nbtn.addEventListener('click', () => {\r\n table.data = [ {title: 'Iron Man'}, {title: 'Deadpool'}, {title: 'Star-Lord'}, {title: 'Venom'} ];\r\n // Workaround (2): ... or whenever setting new table data.\r\n table.data.forEach(s => s.rows.forEach(r => r));\r\n});\r\nwin.add(btn);\r\nwin.add(table);\r\nwin.open();\r\n{code}\r\n\r\nNote that it may take a while for the JS garbage collection to kick in so you won't notice an immediate change in Instruments.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-07-09T14:42:02.000+0000", "updated": "2019-07-09T14:42:02.000+0000" }, { "id": "451945", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (8_2_X): https://github.com/appcelerator/titanium_mobile/pull/11274", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-10-10T08:19:09.000+0000", "updated": "2019-10-10T08:19:09.000+0000" }, { "id": "451953", "author": { "name": "ssaddique", "key": "ssaddique", "displayName": "Sohail Saddique", "active": true, "timeZone": "Europe/London" }, "body": "Thought I'd give this a go, but for me FR: Failed. Please see attached PDF of findings. [^Findings for TIMOB-27207.pdf] ", "updateAuthor": { "name": "ssaddique", "key": "ssaddique", "displayName": "Sohail Saddique", "active": true, "timeZone": "Europe/London" }, "created": "2019-10-10T12:05:50.000+0000", "updated": "2019-10-11T09:39:42.000+0000" }, { "id": "452038", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR's merged.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-10-14T18:37:19.000+0000", "updated": "2019-10-14T18:37:19.000+0000" }, { "id": "452055", "author": { "name": "ssaddique", "key": "ssaddique", "displayName": "Sohail Saddique", "active": true, "timeZone": "Europe/London" }, "body": "Verified on builds 8.2.1.v20191014114554 and 8.3.0.v20191014114038.\r\n\r\nTicked closed.", "updateAuthor": { "name": "ssaddique", "key": "ssaddique", "displayName": "Sohail Saddique", "active": true, "timeZone": "Europe/London" }, "created": "2019-10-15T11:11:02.000+0000", "updated": "2019-10-15T11:11:02.000+0000" } ], "maxResults": 20, "total": 20, "startAt": 0 } } }