Comments (10)
I'll work on putting together a minimal setup that is able to reproduce the issue.
from airbrake.
We read max_retries
from Sidekiq class directly. If that's not configured, we use Sidekiq::JobRetry::DEFAULT_MAX_RETRY_ATTEMPTS
:
It's quite possible that we don't take into account sidekiq_options retry: 60
.
Thanks for the report!
from airbrake.
It's quite possible that we don't take into account sidekiq_options retry: 60.
I couldn't confirm this. In your sample params, I can see the correct retry
value ("retry": 3,
). After reading the code and testing, I can see that we do respect the per-job retry option.
airbrake/lib/airbrake/sidekiq/retryable_jobs_filter.rb
Lines 41 to 42 in 6ca4b60
I used the following code to test:
require 'sidekiq'
require 'airbrake'
::Sidekiq.options[:max_retries] = 1
Airbrake.configure do |c|
c.project_id = 1
c.project_key = 'asd'
c.logger = Logger.new(STDOUT)
c.performance_stats = false
c.remote_config = false
end
Airbrake.add_filter(Airbrake::Sidekiq::RetryableJobsFilter.new)
class TestWorker
include Sidekiq::Job
sidekiq_options retry: 3
sidekiq_retry_in do |count|
5
end
def perform(name)
p "Hey #{name}"
raise
end
end
TestWorker.perform_async('Joe')
Could you please provide a demo worker that demonstrates the problem that you mentioned?
from airbrake.
Gentle ping @dgsangoma.
from airbrake.
I've made a small test app to try to reproduce the issue, but am struggling to reliably reproduce the issue in the test app.
from airbrake.
Thanks! Could share the app and the instructions on how to run it? I can clone it and run it multiple times to see how it fails.
from airbrake.
I should clarify that I'm not sure I've managed to reproduce the issue yet in a small test Rails app, so there's some key detail about our production app that's missing from the test app that's required to reproduce the bug. I can confirm we're still seeing it intermittently in production on airbrake 13.0.3 / airbrake-ruby 6.2.0. I'll need to keep trying things to see if I can uncover what's missing that's required unless you have any suggestions for getting more insightful info out of our production app.
from airbrake.
I don't really have any debugging tips for you. By manual code inspection, it should work, but I am not a Sidekiq user, and I don't have a profound knowledge of it. Maybe you defined some sort of Sidekiq config that alters the behavior.
If you take a look at the example I shared above, does it look the same as your workers?
from airbrake.
My worker is part of a large Rails app as opposed to a single file standalone worker like the example above. Global sidekiq configuration is managed in our app via a yml config file. We have require "airbrake/sidekiq"
at the top of our Airbrake initializer. We've defined the sidekiq_retries_exhausted
callback to do additional failure handling on the final retry. I'm sure there's other differences that are less obvious.
I guess I'll continue to experiment and maybe eventually I'll stumble onto the bug.
from airbrake.
Thanks for the update. Maybe sidekiq_retries_exhausted
is the clue. For now, I am going to close this issue because I cannot take any action here without a reproducible example, but please do ping me in case the situation changes
from airbrake.
Related Issues (20)
- Add filter causing memory to increase HOT 1
- airbrake gem don't work with 7.0.0.alpha2 release HOT 8
- How to add exception specific context? HOT 3
- Airbrake: HTTP error: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed HOT 3
- InstrumentationSubscriberError HOT 6
- airbrake issues with lack of details HOT 1
- Airbrake does not track DB queries with MongoDB HOT 1
- Some people can get the alarm email, some people can't HOT 2
- APM only showing root paths HOT 1
- Airbrake Gem Attempts to Connect to Database in Databaseless App in Rails 6 HOT 4
- Airbrake 500 Errors HOT 31
- Airbrake and ruby 3.1 versions, change display of ErrorHighlight errors HOT 3
- Airbrake 13 SystemStackError:stack level too deep HOT 13
- Rails 7.0.3 with ruby 3.0.2 undefined method `new' for "Airbrake::Rack::Middleware":String (NoMethodError) HOT 2
- Mention options on how to disable performance/query/job stats HOT 1
- Airbrake seems to conflict with Scout and NR
- Rails 3.2 LTS error: uninitialized constant `Airbrake::Rails::ActiveRecord::Base`
- No clear documentation in terms of information being collected by default which includes PII
- <empty error message> when using a logger with a block HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from airbrake.