{ "id": "144131", "key": "TIMOB-19884", "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": "16997", "name": "Release 5.2.0", "archived": false, "released": true, "releaseDate": "2016-02-23" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-12-14T03:23:47.000+0000", "created": "2015-02-03T21:19:44.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "TCSupportTriage", "alloy", "debugger-ios", "user_experience", "validate" ], "versions": [], "issuelinks": [ { "id": "49636", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "150331", "key": "AC-297", "fields": { "summary": "iOS: Debug crash when setting breakpoint in Resources controller file with 4.1SDK", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "50008", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "153314", "key": "TIMOB-20017", "fields": { "summary": "Hitting a breakpoint when debugging in Studio causes crash in TiDebuggerUtils", "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": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2016-02-16T23:22:22.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": "When setting a titanium studio breakpoint in an alloy model response from a sync adapter that fetches remote content, titanium 3.5.0 crashes in iOS.\r\n\r\nHere is an example alloy project that fetches remote content using a custom alloy model adapter:\r\nhttps://github.com/jkotchoff/alloytest\r\n\r\nWhen run in 'debug mode' in Titanium Studio, setting a breakpoint in the alloy model response will crash the app with SDK 3.5.0 and iOS\r\nie.\r\nhttps://github.com/jkotchoff/alloytest/blob/master/app/controllers/index.js#L7\r\n\r\nA debug point here works fine in SDK 3.4.1 on iOS and it works fine in Android (SDK 3.4.1 or 3.5.0).\r\n\r\nThis makes debugging titanium apps that render content from a remote server impossible in 3.5.0 on iOS. ", "attachment": [ { "id": "56260", "filename": "iosdebugger_notworking_4.0GA.log", "author": { "name": "kkolipaka", "key": "kkolipaka", "displayName": "Kondal Kolipaka", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-07-27T14:15:53.000+0000", "size": 15476, "mimeType": "text/plain" }, { "id": "56259", "filename": "iosdebugger_working_3.4.1GA.log", "author": { "name": "kkolipaka", "key": "kkolipaka", "displayName": "Kondal Kolipaka", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-07-27T14:15:53.000+0000", "size": 15853, "mimeType": "text/plain" }, { "id": "57639", "filename": "wluu_chuck_norris.crash", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-11-30T23:00:31.000+0000", "size": 329454, "mimeType": "application/octet-stream" }, { "id": "57638", "filename": "wluu_circular.crash", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-11-30T23:00:31.000+0000", "size": 328931, "mimeType": "application/octet-stream" } ], "flagged": false, "summary": "iOS: Debug crash when setting breakpoint in alloy model response", "creator": { "name": "cornflakesuperstar", "key": "cornflakesuperstar", "displayName": "Jason Kotchoff", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "cornflakesuperstar", "key": "cornflakesuperstar", "displayName": "Jason Kotchoff", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "SDK 3.5.0 on iPhone 6 simulator iOS 8.1, debugging using Titanium Studio version 3.4.1.201410281727", "closedSprints": [ { "id": 449, "state": "closed", "name": "2015 Sprint 14 Studio", "startDate": "2015-07-06T16:47:27.709Z", "endDate": "2015-07-18T01:47:00.000Z", "completeDate": "2015-07-30T23:23:52.053Z", "originBoardId": 113 }, { "id": 536, "state": "closed", "name": "2015 Sprint 25 SDK", "startDate": "2015-12-05T01:30:40.415Z", "endDate": "2015-12-19T01:30:00.000Z", "completeDate": "2015-12-29T03:19:42.127Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "342124", "author": { "name": "cornflakesuperstar", "key": "cornflakesuperstar", "displayName": "Jason Kotchoff", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Note, just before running this test project, you may want to make a single web browser request to:\r\nhttp://sinatra-api-demo.herokuapp.com/endpoint.json\r\n\r\nin order to spin up the server because heroku will spin it down if it hasn't been hit in awhile and then the http request from titanium may time out.", "updateAuthor": { "name": "cornflakesuperstar", "key": "cornflakesuperstar", "displayName": "Jason Kotchoff", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-02-04T22:00:17.000+0000", "updated": "2015-02-04T22:00:17.000+0000" }, { "id": "358215", "author": { "name": "pinnamuri", "key": "pinnamuri", "displayName": "Praveen Innamuri", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~kkolipaka] Can you take a look into this ?", "updateAuthor": { "name": "pinnamuri", "key": "pinnamuri", "displayName": "Praveen Innamuri", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-07-23T21:04:48.000+0000", "updated": "2015-07-23T21:04:48.000+0000" }, { "id": "358354", "author": { "name": "kkolipaka", "key": "kkolipaka", "displayName": "Kondal Kolipaka", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Please find the attached logs.", "updateAuthor": { "name": "kkolipaka", "key": "kkolipaka", "displayName": "Kondal Kolipaka", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-07-27T14:16:12.000+0000", "updated": "2015-07-27T14:16:12.000+0000" }, { "id": "360563", "author": { "name": "jjoseph", "key": "jjoseph", "displayName": "Johnson Joseph", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Any news on this?", "updateAuthor": { "name": "jjoseph", "key": "jjoseph", "displayName": "Johnson Joseph", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-08-20T22:03:16.000+0000", "updated": "2015-08-20T22:03:16.000+0000" }, { "id": "366068", "author": { "name": "mannyp", "key": "mannyp", "displayName": "Manny Parasirakis", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This looks like the same thing reported in AC-297. That bug has info as to how to reproduce this issue in 2 lines of code.", "updateAuthor": { "name": "mannyp", "key": "mannyp", "displayName": "Manny Parasirakis", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-10-07T13:25:33.000+0000", "updated": "2015-10-07T13:25:33.000+0000" }, { "id": "369145", "author": { "name": "pinnamuri", "key": "pinnamuri", "displayName": "Praveen Innamuri", "active": false, "timeZone": "America/Los_Angeles" }, "body": "The titanium debugger crashes whenever it tries to send message through debugger connection:\r\n\r\n{code}\r\nThread 5 Crashed:: KrollContext\r\n0 com.geoplus.alloytest \t0x0000000104c983ba WTI::StringImpl::utf8ForRange(unsigned int, unsigned int, WTI::ConversionMode) const + 90\r\n1 com.geoplus.alloytest \t0x0000000104c98568 WTI::StringImpl::utf8(WTI::ConversionMode) const + 24\r\n2 com.geoplus.alloytest \t0x0000000104c9c579 WTI::String::utf8(WTI::ConversionMode) const + 25\r\n3 com.geoplus.alloytest \t0x00000001049aa81b TiDebuggerUtils::wtf_string_to_string(WTI::String const&) + 27\r\n4 com.geoplus.alloytest \t0x00000001049abb80 TiDebuggerUtils::generate_variables(TI::ExecState*, TI::JSObject*, std::__1::map, std::__1::allocator >, TiDebuggerVariableStruct, std::__1::less, std::__1::allocator > >, std::__1::allocator, std::__1::allocator > const, TiDebuggerVariableStruct> > >&, bool, std::__1::basic_string, std::__1::allocator > const&) + 272\r\n5 com.geoplus.alloytest \t0x00000001049ab99e TiDebuggerUtils::generate_variable(TI::ExecState*, TI::TiValue&, TiDebuggerVariableStruct&, std::__1::basic_string, std::__1::allocator > const&, bool, std::__1::basic_string, std::__1::allocator > const&) + 2014\r\n6 com.geoplus.alloytest \t0x00000001049abd67 TiDebuggerUtils::generate_variables(TI::ExecState*, TI::JSObject*, std::__1::map, std::__1::allocator >, TiDebuggerVariableStruct, std::__1::less, std::__1::allocator > >, std::__1::allocator, std::__1::allocator > const, TiDebuggerVariableStruct> > >&, bool, std::__1::basic_string, std::__1::allocator > const&) + 759\r\n{code}", "updateAuthor": { "name": "pinnamuri", "key": "pinnamuri", "displayName": "Praveen Innamuri", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-11-06T01:23:14.000+0000", "updated": "2015-11-06T01:23:14.000+0000" }, { "id": "369572", "author": { "name": "pinnamuri", "key": "pinnamuri", "displayName": "Praveen Innamuri", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~sdavenport] This ticket doesn't duplicates any other ticket. We still need to investigate the root cause causing the crash of debugging.", "updateAuthor": { "name": "pinnamuri", "key": "pinnamuri", "displayName": "Praveen Innamuri", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-11-10T18:57:53.000+0000", "updated": "2015-11-10T18:57:53.000+0000" }, { "id": "369577", "author": { "name": "mannyp", "key": "mannyp", "displayName": "Manny Parasirakis", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The core of the issue as we discovered is that the debugger cannot seem to handle circular references in object graphs. If you create a new Appcelerator mobile project and inside the index.js add these two lines of code before $.index.open() you can reproduce the issue easily:\r\n\r\nvar a = {b:{c:1}};\r\na.b.d=a;\r\n\r\nSet a breakpoint on the second line above and then when you hit it, step over and the app being debugged will crash.", "updateAuthor": { "name": "mannyp", "key": "mannyp", "displayName": "Manny Parasirakis", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-11-10T19:04:21.000+0000", "updated": "2015-11-10T19:04:21.000+0000" }, { "id": "369728", "author": { "name": "gerry.gurevich", "key": "gerry.gurevich", "displayName": "Gerald Gurevich", "active": true, "timeZone": "Europe/Brussels" }, "body": "I have a contractor working on a time sensitive application and he is completely stopped by this issue. I'm not getting very good information from Appcelerator on this issue. We have 10 minutes of work to do but are unable to use Appcelerator studio to do this work. Hours and hours of time have been lost already. We chose this platform for its flexibility of deployment. We are not seeing that advantage anymore. Can we please get some traction on this issue? \r\n\r\nWe are about 1 week from being forced to move to another platform. If we leave, we won't ever be back.\r\n\r\nPlease be sure to reference back to the AC-297 which is the ticket that we had been watching.", "updateAuthor": { "name": "gerry.gurevich", "key": "gerry.gurevich", "displayName": "Gerald Gurevich", "active": true, "timeZone": "Europe/Brussels" }, "created": "2015-11-11T10:00:59.000+0000", "updated": "2015-11-11T10:00:59.000+0000" }, { "id": "371691", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "I am still able to reproduce this issue with the current GA stack. I was able to reproduce with [~mannyp] test case and the original reported bug, which both generated similar crash reports seen by [~pinnamuri]; see [^wluu_circular.crash] for [~mannyp] test case and see [^wluu_chuck_norris.crash] for the original reported bug.\r\n\r\nTested on:\r\n\r\nAppcelerator Studio, build: 4.4.0.201511241829\r\nAppc CLI NPM: 4.2.2\r\nAppc CLI Core: 5.1.0\r\nArrow: 1.3.22\r\nSDK: 5.1.1.GA\r\nNode: v4.2.2\r\nOS: El Capitan (10.11.1)\r\nXcode: 7.1.1\r\nDevices: iphone simulator (9.1)", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-11-30T23:00:17.000+0000", "updated": "2015-11-30T23:00:17.000+0000" }, { "id": "371801", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Possible valid data point: from what I'm gathering so far, it looks like the debugger cannot handle relatively large JSON objects. In TIMOB-20017 and this original reported bug, the requested JSON do not have any circular reference, but are relatively large if you were to print them out. And in [~mannyp]'s test case, I think that a circular reference JSON is inherently large.", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-12-01T20:42:57.000+0000", "updated": "2015-12-01T20:43:43.000+0000" }, { "id": "372471", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-12-09T02:32:23.000+0000", "updated": "2015-12-09T02:32:23.000+0000" }, { "id": "377040", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as fixed. Verified that [~mannyp]'s test case and the original reported test case does not crash if you set a breakpoint on the specified lines.\r\n\r\nTested on:\r\n\r\nAppcelerator Studio, build: 4.5.0.201602132419\r\nAppc CLI NPM: 4.2.3-2\r\nAppc CLI Core: 5.2.0-265\r\nArrow: 1.7.27\r\nSDK: 5.2.0.v20160216091337\r\nNode: v4.2.4\r\nOS: El Capitan (10.11.3)\r\n", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-02-16T23:22:18.000+0000", "updated": "2016-02-16T23:22:18.000+0000" } ], "maxResults": 21, "total": 21, "startAt": 0 } } }