SquareSquash / web

Squash’s front-end and API host.
http://www.squash.io
Apache License 2.0
963 stars 135 forks source link

Not symbolicating iOS crash completely. #81

Open arjun2 opened 11 years ago

arjun2 commented 11 years ago

It seems that its not symbolicating iOS crash completely.

screen shot 2013-05-23 at 1 12 40 pm

RISCfuture commented 11 years ago

The software only symbolicates frames that correspond to project code files. The other frames are library code.

arjun2 commented 11 years ago

I think it would be nice if it symbolicates library code. It will really help in debugging. If you have any thoughts about symbolicating library code , i can try.

RISCfuture commented 11 years ago

The symbolication tables necessary to symbolicate library code are owned by Apple and are proprietary. You can symbolicate the library code in a backtrace by dragging it into the Organizer window in Xcode, but of course there's no way to integrate that functionality into Squash.

That being said, it's clearly not impossible, as Crittertastic and Crashlytics do it, but of course neither of them are open-source. Perhaps there's some dSYM files in Xcode's resources somewhere...?

ferrerod commented 11 years ago

After updating from git and running the usual ruby / gem updates, I am getting an error when trying to load the main page. Looks like a new dependency was introduced for jquery. What is the best way to resolve this?

Sprockets::FileNotFound in Projects#index

Showing /SquareSquash/web/app/views/projects/index.html.rb where line #1 raised:

couldn't find file 'jquery-ui' (in /SquareSquash/web/app/assets/javascripts/application.js:29) ...

The rails s console outputs this error:

ActionView::Template::Error (couldn't find file 'jquery-ui' (in /SquareSquash/web/app/assets/javascripts/application.js:29)): 1: 2: 3: # Copyright 2012 Square Inc. 4: # app/views/layouts/application.html.rb:166:in block in body_portion' app/views/layouts/application.html.rb:148:inbody_portion' app/views/layouts/application.html.rb:27:in block in content' app/views/layouts/application.html.rb:25:incontent' app/views/projects/index.html.rb:1:in _app_views_projects_index_html_rb__3982687279636673017_70134435125900' app/controllers/projects_controller.rb:63:inindex'

RISCfuture commented 11 years ago

Use the jquery-ui-rails gem or remove the dependency on jQuery UI.

arjun2 commented 11 years ago

i used 2.3.0 version of jquery-rails by following http://stackoverflow.com/questions/16844411/rails-active-admin-deployment-couldnt-find-file-jquery-ui and it worked for me.

ferrerod commented 11 years ago

I'm sorry I hijacked this symbolication issue by mistake with my jquery-ui issue. Now back to a symbolication issue...

I created a new 'Crasher' app from scratch, tried following the documentation and the example. When Crasher crashes, and I look at the occurrence in the squash portal, I see the crash is NOT symbolicated and I see this message:

"This bug has not been symbolicated. If you would like meaningful backtraces, please upload a symbolication file using your language’s client library."

Wondering if anyone can spot something obvious?

My Xcode build phases scripts include squash_release:

~/.rvm/bin/rvm ruby-1.9.3-p392@squash exec env squash_release --project-dir="$PROJECT_DIR" ${SQUASH_HOST_PORT} ${SQUASH_API_KEY} ${SQUASH_APP_ENVIRONMENT} ${SQUASH_APP_BUILD_NUMBER}

symbolicate:

~/.rvm/bin/rvm ruby-1.9.3-p392@squash exec env symbolicate ${SQUASH_HOST_PORT}

To reduce the size, I have removed most of the Base64 output and replaced with ... The rails s log shows the results:

Started POST "/api/1.0/deploy.json" for 172.17.2.46 at 2013-06-24 19:01:02 -0400
Processing by Api::V1Controller#deploy as JSON
  Parameters: {"project"=>{"api_key"=>"10265344-9f95-4713-b684-067598b85543"}, "environment"=>{"name"=>"release"}, "deploy"=>{"deployed_at"=>"2013-06-24 19:01:02 -0400", "revision"=>"7f82ff3bd4b406f553ff9d4679828a2a12711ba1", "build"=>"1.0.01", "version"=>nil}}
  Project Load (1.0ms)  SELECT "projects".* FROM "projects" WHERE "projects"."api_key" = '10265344-9f95-4713-b684-067598b85543' LIMIT 1
   (0.2ms)  BEGIN
  Environment Load (0.9ms)  SELECT "environments".* FROM "environments" WHERE "environments"."project_id" = 1 AND (LOWER(name) = 'release') LIMIT 1
  Project Load (0.6ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
  Environment Exists (0.9ms)  SELECT 1 AS one FROM "environments" WHERE (LOWER("environments"."name") = LOWER('release') AND "environments"."id" != 1 AND "environments"."project_id" = 1) LIMIT 1
   (0.1ms)  COMMIT
   (0.2ms)  BEGIN
  Environment Load (0.5ms)  SELECT "environments".* FROM "environments" WHERE "environments"."id" = 1 LIMIT 1
  CACHE (0.0ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
  Deploy Exists (1.1ms)  SELECT 1 AS one FROM "deploys" WHERE ("deploys"."build" = '1.0.01' AND "deploys"."environment_id" = 1) LIMIT 1
  SQL (31.3ms)  INSERT INTO "deploys" ("build", "deployed_at", "environment_id", "hostname", "revision", "version") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id"  [["build", "1.0.01"], ["deployed_at", Mon, 24 Jun 2013 16:01:02 PDT -07:00], ["environment_id", 1], ["hostname", nil], ["revision", "7f82ff3bd4b406f553ff9d4679828a2a12711ba1"], ["version", nil]]
   (0.5ms)  COMMIT
  Deploy Load (0.9ms)  SELECT "deploys".* FROM "deploys" WHERE "deploys"."id" = $1 LIMIT 1  [["id", 3]]
  Environment Load (0.3ms)  SELECT "environments".* FROM "environments" WHERE "environments"."id" = 1 LIMIT 1
  Project Load (0.7ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
Completed 200 OK in 307ms (ActiveRecord: 47.7ms)

Started POST "/api/1.0/symbolication.json" for 172.17.2.46 at 2013-06-24 19:01:05 -0400
Processing by Api::V1Controller#symbolication as JSON
  Parameters: {"symbolications"=>[{"uuid"=>"A644C578-7DF5-34C7-854C-1F9516BF179B", "symbols"=>"eJzFnVlz2zgSgN/nV3jfdmsqYx7g5bdEjmuzm8Nl5aja1JaLpmCZE4rQkpQd\nz6/fhkhZJ
...
==\n", "lines"=>"eJzdfduOXdd15bu/Qv0BFtf9wrdARoAgDThoIUG/BTRViZhQJFMsdsN/37tc\nHXNN+xxXEXOcNYY2OSF
...
Xpw94Mk8Z9gmJiriq7jun/AcPWhfU=\n"}, {"uuid"=>"CA6C8FB7-64A1-3BEB-B5CA-19FC8DD6710C", "symbols"=>"eJzFnVlz2zgSgN/nV3j
...
DF0umHjxvACqg6S8d8fhQ6BNOfXjL\nC+B3tcf9xfP/ARlfdKs=\n", "lines"=>"eJzdXduOXcd1fPdXKB9gT
...
v18LE1OfbYTILe5z3qTKnJ6+GSeM+QTEx46fzmP4X\nLT9Ucg==\n"}]}
   (0.1ms)  BEGIN
  Symbolication Load (0.8ms)  SELECT "symbolications".* FROM "symbolications" WHERE "symbolications"."uuid" = 'A644C578-7DF5-34C7-854C-1F9516BF179B' LIMIT 1
  Symbolication Exists (0.4ms)  SELECT 1 AS one FROM "symbolications" WHERE ("symbolications"."uuid" = 'a644c578-7df5-34c7-854c-1f9516bf179b' AND "symbolications"."uuid" != 'a644c578-7df5-34c7-854c-1f9516bf179b') LIMIT 1
   (0.1ms)  COMMIT
   (0.1ms)  BEGIN
  Symbolication Load (0.4ms)  SELECT "symbolications".* FROM "symbolications" WHERE "symbolications"."uuid" = 'CA6C8FB7-64A1-3BEB-B5CA-19FC8DD6710C' LIMIT 1
  Symbolication Exists (0.4ms)  SELECT 1 AS one FROM "symbolications" WHERE ("symbolications"."uuid" = 'ca6c8fb7-64a1-3beb-b5ca-19fc8dd6710c' AND "symbolications"."uuid" != 'ca6c8fb7-64a1-3beb-b5ca-19fc8dd6710c') LIMIT 1
   (0.2ms)  COMMIT
Completed 201 Created in 27ms (ActiveRecord: 3.9ms)
RISCfuture commented 11 years ago

The first step would be to make sure that the UUID of the compiled binary matches the UUID being received by Squash. Check the Squash source code to learn how to get the UUID if you don't already know.

ferrerod commented 11 years ago

although the APIkey and revision numbers match, strangely, UUIDs did not. So I deleted the existing bugs, then manually executed the symbolicate script. Then recreated the crash. Now both UUIDs match. Yet, I am still getting the same message. Any further ideas? "This bug has not been symbolicated. If you would like meaningful backtraces, please upload a symbolication file using your language’s client library."

RISCfuture commented 11 years ago

Can I see the Rails logs of the POST to /symbolication?

ferrerod commented 11 years ago

Below are the Rails logs before, during and after the POST to /symbolication:

Started POST "/api/1.0/deploy.json" for 172.17.2.46 at 2013-07-08 14:37:55 -0400
Processing by Api::V1Controller#deploy as JSON
  Parameters: {"project"=>{"api_key"=>"10265344-9f95-4713-b684-067598b85543"}, "environment"=>{"name"=>"release"}, "deploy"=>{"deployed_at"=>"2013-07-08 14:37:55 -0400", "revision"=>"467072b1bbe8b0e1b08c03f1ef90cac59b5215d3", "build"=>"1.0.0.4", "version"=>nil}}
  Project Load (0.3ms)  SELECT "projects".* FROM "projects" WHERE "projects"."api_key" = '10265344-9f95-4713-b684-067598b85543' LIMIT 1
   (0.1ms)  BEGIN
  Environment Load (0.4ms)  SELECT "environments".* FROM "environments" WHERE "environments"."project_id" = 1 AND (LOWER(name) = 'release') LIMIT 1
  Project Load (0.5ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
  Environment Exists (0.4ms)  SELECT 1 AS one FROM "environments" WHERE (LOWER("environments"."name") = LOWER('release') AND "environments"."id" != 1 AND "environments"."project_id" = 1) LIMIT 1
   (0.1ms)  COMMIT
   (0.1ms)  BEGIN
  Environment Load (0.4ms)  SELECT "environments".* FROM "environments" WHERE "environments"."id" = 1 LIMIT 1
  CACHE (0.0ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
  Deploy Exists (0.6ms)  SELECT 1 AS one FROM "deploys" WHERE ("deploys"."build" = '1.0.0.4' AND "deploys"."environment_id" = 1) LIMIT 1
  SQL (0.6ms)  INSERT INTO "deploys" ("build", "deployed_at", "environment_id", "hostname", "revision", "version") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id"  [["build", "1.0.0.4"], ["deployed_at", Mon, 08 Jul 2013 11:37:55 PDT -07:00], ["environment_id", 1], ["hostname", nil], ["revision", "467072b1bbe8b0e1b08c03f1ef90cac59b5215d3"], ["version", nil]]
   (0.6ms)  COMMIT
  Deploy Load (0.4ms)  SELECT "deploys".* FROM "deploys" WHERE "deploys"."id" = $1 LIMIT 1  [["id", 8]]
  Environment Load (0.4ms)  SELECT "environments".* FROM "environments" WHERE "environments"."id" = 1 LIMIT 1
  Project Load (0.5ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
  Bug Load (0.9ms)  SELECT "bugs".* FROM "bugs" WHERE "bugs"."environment_id" = 1 AND "bugs"."resolution_revision" IN ('467072b1bbe8b0e1b08c03f1ef90cac59b5215d3', '51b7f1d5dcdf913249601058f1a0fd2c16fc45f0', '7f82ff3bd4b406f553ff9d4679828a2a12711ba1', '7bbf62e118a4ae4662344ffb4c83595c6fcdd864', '5cf599de801e1fc585d8462443bb30892a4ee995') AND "bugs"."fixed" = 't' AND "bugs"."fix_deployed" = 'f' ORDER BY "bugs"."id" ASC LIMIT 1000
Completed 200 OK in 401ms (ActiveRecord: 6.4ms)

Started POST "/api/1.0/symbolication.json" for 172.17.2.46 at 2013-07-08 14:37:58 -0400
Processing by Api::V1Controller#symbolication as JSON
  Parameters: {"symbolications"=>[{"uuid"=>"025C250D-60D2-3B44-8D91-4F388F429BFB", "symbols"=>"eJzFnVlz2zgSgN/nV3jfdmsqY96H3xI5rs1uDpeVo2pTWy6agmVOKEILUnY8\nv34bImWRRFuQ1IDzMhNBstRfN9BoNBrgq1evTv4mVjePp/zmT5Y3Z9P/rbL6\n7uxs+ri44WWRZw0Xm1f1b3X7/7PfNn9VN2Kl+avfTk7qJhPNdTabCVbXZydJ\nGkfQyqrZti11ogTabouSnZ1MBHwbE6eLrKj+WEBzWVTQ7Prwz4LX1wvW3PHZ\n2Yl8nyZK97NDUULXU0R5vVyes5LNs4b1JQpHEr363vvgSbZcriUoeHU2K2YX\nRVXUd++zVZXfFdX8W9HcfVrKN+uz/xIxWpHHGMGeGIG3L8a3oiyvWF3Mq9d5\nU9wzA4KrXSF01a7wjODJvoKfF7O3VcPEmyz/MRd8Vc3oonuOKrq3b9cJg0N0\nvpb9ggtmTPYAkT3aV/b0ALW/YTlfMFPdxUOGq+/sKXd0kM4/M7EoKniDLrWv\njs7Y33d0Rru1LdiSi+atEFzQ/Ujsq8MxDnf36bvnHfRQ0oeimvEHsoghosx0\ndxfYW8SaNd/WUtI1mapiJvtPLLvF/CP/+fN6xlrJqJImyNyRhKov+Fqwhwmv\nGsHLkom+sLEi7PCzJ/fwElzBe57NyNKGag9NHdX8z0rrqaodSQtT9RXLGfir\nD2zBxeO3TFQwX1Mlb6UcSO46LjJJPyv62tHtFD2XX/GB7LGkXIqaXcf3DhA2\n0Oq5E/bzA6fL66sTGjSGWnl7nkENgnB56bKqXRgaY+2IO0RWcGQTU33BV8N1\naEwP6AtInDyS16RHC/1IlTgM4mjrfU+/1EzUp7kTQx85PWf3rOTLBauaU/lT\ngrU/eJrznGenU74SOTudTi4gcl/H6/0xGY3QppOvWblixe0jkQIEVvp0GAaB\nY4EiGXeo6WQiGEw1a5YrtoSfh+9dx0ZErI5ghBUFiQUsV5lHp5O3P1m+arKb\nkn358u6cCtPKPYSJnCQgwnzK85UQrMoHQYHrjmh+/97/6AmsL5siK4u/qD5q\ngzDiinsrBJNc/pjrlcolV8tvf+ZsvWCm+jSJotoN2uzwRXvyTWFdnZVnnUSM\nHM5LIgUzcryYOtZwzHjsCp/BXE8XV+tlC5UQYBLFm0Ru6Fgh9CJ1HsMJ+YwJ\nMluHMWKLYiud1HfV4HLA9iCKhn3mF/DDZDBkfo68hDyzPQOmMRr8B8xlzmwd\n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\nQNNfOtLxsdAnPLZM+gXwu9rj/uL5/83BdCU=\n", "lines"=>"eJzdfduuXceV3bu/QvkAi3W/8K0ho4FGArgRoRt5a9DU6YhpiofhJYH/Pos+\nabOmtbf3IebYNYaWYRiWbGlp7FE1a17H/P3vf//df/nw+U9/fvH4p//18PrT\nyx//9+dXH39++fLHP//yp8e3b16/+vT44eXL//bm3cPH37398p8vf/eff8XH\nTx8+/92/4nfffffx06sPn/7t1U8/fXj4+PHld2P2dvzZf3/z9uHldz98OP66\nhw8vfnn15t33vxx/+svf/+V3MR//9fXj28+/vDv+oPg+N8bNz9Xlcyn5PjfL\nzc+15XM1ej43Q739ub5+zve1Fm5+bazUOb92m7n7fu0f3r//w8Pbh//56tPD\ntePi/Oj49Q965aNAFi8c0SsfnetHp+urMT8X6nEDUVBjfS6pKeM+On5t4K58\ntMA+muJzSU3rSZouazfTfDZUc1OjD2zOz6Z1wn7h8uxf+C8nHfTR/OyP4s5S\nqem5Hx24j47nIi3rz+uzvzU8++fFHaQan/vzloZD+uzTC/3oc81DTcCPPtc4\nID+anvu61Q786HMPEvSjzz1IDfnzPvcgQT/63IPUgD/vs90k6Eefe5DaxH20\nPPejHfe09fDcn3fgHvH+7Ecc+tG/f2V+/urlr65v8ZHab7gOd/rq/Pus3uur\nzz3ANp/RXV8dz/Ye7v3Vf33z8H9/eHz36cPj27cPH67Fqr7feFx4zK9/F+ej\njQvn+Op3U8Thrb++tde/m3Hfbd+Ct+J+5wsB5PXv4s7VvPAOXP1uxgUc84Kf\neP27uETIvPAaXP+uyYUM34fHNxysbAjOng/HEC54x9e/vB7p7Pqtv3z51+/9\n9S+v4ZYrxfblw99gLbE/dvuW8wX9sS/kbZ/35eT9cv+GA1Zgnt3x4QuOx/UP\nwx6nGOKFJMKmD3/D8SqwZ/H48Lf4AQX2Lh4f/pZjbVI2zg+nb/G4isklOz98\nIcbfg/hbrCYU8YWwew/ib/EyoYgv1GP2IP4W/xaK+FsexgJLpx8f/hbPusDS\nOjHk297PEo+vLm5xuZrHly8Uw3d9+eaPfa8vX+imuB4gm8q1KyNwfPlCGXnH\nl2tuC+YX//Lx4cPHF69DP9h/8YeH//Pw9vH9Lw/vPr348vf88PD0d37x+vH1\n46sXT3/ww5f//t2bP/74qz/+/vsv//7x8fOH1w8vfvzhHz+/e/3pzeO7j9fc\n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\n"}, {"uuid"=>"392CB295-39FA-32C7-8E1C-6198D798919C", "symbols"=>"eJzFnVlz2zgSgN/nV3jfdmsqY96H3xI5rs3u5CgrR9Wmtlw0BcucUIQWpOx4\nfv0CImWRRFuQ2Q3Py0wEyVJ/3UCj0WiAr169Ovmb2Fw/nPLrP1jenM3/t8nq\n27Oz+cPqmpdFnjVc7F7Vv9Tt/89+2f1V3YiN4a9+OTmpm0w0V9liIVhdn50k\nqevJVlYt9m2p4wSy7aYo2dnJTMhvY+J0lRXVbyvZXBaVbHZ9+c+C11cr1tzy\nxdmJeh8nSvezQ1GCINFEeb1en7OSLbOG9SUKRxK9+t774Em2Xm8lKHh1tigW\nF0VV1Le/Z5sqvy2q5beiuf24Vm/WZ/9FYrQijzBC50iMwDsW41tRlpesLpbV\n67wp7hhe8FDvCkGod4UnBE+OFfy8WLytGibeZPmPpeCbakEgegSIfmzX2TIe\nrfOt7BdcMCrZI0eXPfKOlT19htrfsJyvGFV3iYDhGkVHyh09S+efmVgVlXyD\nQGp9dEbxsaMzOqxtwdZcNG+F4ALvR6JYH45RcrhP3z7toIeS3hfVgt+jRUx0\nZcbe4S5wtIg1a75tpURrMvYAMY+fWA6L+Vv+8+fVgrWSoSUF5o441X3B14Ld\nz3jVCF6WTPSFjTVhh589uZMvpSv4nWcLtLSp3kMTXzf/k9J6umpH0sqp+pLl\nTPqr92zFxcO3TFRyvsZK3ko5kNx1HGCSflJ03zGJnquveI/2WEouTc2u40XP\nEDYw6rkT9vM9x8vr6ROabEyN8vY8gx4EwfLiZdW7sOv4rnHEPUdW6chmVH3B\n18N12eg/oy8AcfJIXkqPFvpRooUJYRD3ZtzTLzUT9WnuxH4YnJ6zO1by9YpV\nzan6KcHaHzzNec6z0znfiJydzmcXMnLfxuv9MRmN0Oazr1m5YcXNA5JCCqzp\nPQz7ixM6imTcoeazmWByqtmyXLK1/Hn5vdvYCIkVAmuVMIzCyAKWq82j89nb\nnyzfNNl1yb58eXeOhYn0RUAYOb3ZcxrMxzzfCMGqfBAUuO6I5tfv/Y+eyPVl\nU2Rl8SfWR+0QRlyxH1jh8sdcr3QutVp++zNn2wUz1qcpFN1usZfa4YuO5JvL\ndXVWnnUSMXQ4r4g0zMjxYuxYgzHjsSt8AnM7XVxuly1Ywh3MkNANHSuG9CJ9\nHoMJ+YIJNFuHMWJrl2jkbL6rB5cDtntRNOwzv5A/jAYDlpmR14/iScEMRpP/\n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\nJ5z68JYXwO9qj/uL5/8D6c10sQ==\n", "lines"=>"eJzdfVuPXsd15bt/heYHWF33C98CGQGCDOBghATzFtBUJ2JCsZlmcwb+93Pa\nPRFr2/25m9jrq7V8AMMQJVGHq1fVrn1d+7e//e13/+P+yx/+eHP3h/+4fffw\n5sf/+vL2889v3vz4x1/+cPfh/bu3D3f3b978z/cfbz//5sPj/7/5zX//js8P\n91/+6u/4zXfffX54e//wr29/+un+9vPnN9+NGdPxd//t/YfbN9/9cH/8vtv7\nm1/evv/4/S/H337877/5LubjL9/dffjyy8fjF8X3uVRe/FxdPpeS73M5vPi5\ntnyuRt/n5suf6+vnnF9rL35trNR5vjZDeJm5637t7z59+t3th9t/f/twe+m4\nOD8a//IHeuGjMBZneOaIXvjoXD86fV9tr4WaEg7qfC2pKcM+GtNfGrgLHy24\nj9bXkprWkzRd1m6m/Gqo5qZGH9jUX03rhP2E86t/wn+6X6CP9ld/FHeW8hiv\n/eiAfbSk1yIt64/XZ39LefWPF3eQSnntj7c0HNJXn17oR19rHmoCfvS1xgH6\n0de+brUDP/rag4T8aHvtQWrAH2977UGCfvS1B6khf7yvPUjQj772ILWJ+2h/\n7Uc77mlr+bU/3oF7xNurH3HoR//6lfn5q5e/ur7FR2p7wXW4zld7+uusXuur\nrz3ANp/RfV99tfdw7a/+y/vb//vD3ceH+7sPH27vL8Wqzp/xM4/55e/ifLT+\nzDm++N0UcXjnX97ay9/NwO9+C94K+zmPZwLIy9/FnavxzDtw8bsZF3CMZ/zE\ny9/FJULGM6/B5e+aXMhwfXjGbzhY2RCcfR9+xjm+/OH1RGffj3o+4yBf/vAa\nbPkSbPMZd3XHTzqGEL7lcOF+1I9f/hbMJs3v/vI3HK8Cc+uODz/jdVz+MOxl\nOj78TAZh04e/4XgV2Jt4fPhbnIACexRjiN9yrE2+xvvhb3G3ikkkOz/8TIC/\nB/G3WE0s4m85XEjE3+JiQhE/U4zZhPhbftRAxOlbHsYCy6UfH/4Wt7rAcjrH\nh192fpZgfPVvi8vPPL78TCV815df/GFf6cv5mVaKy9GxKVu70gHHl5+pIe/4\ncs1tfLUiN//8+fb+88270HMtN7+7/T+3H+4+/XL78eHm8b95f/v0X755d/fu\n7u3N0y9+ePzr797//se/+PX33z/+78e7L/fvbm9+/OHvv3x89/D+7uPnS956\n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\nBwOLVGk=\n"}]}
   (0.3ms)  BEGIN
  Symbolication Load (0.4ms)  SELECT "symbolications".* FROM "symbolications" WHERE "symbolications"."uuid" = '025C250D-60D2-3B44-8D91-4F388F429BFB' LIMIT 1
  Symbolication Exists (0.3ms)  SELECT 1 AS one FROM "symbolications" WHERE ("symbolications"."uuid" = '025c250d-60d2-3b44-8d91-4f388f429bfb' AND "symbolications"."uuid" != '025c250d-60d2-3b44-8d91-4f388f429bfb') LIMIT 1
   (0.1ms)  COMMIT
   (0.1ms)  BEGIN
  Symbolication Load (0.3ms)  SELECT "symbolications".* FROM "symbolications" WHERE "symbolications"."uuid" = '392CB295-39FA-32C7-8E1C-6198D798919C' LIMIT 1
  Symbolication Exists (0.4ms)  SELECT 1 AS one FROM "symbolications" WHERE ("symbolications"."uuid" = '392cb295-39fa-32c7-8e1c-6198d798919c' AND "symbolications"."uuid" != '392cb295-39fa-32c7-8e1c-6198d798919c') LIMIT 1
   (0.1ms)  COMMIT
Completed 201 Created in 8ms (ActiveRecord: 2.1ms)
ferrerod commented 11 years ago

Below is the corresponding Rails logs as a result of the crash log from the app being uploaded. The app version corresponds to the /symbolication POST above:

As noted, the Square Squash web page for this App reports: "This bug has not been symbolicated. If you would like meaningful backtraces, please upload a symbolication file using your language’s client library."

Thank you for any insight into why I am not seeing anything symbolicated.

Started POST "/api/1.0/notify" for 172.17.2.53 at 2013-07-08 15:03:06 -0400
Processing by Api::V1Controller#notify as JSON
  Parameters: {"occurred_at"=>"2013-07-08T15:02:47-400", "symbolication_id"=>"025C250D-60D2-3B44-8D91-4F388F429BFB", "env_vars"=>{"SHELL"=>"/bin/sh", "CFFIXED_USER_HOME"=>"/private/var/mobile/Applications/E5838338-7354-494F-94E1-4EBE3C305E00", "PATH"=>"/usr/bin:/bin:/usr/sbin:/sbin", "TMPDIR"=>"/private/var/mobile/Applications/E5838338-7354-494F-94E1-4EBE3C305E00/tmp", "__CF_USER_TEXT_ENCODING"=>"0x1F5:0:0", "USER"=>"mobile", "LOGNAME"=>"mobile", "HOME"=>"/private/var/mobile/Applications/E5838338-7354-494F-94E1-4EBE3C305E00"}, "power_state"=>"UIDeviceBatteryStateUnknown", "backtraces"=>[{"name"=>"Thread 0", "backtrace"=>[{"type"=>"address", "address"=>977245008}, {"type"=>"address", "address"=>976931187}, {"type"=>"address", "address"=>462479}, {"type"=>"address", "address"=>839189887}, {"type"=>"address", "address"=>972012133}, {"type"=>"address", "address"=>966033531}, {"type"=>"address", "address"=>966033684}, {"type"=>"address", "address"=>966038937}, {"type"=>"address", "address"=>972011985}, {"type"=>"address", "address"=>838430497}, {"type"=>"address", "address"=>838430025}, {"type"=>"address", "address"=>901128939}, {"type"=>"address", "address"=>871023361}, {"type"=>"address", "address"=>451415}], "registers"=>[["r0", 0], ["r1", 0], ["r2", 0], ["r3", 1005516084], ["r4", 6], ["r5", 1005517704], ["r6", 508992528], ["r7", 802765244], ["r8", 23], ["r9", 1005500584], ["r10", 934296095], ["r11", 934296080], ["r12", 328], ["sp", 802765232], ["lr", 976683299], ["pc", 977245008], ["cpsr", 16]], "faulted"=>true}, {"name"=>"Thread 1", "backtrace"=>[{"type"=>"address", "address"=>977180232}, {"type"=>"address", "address"=>976328280}], "registers"=>nil, "faulted"=>false}, {"name"=>"Thread 2", "backtrace"=>[{"type"=>"address", "address"=>977178292}, {"type"=>"address", "address"=>839012421}, {"type"=>"address", "address"=>839007651}, {"type"=>"address", "address"=>838430397}, {"type"=>"address", "address"=>838430025}, {"type"=>"address", "address"=>939119877}, {"type"=>"address", "address"=>976560913}], "registers"=>nil, "faulted"=>false}, {"name"=>"Thread 3", "backtrace"=>[{"type"=>"address", "address"=>977247640}, {"type"=>"address", "address"=>976517654}], "registers"=>nil, "faulted"=>false}], "environment"=>"release", "version"=>"1.0", "operating_system"=>"iPhone OS", "device_type"=>"iPad2,5", "message"=>"*** -[__NSArrayM insertObject:atIndex:]: index 9 beyond bounds [0 .. 7]", "build"=>"1.0", "arguments"=>"/var/mobile/Applications/E5838338-7354-494F-94E1-4EBE3C305E00/Crasher.app/Crasher", "process_path"=>"/var/mobile/Applications/E5838338-7354-494F-94E1-4EBE3C305E00/Crasher.app/Crasher", "os_version"=>"6.1.3", "os_build"=>"10B329", "revision"=>"467072b1bbe8b0e1b08c03f1ef90cac59b5215d3", "hostname"=>"C07354-iPad-Mini", "class_name"=>"NSRangeException", "parent_process"=>"launchd", "api_key"=>"10265344-9f95-4713-b684-067598b85543", "physical_memory"=>527417344, "pid"=>2531, "process_native"=>true, "client"=>"cocoa", "architecture"=>"ARMv7", "orientation"=>"UIDeviceOrientationFaceUp", "connectivity"=>"wifi"}
  Project Load (1.0ms)  SELECT "projects".* FROM "projects" WHERE "projects"."api_key" = '10265344-9f95-4713-b684-067598b85543' LIMIT 1
   (0.4ms)  BEGIN
  Environment Load (0.9ms)  SELECT "environments".* FROM "environments" WHERE "environments"."project_id" = 1 AND (LOWER(name) = 'release') LIMIT 1
  Project Load (0.3ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
  Environment Exists (0.4ms)  SELECT 1 AS one FROM "environments" WHERE (LOWER("environments"."name") = LOWER('release') AND "environments"."id" != 1 AND "environments"."project_id" = 1) LIMIT 1
   (0.1ms)  COMMIT
   (0.2ms)  BEGIN
  Deploy Load (0.6ms)  SELECT "deploys".* FROM "deploys" WHERE "deploys"."environment_id" = 1 AND "deploys"."build" = '1.0' LIMIT 1
  Environment Load (0.4ms)  SELECT "environments".* FROM "environments" WHERE "environments"."id" = 1 LIMIT 1
  CACHE (0.0ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
  Deploy Exists (0.6ms)  SELECT 1 AS one FROM "deploys" WHERE ("deploys"."build" = '1.0' AND "deploys"."id" != 1 AND "deploys"."environment_id" = 1) LIMIT 1
   (0.3ms)  COMMIT
  Symbolication Load (0.5ms)  SELECT "symbolications".* FROM "symbolications" WHERE "symbolications"."uuid" = '025C250D-60D2-3B44-8D91-4F388F429BFB' LIMIT 1
   (0.2ms)  BEGIN
  Bug Load (21.6ms)  SELECT "bugs".* FROM "bugs" WHERE "bugs"."environment_id" = 1 AND "bugs"."class_name" = 'NSRangeException' AND "bugs"."file" = '0x3A3F9350' AND "bugs"."line" = 1 AND "bugs"."blamed_revision" IS NULL AND "bugs"."deploy_id" = 1 LIMIT 1
   (0.4ms)  COMMIT
   (0.4ms)  BEGIN
  CACHE (0.0ms)  SELECT "environments".* FROM "environments" WHERE "environments"."id" = 1 LIMIT 1
  Comment Load (15.8ms)  SELECT "comments".* FROM "comments" WHERE "comments"."bug_id" = 4
   (182.8ms)   UPDATE bugs
 SET searchable_text = SETWEIGHT(TO_TSVECTOR('NSRangeException'), 'A') ||
 SETWEIGHT(TO_TSVECTOR('*** -: index beyond bounds .. ]'), 'B') ||
 SETWEIGHT(TO_TSVECTOR(''), 'C')
 WHERE id = 4

   (0.5ms)  COMMIT
  CACHE (0.0ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
   (0.2ms)  BEGIN
  SQL (269.4ms)  INSERT INTO "occurrences" ("bug_id", "client", "crashed", "metadata", "number", "occurred_at", "redirect_target_id", "revision", "symbolication_id") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING "id"  [["bug_id", 4], ["client", "cocoa"], ["crashed", false], ["metadata", "{\"power_state\":\"UIDeviceBatteryStateUnknown\",\"backtraces\":[{\"name\":\"Thread 0\",\"backtrace\":[{\"type\":\"address\",\"address\":977245008},{\"type\":\"address\",\"address\":976931187},{\"type\":\"address\",\"address\":462479},{\"type\":\"address\",\"address\":839189887},{\"type\":\"address\",\"address\":972012133},{\"type\":\"address\",\"address\":966033531},{\"type\":\"address\",\"address\":966033684},{\"type\":\"address\",\"address\":966038937},{\"type\":\"address\",\"address\":972011985},{\"type\":\"address\",\"address\":838430497},{\"type\":\"address\",\"address\":838430025},{\"type\":\"address\",\"address\":901128939},{\"type\":\"address\",\"address\":871023361},{\"type\":\"address\",\"address\":451415}],\"registers\":[[\"r0\",0],[\"r1\",0],[\"r2\",0],[\"r3\",1005516084],[\"r4\",6],[\"r5\",1005517704],[\"r6\",508992528],[\"r7\",802765244],[\"r8\",23],[\"r9\",1005500584],[\"r10\",934296095],[\"r11\",934296080],[\"r12\",328],[\"sp\",802765232],[\"lr\",976683299],[\"pc\",977245008],[\"cpsr\",16]],\"faulted\":true},{\"name\":\"Thread 1\",\"backtrace\":[{\"type\":\"address\",\"address\":977180232},{\"type\":\"address\",\"address\":976328280}],\"registers\":null,\"faulted\":false},{\"name\":\"Thread 2\",\"backtrace\":[{\"type\":\"address\",\"address\":977178292},{\"type\":\"address\",\"address\":839012421},{\"type\":\"address\",\"address\":839007651},{\"type\":\"address\",\"address\":838430397},{\"type\":\"address\",\"address\":838430025},{\"type\":\"address\",\"address\":939119877},{\"type\":\"address\",\"address\":976560913}],\"registers\":null,\"faulted\":false},{\"name\":\"Thread 3\",\"backtrace\":[{\"type\":\"address\",\"address\":977247640},{\"type\":\"address\",\"address\":976517654}],\"registers\":null,\"faulted\":false}],\"version\":\"1.0\",\"operating_system\":\"iPhone OS\",\"device_type\":\"iPad2,5\",\"message\":\"*** -[__NSArrayM insertObject:atIndex:]: index 9 beyond bounds [0 .. 7]\",\"build\":\"1.0\",\"arguments\":\"/var/mobile/Applications/E5838338-7354-494F-94E1-4EBE3C305E00/Crasher.app/Crasher\",\"process_path\":\"/var/mobile/Applications/E5838338-7354-494F-94E1-4EBE3C305E00/Crasher.app/Crasher\",\"os_version\":\"6.1.3\",\"os_build\":\"10B329\",\"hostname\":\"C07354-iPad-Mini\",\"parent_process\":\"launchd\",\"physical_memory\":527417344,\"pid\":2531,\"process_native\":true,\"architecture\":\"ARMv7\",\"orientation\":\"UIDeviceOrientationFaceUp\",\"connectivity\":\"wifi\",\"env_vars\":{\"SHELL\":\"/bin/sh\",\"CFFIXED_USER_HOME\":\"/private/var/mobile/Applications/E5838338-7354-494F-94E1-4EBE3C305E00\",\"PATH\":\"/usr/bin:/bin:/usr/sbin:/sbin\",\"TMPDIR\":\"/private/var/mobile/Applications/E5838338-7354-494F-94E1-4EBE3C305E00/tmp\",\"__CF_USER_TEXT_ENCODING\":\"0x1F5:0:0\",\"USER\":\"mobile\",\"LOGNAME\":\"mobile\",\"HOME\":\"/private/var/mobile/Applications/E5838338-7354-494F-94E1-4EBE3C305E00\"},\"user_id\":null,\"root\":null,\"device_id\":null,\"network_operator\":null,\"network_type\":null,\"schema\":null,\"host\":null,\"path\":null,\"query\":null,\"controller\":null,\"action\":null,\"browser_name\":null,\"browser_version\":null,\"browser_engine\":null,\"browser_os\":null,\"browser_engine_version\":null}"], ["number", nil], ["occurred_at", Mon, 08 Jul 2013 12:02:47 PDT -07:00], ["redirect_target_id", nil], ["revision", "467072b1bbe8b0e1b08c03f1ef90cac59b5215d3"], ["symbolication_id", "025C250D-60D2-3B44-8D91-4F388F429BFB"]]
  Occurrence Load (1.2ms)  SELECT "occurrences".* FROM "occurrences" WHERE "occurrences"."id" = $1 LIMIT 1  [["id", 11]]
   (0.7ms)  COMMIT
  CACHE (0.0ms)  SELECT "occurrences".* FROM "occurrences" WHERE "occurrences"."id" = $1 LIMIT 1  [["id", 11]]
  Bug Load (0.7ms)  SELECT "bugs".* FROM "bugs" WHERE "bugs"."id" = 4 LIMIT 1
  Environment Load (0.5ms)  SELECT "environments".* FROM "environments" WHERE "environments"."id" = 1 LIMIT 1
  Project Load (0.4ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
  User Load (1.0ms)  SELECT "users".* FROM "users" WHERE "users"."id" IN (NULL)
  NotificationThreshold Load (13.8ms)  SELECT "notification_thresholds".* FROM "notification_thresholds" WHERE "notification_thresholds"."bug_id" = 4
  CACHE (0.0ms)  SELECT "occurrences".* FROM "occurrences" WHERE "occurrences"."id" = $1 LIMIT 1  [["id", 11]]
  CACHE (0.0ms)  SELECT "bugs".* FROM "bugs" WHERE "bugs"."id" = 4 LIMIT 1
  CACHE (0.0ms)  SELECT "environments".* FROM "environments" WHERE "environments"."id" = 1 LIMIT 1
  CACHE (0.0ms)  SELECT "projects".* FROM "projects" WHERE "projects"."id" = 1 LIMIT 1
Completed 200 OK in 1467ms (ActiveRecord: 547.8ms)