-
Notifications
You must be signed in to change notification settings - Fork 55
Description
Describe the bug
We updated from 8.8.0 to 8.8.1 and started to run into a regression with the TestData module. Our test suite would often fail with a flaky test when running 8.8.1. For now we've downgraded to 8.8.0.
We are running Ruby 3.3.5 which reviewing the change in 8.8.1 seemed logical to update as it's just a bug fix although we aren't aware of the issue affecting us. It was surprising to encounter a regression with TestData and figured it's worth to report it.
This is a sample error and stacktrace we encounter with 8.8.1 in our test suite:
NoMethodError:
undefined method `namespace' for an instance of String
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/impl/data_store.rb:49:in `eql?'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/expiring_cache.rb:51:in `delete'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/expiring_cache.rb:51:in `block in delete'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/expiring_cache.rb:48:in `synchronize'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/expiring_cache.rb:48:in `delete'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/integrations/util/store_wrapper.rb:106:in `upsert'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/impl/integrations/redis_impl.rb:86:in `upsert'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/impl/store_client_wrapper.rb:43:in `block in upsert'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/impl/store_client_wrapper.rb:70:in `wrapper'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/impl/store_client_wrapper.rb:43:in `upsert'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/impl/integrations/test_data/test_data_source.rb:34:in `upsert'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/integrations/test_data.rb:192:in `block (2 levels) in update_item'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/integrations/test_data.rb:191:in `each'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/integrations/test_data.rb:191:in `block in update_item'
# /usr/local/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb:79:in `with_read_lock'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/integrations/test_data.rb:190:in `update_item'
# /usr/local/bundle/ruby/3.3.0/gems/launchdarkly-server-sdk-8.8.1/lib/ldclient-rb/integrations/test_data.rb:127:in `update'
Was there meant to be a change with the TestData integration in the 8.8.1 release? I can provide the module set up and the set-feature-flag test helper method we use for that TestData integration if it helps. We run our rspec tests in parallel using the turbo_tests gem.
I will try to create a reproduction and follow up with that. I figure it would help to share this if any hint with the error and stacktrace.
SDK version
8.8.1
Language version, developer tools
Ruby 3.3.5
OS/platform
Linux Alpine
Additional context
Add any other context about the problem here.