I am running Spree 0-60-stable on Rails 3.0.9 on Heroku Bamboo MRI (Ruby) 1.9.2
Some time on or about Sat, 03 Dec 2011, I began receiving "SystemStackError (stack level too deep)" messages in controllers that did not throw that error before. I had not recompiled the slug since the 28th November. I first tried restarting my web processes, to no avail. I have since made a nominal change (a line of whitespace in my Gemfile) so I could get a slug recompile and pushed that up. No change. I'm still getting the error. I went to look at available stacks I might migrate to, but none others besides the one I'm on bamboo-mri-1.9.2 explicitly support the version of ruby my app is using.
The error (according to Heroku support) is:
ActionView::Template::Error (stack level too deep)
They went on to say, "This implies that you have something within your template which is making a likely-recursive call. While a lack of a code change might indicate some weird behavior on our end, it's also possible that something changed in your database or something was time-based that caused a change in behavior. In either case, a full stack trace would be helpful. Are you using Airbrake or Exceptional to be able to capture this error and determine the source?"
I have since added both Airbrake (Hoptoad) and Exceptional to check what they might show in terms of stack trace. Both provide the same file/line reference, but no further information:
.bundle/gems/ruby/1.9.1/gems/actionpack-3.0.9/lib/action_controller/metal/rescue.rb:19
This doesn't seem very helpful because it's the rescue itself rather than whatever line of code actually triggered it, about which I have only the outermost context. I'm seeing the same error in several places:
- admin/shipments#edit
- http://www.example.com/admin/orders/R123456789/shipments/H12345678909/edit
- .bundle/gems/ruby/1.9.1/gems/actionpack-3.0.9/lib/action_controller/metal/rescue.rb:19
- checkout#edit
- http://www.example.com/checkout/delivery
- .bundle/gems/ruby/1.9.1/gems/arel-2.0.10/lib/arel/table.rb:44
- checkout#edit
- http://www.example.com/checkout/delivery
- .bundle/gems/ruby/1.9.1/gems/arel-2.0.10/lib/arel/visitors/to_sql.rb:305
- checkout#update
- http://www.example.com/checkout/update/address
- .bundle/gems/ruby/1.9.1/gems/actionpack-3.0.9/lib/action_controller/metal/rescue.rb:19
So here's my issue in summary:
- I didn't change my code and the problem appeared 'out of nowhere'.
- If it was a data change, for example a setting in the admin, which was it?
- Troubleshooting is rendered difficult by the lack of a full stack trace.
And finally, my question:
Can the origin of "SystemStackError: stack level too deep" be identified without a full stack trace?
Many thanks in advance for any assistance.