Skip to content
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

chore(deps): bump redis from 4.8.1 to 5.0.8 #11698

Merged
merged 2 commits into from
Jan 28, 2024

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Oct 23, 2023

Bumps redis from 4.8.1 to 5.0.8.

Changelog

Sourced from redis's changelog.

5.0.8

  • Fix Redis#without_reconnect for sentinel clients. Fix #1212.
  • Add sentinel_username, sentinel_password for sentinel clients. Bump redis-client to >=0.17.0. See #1213

5.0.7

  • Fix compatibility with redis-client 0.15.0 when using Redis Sentinel. Fix #1209.

5.0.6

  • Wait for an extra config.read_timeout in blocking commands rather than an arbitrary 100ms. See #1175.
  • Treat ReadOnlyError as ConnectionError. See #1168.

5.0.5

  • Fix automatic disconnection when the process was forked. See #1157.

5.0.4

  • Cast ttl argument to integer in expire, setex and a few others.

5.0.3

  • Add OutOfMemoryError as a subclass of CommandError

5.0.2

  • Fix Redis#close to properly reset the fork protection check.

5.0.1

  • Added a fake Redis::Connections.drivers method to be compatible with older sidekiq versions.

5.0.0

  • Default client timeout decreased from 5 seconds to 1 second.
  • Eagerly and strictly cast Integer and Float parameters.
  • Allow to call subscribe, unsubscribe, psubscribe and punsubscribe from a subscribed client. See #1131.
  • Use MD5 for hashing server nodes in Redis::Distributed. This should improve keys distribution among servers. See #1089.
  • Changed sadd and srem to now always return an Integer.
  • Added sadd? and srem? which always return a Boolean.
  • Added support for IDLE paramter in xpending.
  • Cluster support has been moved to a redis-clustering companion gem.
  • select no longer record the current database. If the client has to reconnect after select was used, it will reconnect to the original database.
  • Better support Float timeout in blocking commands. See #977.
  • Redis.new will now raise an error if provided unknown options.
  • Removed positional timeout in blocking commands (BLPOP, etc). Timeout now must be passed as an option: r.blpop("key", timeout: 2.5)
  • Removed logger option.
  • Removed reconnect_delay_max and reconnect_delay, you can pass precise sleep durations to reconnect_attempts instead.

... (truncated)

Commits
  • 2b183ad Release 5.0.8
  • 230a5c4 Merge pull request #1227 from supercaracal/add-sharded-pubsub-support
  • 54e6a7e Add sharded Pub/Sub support for cluster
  • ccdf15f Merge pull request #1226 from supercaracal/support-transaction-for-cluster-cl...
  • dda95f8 Support transactions for cluster client
  • c888c74 Merge pull request #1225 from afinzel/master
  • ad0f30b Update default timeout docs
  • 8e9183a Update sentinel auth with explicit kwargs (#1221)
  • 01de51a Merge pull request #1222 from supercaracal/fix-cluster
  • ea4d04a Fix redis-clustering gem to pass the test with latest dependencies
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot dependabot bot added dependencies ruby Pull requests that update Ruby code labels Oct 23, 2023
@sigmundpetersen
Copy link
Contributor

#11038 (comment)

@mkllnk
Copy link
Member

mkllnk commented Oct 30, 2023

Something we've previously seen only on production is now showing up in testing. Much better this way:

Failures:

  1) 
    As an entreprise user
    I want to manage vouchers
 adding voucher when entering invalid data shows an error flash message
     Failure/Error: raise Client::ERROR_MAPPING.fetch(event.class), event.message
     
     Redis::CommandError:
       ERR Protocol error: too big inline request
     
     [Screenshot Image]: /home/runner/work/openfoodnetwork/openfoodnetwork/tmp/capybara/screenshots/failures_r_spec_example_groups_as_an_entreprise_user_i_want_to_manage_vouchers_adding_voucher_when_entering_invalid_data_shows_an_error_flash_message_929.png

     
     # /home/runner/work/openfoodnetwork/openfoodnetwork/vendor/bundle/ruby/3.1.0/gems/redis-5.0.8/lib/redis/subscribe.rb:68:in `subscription'

This is an open blocking issue for now:

@mkllnk
Copy link
Member

mkllnk commented Oct 30, 2023

We also see a new error which has been fixed in another branch:

Failures:

  1) 
    As a Super Admin
    I want to be able to set a distributor on each payment method
 when updating payment method with invalid data and changing calculator type displays the number of errors
     Failure/Error: Rails.cache.delete(@payment_method.calculator.preference_cache_key(key))
     
     TypeError:
       Unsupported command argument type: NilClass
     
     [Screenshot Image]: /home/runner/work/openfoodnetwork/openfoodnetwork/tmp/capybara/screenshots/failures_r_spec_example_groups_as_a_super_admin_i_want_to_be_able_to_set_a_distributor_on_each_payment_method_when_updating_payment_method_with_invalid_data_and_changing_calculator_type_displays_the_number_of__628.png

     
     # ./app/controllers/spree/admin/payment_methods_controller.rb:200:in `block in clear_preference_cache'

Bumps [redis](https://github.com/redis/redis-rb) from 4.8.1 to 5.0.8.
- [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md)
- [Commits](redis/redis-rb@v4.8.1...v5.0.8)

---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@mkllnk mkllnk force-pushed the dependabot/bundler/redis-5.0.8 branch from f4a806d to 328904a Compare January 25, 2024 01:20
@mkllnk mkllnk self-assigned this Jan 25, 2024
The hiredis client was praised as being faster parsing bulk responses
but it seems to have multiple issues now:

- The redis release 5.0 moved hiredis support to another gem.
- I tried the hiredis-client gem and it raised errors.
- There are claims of worse performance of hiredis [1].
- Maintenance responsiveness has been questioned [2].

Using the default redis driver seems to work fine though.

[1]: https://discuss.rubyonrails.org/t/hiredis-does-not-support-ssl-action-cable/75945
[2]: redis/hiredis#655
@mkllnk mkllnk force-pushed the dependabot/bundler/redis-5.0.8 branch from 1737494 to 687176c Compare January 25, 2024 02:43
Copy link
Member

@dacook dacook left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, less custom config hopefully means less issues in the long run!

Copy link
Collaborator

@rioug rioug left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good 👍

@rioug rioug merged commit d549924 into master Jan 28, 2024
52 checks passed
@rioug rioug deleted the dependabot/bundler/redis-5.0.8 branch January 28, 2024 23:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies ruby Pull requests that update Ruby code
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants