{ "id": "173704", "key": "TIMOB-27121", "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": [], "resolution": null, "resolutiondate": null, "created": "2019-06-03T18:25:16.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [ { "id": "20412", "name": "Release 8.1.0", "archived": false, "released": true, "releaseDate": "2019-08-13" } ], "issuelinks": [], "assignee": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2019-06-15T21:27:41.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "Seen on our CI build nodes when the test suite crashed.\r\n\r\nHere's the log prior to crash:\r\n{code}\r\n[2019-06-03T17:59:55.477Z] [INFO] : \b\b \b !TEST_START: responseHeadersBug\r\n[2019-06-03T17:59:55.477Z] [WARN] : \b\b \b Automatic setter methods for properties are deprecated in SDK 8.0.0 and will be removed in SDK 9.0.0. Please modify the property in standard JS style: obj.timeout = value; or obj['timeout'] = value;\r\n[2019-06-03T17:59:56.625Z] [WARN] : \b\b \b Automatic getter methods for properties are in SDK 8.0.0 and will be removed in SDK 9.0.0. Please access the property in standard JS style: obj.allResponseHeaders or obj['allResponseHeaders']\r\n[2019-06-03T17:59:56.625Z] [INFO] : \b\b \b !TEST_END: {\"state\":\"passed\",\"duration\":964,\"suite\":\"Titanium.Network.HTTPClient\",\"title\":\"responseHeadersBug\",\"message\":\"\"}\r\n[2019-06-03T17:59:56.625Z] [INFO] : \b\b \b !TEST_START: requestHeaderMethods\r\n[2019-06-03T17:59:56.625Z] [WARN] : \b\b \b Automatic setter methods for properties are deprecated in SDK 8.0.0 and will be removed in SDK 9.0.0. Please modify the property in standard JS style: obj.timeout = value; or obj['timeout'] = value;\r\n[2019-06-03T17:59:56.625Z] [INFO] : \b\b \b !TEST_END: {\"state\":\"passed\",\"duration\":103,\"suite\":\"Titanium.Network.HTTPClient\",\"title\":\"requestHeaderMethods\",\"message\":\"\"}\r\n[2019-06-03T17:59:56.625Z] [INFO] : \b\b \b !TEST_START: sendData\r\n[2019-06-03T17:59:56.625Z] [WARN] : \b\b \b Automatic setter methods for properties are deprecated in SDK 8.0.0 and will be removed in SDK 9.0.0. Please modify the property in standard JS style: obj.timeout = value; or obj['timeout'] = value;\r\n[2019-06-03T17:59:56.625Z] [INFO] : \b\b \b !TEST_END: {\"state\":\"passed\",\"duration\":141,\"suite\":\"Titanium.Network.HTTPClient\",\"title\":\"sendData\",\"message\":\"\"}\r\n[2019-06-03T17:59:56.625Z] [INFO] : \b\b \b !TEST_END: {\"state\":\"skipped\",\"duration\":0,\"suite\":\"Titanium.Network.HTTPClient\",\"title\":\"clearCookiePositiveTest\",\"message\":\"\"}\r\n[2019-06-03T17:59:56.625Z] [INFO] : \b\b \b !TEST_START: clearCookieUnaffectedCheck\r\n[2019-06-03T17:59:56.625Z] [WARN] : \b\b \b Automatic setter methods for properties are deprecated in SDK 8.0.0 and will be removed in SDK 9.0.0. Please modify the property in standard JS style: obj.timeout = value; or obj['timeout'] = value;\r\n[2019-06-03T18:00:02.522Z] [INFO] : \b\b \b Second Load\r\n[2019-06-03T18:00:11.433Z] -- End simulator log ---------------------------------------------------------\r\n[2019-06-03T18:00:11.433Z] Failed to finish test suite before app crashed and logs ended!\r\nscript returned exit code 1\r\n{code}\r\n\r\nThe attached crash log gives the details, and it's pretty clearly in an infinite recursion loop in TiBindingTiValueToNSObject and TiBindingTiValueToNSDictionary - presumably some object with a circular reference?", "attachment": [ { "id": "66665", "filename": "mocha_2019-06-03-110012_macos-rocket.crash", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2019-06-03T18:25:12.000+0000", "size": 186135, "mimeType": "application/octet-stream" } ], "flagged": false, "summary": "iOS: Infinite recursion crash", "creator": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "environment": null, "comment": { "comments": [ { "id": "449108", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "It has to be an API (probably a Ti.Network cookie) that passes a type to the core that cannot be handled by other JSCore types. If that happens inside {{TiBindingTiValueToNSObject}}, then {{TiBindingTiValueToNSDictionary}} is called as a fallback. Long story short, the issue likely was that [this line|https://github.com/appcelerator/titanium-mobile-mocha-suite/blob/31d9061b6754f30c6ced1b5ecc60f259cabbc078/Resources/ti.network.httpclient.test.js#L310] in the test suite did not properly unwrap the received headers when calling {{https://my.appcelerator.com/auth/login}}, so if the URL did not pass {{Set-Cookie}}, then the getter internally still checks for the key using {{\\[\\[\\[self response\\] headers\\] valueForKey:args\\]}}, resulting in a object check with an undefined / non-string key. Still can be something else, but rewriting the test case should have fixed it. It seems like it was just removed, so maybe someone can clean it up and this ticket will be done as well.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-06-15T21:27:14.000+0000", "updated": "2019-06-15T21:27:41.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }