Skip to content

Regression from 8.8.0 to 8.8.1 with TestData module #303

@javierjulio

Description

@javierjulio

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    waiting for feedbackIndicates LaunchDarkly is waiting for customer feedback before issue is closed due to staleness.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions