New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"Stack level is too deep" on 7.3.3 when calling from Sneakers (7.2.0) worker with Rails 5.2.0 #850
Comments
Hi, thanks for the detailed bug report. I'll need some time to replicate it and I'll let you know if I need any additional info. |
Sorry, I cannot reproduce this bug. I have limited experience with Sneakers and RabbitMQ, so I shared my repository, which I created specifically for this bug: https://github.com/kyrylo/airbrake-bug-850 My worker: https://github.com/kyrylo/airbrake-bug-850/blob/master/app/workers/processor.rb
Can you please take a look and modify it accordingly to make it fail like you showed? |
@kyrylo thank you. Sure, I will fork it and try to reproduce it there. |
@kyrylo I was able to partially reproduce it, here is the base code - https://github.com/ivan-kolmychek/airbrake-bug-850/tree/try-to-reproduce-bug Apparently I was wrong about few things:
What I did to reproduce the error using code above:
I have placed a
Hope this helps, please let me know if you need more information. |
Awesome, thanks! Great instructions, I was able to reproduce the bug.
We try to load it automatically when Sneakers is detected. I added a manual |
My reply here is similar to my reply in that issue. We can't do much but exclude the object from |
It really depends on use-case I guess. The
Out of the data I see there, I know we may use:
I am not sure is It may also be a good idea to provide a way for each app to customize the way integration converts it, but it sounds like an overkll to me. |
I wrote
Yeah, sounds like an overkill to me. We may want to consider it once more integrations fall under the same use case.
Perfect, I think we can simply ignore those since they are causing |
That would work for our use-cases. |
Fixes #850 ("Stack level is too deep" on 7.3.3 when calling from Sneakers (7.2.0) worker with Rails 5.2.0) `as_json` causes problems on certain objects that Sneakers manages. We can't do anything but ignore them.
Fixes #850 ("Stack level is too deep" on 7.3.3 when calling from Sneakers (7.2.0) worker with Rails 5.2.0) `as_json` causes problems on certain objects that Sneakers manages. We can't do anything but ignore them.
Fixes #850 ("Stack level is too deep" on 7.3.3 when calling from Sneakers (7.2.0) worker with Rails 5.2.0) `as_json` causes problems on certain objects that Sneakers manages. We can't do anything but ignore them.
Fixes #850 ("Stack level is too deep" on 7.3.3 when calling from Sneakers (7.2.0) worker with Rails 5.2.0) `as_json` causes problems on certain objects that Sneakers manages. We can't do anything but ignore them.
Fixes #850 ("Stack level is too deep" on 7.3.3 when calling from Sneakers (7.2.0) worker with Rails 5.2.0) `as_json` causes problems on certain objects that Sneakers manages. We can't do anything but ignore them.
I just released v7.3.4 with this fix. Please update. |
@kyrylo thank you, can confirm now that problem is solved. |
Airbrake config
config/initializers/aribrake.rb
(omitting comments other than f-s-l):Right now airbrake is not hooked up into sneakers (as in
require 'airbrake/sneakers'
), we call it explicitly from workers where needed.I do see my own comment in code that we decided to not hook it up due to the very similar error in 7.2.1, but right now I cannot think of any reason why I thought just calling it explicitly will fix it.
Looks like, since we fixed the exceptions that were causing the problem, I have not checked that "Stack level is too deep" was actually fixed.
Description
When there is an exception which is sent to Airbrake via Airbrake.notify() from inside Sneakers worker, it raises
Stack level is too deep
error.I have searched issues for that before and found #743 which describes a very similar problem. The comment in #743 says it was fixed in airbrake-ruby 2.2.4, but apparently not for our use-case.
Example of trace that we have:
Please let me know if you need any more details.
The text was updated successfully, but these errors were encountered: