Dd-trace-rb: resque v2.0.0 is marked not compatible and resque traces no longer send to datadog

Created on 17 Oct 2020  路  9Comments  路  Source: DataDog/dd-trace-rb

I've started seeing the following warning message after updating ddtrace gem from 0.24 to 0.38 and we no longer send resque traces to Datadog. We use resque version 2.0.0 for our app!

WARN -- ddtrace: [ddtrace] Unable to patch Datadog::Contrib::Resque::Integration (Available?: true, Loaded? true, Compatible? false, Patchable? false)

Upon some investigation, I've seen a change to introduce compatibility code in 0.33 https://github.com/DataDog/dd-trace-rb/commit/32f512a892fa80d2c8106c27b7aba36c4cc4b481#diff-634324f12f4d56be23939e039054a50248519155526f60647d113371e762c32e which introduced gem version check for resque. In particular, version < Gem::Version.new('2.0') would fail when the resque gem is 2.0.0.

From our testing on our staging environment, we found that downgrading resque to under 2.0.0 has recovered its former behaviour. Is there a particular reason why we don't allow version 2.0.0 for resque? It's been the latest stable for 2 years and it's working fine!

Most helpful comment

@erict-square just to update we merged in resque2.0 support here, https://github.com/DataDog/dd-trace-rb/pull/1213 and this should be out in the next release. We can ping here when this is released.

All 9 comments

馃憢 hey @erict-square , thanks for reaching out on this.

I think the request here for resque 2.0+ support is perfectly reasonable. I'll try to touch base with some of the folks who originally added in this version restriction, but it looks like resque 2.x has maintained the interface for patching that we leverage in 1.x. So I think, broadly speaking, we should be able to support 2.0. That being said we'll want to add some more robust tests for this support since we want to ensure we don't introduce a regression.

We appreciate the PR but I think the goal would be not to change the semantic meaning of MAXIMUM_VERSION but instead, lift or remove the maximum version for this integration. This will include adding tests. I'll try to prioritize this work this week, and have this out for our next release if possible, and keep you updated on our progress here. Is that reasonable?

hey @ericmustin the proposed timeline works for me! Your comment/concern about MAXIMUM_VERSION also makes sense (I'm seeing a comment in this line that suggests that MAXIMUM_VERSION is non inclusive)

We've been running resque 2.0.0 with ddtrace for months now, so I'm pretty confident that unless something has drastically changed between version 0.24 and 0.38 for resque integration in ddtrace, running resque 2.0.0 is likely ok

@erict-square just to update we merged in resque2.0 support here, https://github.com/DataDog/dd-trace-rb/pull/1213 and this should be out in the next release. We can ping here when this is released.

Thanks a lot @ericmustin , really appreciate on how fast you've moved this forward! When can we expect the next ddtrace release? Now we're running in the vacuum for resque monitoring and we don't feel that it's right to 1. downgrade resque or 2. fork to create a gem on our own. Is there a possibility to create a patch release on the current stable version?

@erict-square No problem. I think a patch makes sense, we can prob do a patch release in the next day or two. I'm in CEST timezone but let me sync with the team tmrw and see what we can do here. I'll update here.

@erict-square we've released 0.42.0 with this , if you want to give it a try. If you can update here whether this unblocks you on resque, I can close out this issue https://github.com/DataDog/dd-trace-rb/releases/tag/v0.42.0

@erict-square friendly ping here, did y'all have a chance to try this out?

closing this as it should be resolved, but please feel free to open an issue referencing this one if any new problems occur

Was this page helpful?
0 / 5 - 0 ratings