Skip to content

RedisAdapterTest#test_reconnections fails with redis v5.4.1 #55355

@yahonda

Description

@yahonda

Attempt to reproduce the CI failure at https://buildkite.com/rails/rails-nightly/builds/2544#01981a30-6722-4352-bbfb-87274df83307/1250-1256 and reproduced a similar case.

Steps to reproduce

git clone https://github.com/rails/rails/
cd rails/actioncable
bundle update redis --conservative
bundle info redis
bin/test test/subscription_adapter/redis_test.rb:19

Expected behavior

It should pass.

Actual behavior

$ bundle info redis
  * redis (5.4.1)
        Summary: A Ruby client library for Redis
        Homepage: https://github.com/redis/redis-rb
        Documentation: https://www.rubydoc.info/gems/redis/5.4.1
        Source Code: https://github.com/redis/redis-rb/tree/v5.4.1
        Changelog: https://github.com/redis/redis-rb/blob/master/CHANGELOG.md
        Bug Tracker: https://github.com/redis/redis-rb/issues
        Path: /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1
        Reverse Dependencies:
                redis-namespace (1.11.0) depends on redis (>= 4)
                resque-scheduler (4.11.0) depends on redis (>= 3.3)
$ bin/test test/subscription_adapter/redis_test.rb:19
Run options: --seed 1233

# Running:

#<Thread:0x00007c8c3bcaee20 /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:161 run> terminated with exception (report_on_exception is true):
/home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection.rb:103:in 'RedisClient::RubyConnection#read': EOFError (redis://127.0.0.1:6379/12) (Redis::ConnectionError)
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:521:in 'RedisClient::PubSub#next_event'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:66:in 'Redis::SubscribedClient#subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:17:in 'Redis::SubscribedClient#subscribe'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:177:in 'Redis#_subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/commands/pubsub.rb:17:in 'Redis::Commands::Pubsub#subscribe'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:93:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:733:in 'RedisClient#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/client.rb:91:in 'Redis::Client#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:429:in 'RedisClient#disable_reconnection'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:81:in 'Redis#without_reconnect'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:90:in 'ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:166:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#ensure_listener_running'
/home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection.rb:103:in 'RedisClient::RubyConnection#read': EOFError (redis://127.0.0.1:6379/12) (RedisClient::ConnectionError)
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:521:in 'RedisClient::PubSub#next_event'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:66:in 'Redis::SubscribedClient#subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:17:in 'Redis::SubscribedClient#subscribe'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:177:in 'Redis#_subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/commands/pubsub.rb:17:in 'Redis::Commands::Pubsub#subscribe'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:93:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:733:in 'RedisClient#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/client.rb:91:in 'Redis::Client#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:429:in 'RedisClient#disable_reconnection'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:81:in 'Redis#without_reconnect'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:90:in 'ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:166:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#ensure_listener_running'
/home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/buffered_io.rb:226:in 'block in RedisClient::RubyConnection::BufferedIO#fill_buffer': EOFError (EOFError)
        from <internal:kernel>:168:in 'Kernel#loop'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/buffered_io.rb:197:in 'RedisClient::RubyConnection::BufferedIO#fill_buffer'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/buffered_io.rb:187:in 'RedisClient::RubyConnection::BufferedIO#ensure_remaining'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/buffered_io.rb:152:in 'RedisClient::RubyConnection::BufferedIO#getbyte'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/resp3.rb:113:in 'RedisClient::RESP3.parse'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/resp3.rb:50:in 'RedisClient::RESP3.load'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection.rb:98:in 'block in RedisClient::RubyConnection#read'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/buffered_io.rb:114:in 'RedisClient::RubyConnection::BufferedIO#with_timeout'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection.rb:98:in 'RedisClient::RubyConnection#read'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:521:in 'RedisClient::PubSub#next_event'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:66:in 'Redis::SubscribedClient#subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:17:in 'Redis::SubscribedClient#subscribe'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:177:in 'Redis#_subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/commands/pubsub.rb:17:in 'Redis::Commands::Pubsub#subscribe'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:93:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:733:in 'RedisClient#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/client.rb:91:in 'Redis::Client#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:429:in 'RedisClient#disable_reconnection'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:81:in 'Redis#without_reconnect'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:90:in 'ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:166:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#ensure_listener_running'
E

Error:
RedisAdapterTest::AlternateConfiguration#test_reconnections:
Redis::SubscriptionError: This client is not subscribed
    /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:185:in 'Redis#_subscription'
    /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/commands/pubsub.rb:28:in 'Redis::Commands::Pubsub#unsubscribe'
    lib/action_cable/subscription_adapter/redis.rb:151:in 'block (2 levels) in ActionCable::SubscriptionAdapter::Redis::Listener#remove_channel'
    lib/action_cable/subscription_adapter/redis.rb:179:in 'ActionCable::SubscriptionAdapter::Redis::Listener#when_connected'
    lib/action_cable/subscription_adapter/redis.rb:151:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#remove_channel'
    lib/action_cable/subscription_adapter/redis.rb:150:in 'Thread::Mutex#synchronize'
    lib/action_cable/subscription_adapter/redis.rb:150:in 'ActionCable::SubscriptionAdapter::Redis::Listener#remove_channel'
    lib/action_cable/subscription_adapter/subscriber_map.rb:33:in 'block in ActionCable::SubscriptionAdapter::SubscriberMap#remove_subscriber'
    lib/action_cable/subscription_adapter/subscriber_map.rb:28:in 'Thread::Mutex#synchronize'
    lib/action_cable/subscription_adapter/subscriber_map.rb:28:in 'ActionCable::SubscriptionAdapter::SubscriberMap#remove_subscriber'
    lib/action_cable/subscription_adapter/redis.rb:37:in 'ActionCable::SubscriptionAdapter::Redis#unsubscribe'
    lib/action_cable/subscription_adapter/channel_prefix.rb:20:in 'ActionCable::SubscriptionAdapter::ChannelPrefix#unsubscribe'
    test/subscription_adapter/common.rb:42:in 'CommonSubscriptionAdapterTest#subscribe_as_queue'
    test/subscription_adapter/redis_test.rb:20:in 'RedisAdapterTest#test_reconnections'

Error:
RedisAdapterTest::AlternateConfiguration#test_reconnections:
Redis::SubscriptionError: This client is not subscribed
    /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:185:in 'Redis#_subscription'
    /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/commands/pubsub.rb:28:in 'Redis::Commands::Pubsub#unsubscribe'
    lib/action_cable/subscription_adapter/redis.rb:133:in 'block (2 levels) in ActionCable::SubscriptionAdapter::Redis::Listener#shutdown'
    lib/action_cable/subscription_adapter/redis.rb:179:in 'ActionCable::SubscriptionAdapter::Redis::Listener#when_connected'
    lib/action_cable/subscription_adapter/redis.rb:132:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#shutdown'
    lib/action_cable/subscription_adapter/redis.rb:129:in 'Thread::Mutex#synchronize'
    lib/action_cable/subscription_adapter/redis.rb:129:in 'ActionCable::SubscriptionAdapter::Redis::Listener#shutdown'
    lib/action_cable/subscription_adapter/redis.rb:41:in 'ActionCable::SubscriptionAdapter::Redis#shutdown'
    test/subscription_adapter/common.rb:25:in 'Array#each'
    test/subscription_adapter/common.rb:25:in 'CommonSubscriptionAdapterTest#teardown'


bin/test test/subscription_adapter/redis_test.rb:19

#<Thread:0x00007c8c3bca1450 /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:161 run> terminated with exception (report_on_exception is true):
/home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection.rb:103:in 'RedisClient::RubyConnection#read': EOFError (redis://localhost:6379) (Redis::ConnectionError)
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:521:in 'RedisClient::PubSub#next_event'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:66:in 'Redis::SubscribedClient#subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:17:in 'Redis::SubscribedClient#subscribe'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:177:in 'Redis#_subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/commands/pubsub.rb:17:in 'Redis::Commands::Pubsub#subscribe'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:93:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:733:in 'RedisClient#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/client.rb:91:in 'Redis::Client#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:429:in 'RedisClient#disable_reconnection'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:81:in 'Redis#without_reconnect'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:90:in 'ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:166:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#ensure_listener_running'
/home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection.rb:103:in 'RedisClient::RubyConnection#read': EOFError (redis://localhost:6379) (RedisClient::ConnectionError)
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:521:in 'RedisClient::PubSub#next_event'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:66:in 'Redis::SubscribedClient#subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:17:in 'Redis::SubscribedClient#subscribe'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:177:in 'Redis#_subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/commands/pubsub.rb:17:in 'Redis::Commands::Pubsub#subscribe'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:93:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:733:in 'RedisClient#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/client.rb:91:in 'Redis::Client#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:429:in 'RedisClient#disable_reconnection'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:81:in 'Redis#without_reconnect'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:90:in 'ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:166:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#ensure_listener_running'
/home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/buffered_io.rb:226:in 'block in RedisClient::RubyConnection::BufferedIO#fill_buffer': EOFError (EOFError)
        from <internal:kernel>:168:in 'Kernel#loop'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/buffered_io.rb:197:in 'RedisClient::RubyConnection::BufferedIO#fill_buffer'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/buffered_io.rb:187:in 'RedisClient::RubyConnection::BufferedIO#ensure_remaining'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/buffered_io.rb:152:in 'RedisClient::RubyConnection::BufferedIO#getbyte'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/resp3.rb:113:in 'RedisClient::RESP3.parse'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/resp3.rb:50:in 'RedisClient::RESP3.load'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection.rb:98:in 'block in RedisClient::RubyConnection#read'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection/buffered_io.rb:114:in 'RedisClient::RubyConnection::BufferedIO#with_timeout'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client/ruby_connection.rb:98:in 'RedisClient::RubyConnection#read'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:521:in 'RedisClient::PubSub#next_event'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:66:in 'Redis::SubscribedClient#subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/subscribe.rb:17:in 'Redis::SubscribedClient#subscribe'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:177:in 'Redis#_subscription'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/commands/pubsub.rb:17:in 'Redis::Commands::Pubsub#subscribe'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:93:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:733:in 'RedisClient#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/client.rb:91:in 'Redis::Client#ensure_connected'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-client-0.24.0/lib/redis_client.rb:429:in 'RedisClient#disable_reconnection'
        from /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:81:in 'Redis#without_reconnect'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:90:in 'ActionCable::SubscriptionAdapter::Redis::Listener#listen'
        from /home/yahonda/src/github.com/rails/rails/actioncable/lib/action_cable/subscription_adapter/redis.rb:166:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#ensure_listener_running'
E

Error:
RedisAdapterTest#test_reconnections:
Redis::SubscriptionError: This client is not subscribed
    /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:185:in 'Redis#_subscription'
    /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/commands/pubsub.rb:28:in 'Redis::Commands::Pubsub#unsubscribe'
    lib/action_cable/subscription_adapter/redis.rb:151:in 'block (2 levels) in ActionCable::SubscriptionAdapter::Redis::Listener#remove_channel'
    lib/action_cable/subscription_adapter/redis.rb:179:in 'ActionCable::SubscriptionAdapter::Redis::Listener#when_connected'
    lib/action_cable/subscription_adapter/redis.rb:151:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#remove_channel'
    lib/action_cable/subscription_adapter/redis.rb:150:in 'Thread::Mutex#synchronize'
    lib/action_cable/subscription_adapter/redis.rb:150:in 'ActionCable::SubscriptionAdapter::Redis::Listener#remove_channel'
    lib/action_cable/subscription_adapter/subscriber_map.rb:33:in 'block in ActionCable::SubscriptionAdapter::SubscriberMap#remove_subscriber'
    lib/action_cable/subscription_adapter/subscriber_map.rb:28:in 'Thread::Mutex#synchronize'
    lib/action_cable/subscription_adapter/subscriber_map.rb:28:in 'ActionCable::SubscriptionAdapter::SubscriberMap#remove_subscriber'
    lib/action_cable/subscription_adapter/redis.rb:37:in 'ActionCable::SubscriptionAdapter::Redis#unsubscribe'
    lib/action_cable/subscription_adapter/channel_prefix.rb:20:in 'ActionCable::SubscriptionAdapter::ChannelPrefix#unsubscribe'
    test/subscription_adapter/common.rb:42:in 'CommonSubscriptionAdapterTest#subscribe_as_queue'
    test/subscription_adapter/redis_test.rb:20:in 'RedisAdapterTest#test_reconnections'

Error:
RedisAdapterTest#test_reconnections:
Redis::SubscriptionError: This client is not subscribed
    /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis.rb:185:in 'Redis#_subscription'
    /home/yahonda/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0/gems/redis-5.4.1/lib/redis/commands/pubsub.rb:28:in 'Redis::Commands::Pubsub#unsubscribe'
    lib/action_cable/subscription_adapter/redis.rb:133:in 'block (2 levels) in ActionCable::SubscriptionAdapter::Redis::Listener#shutdown'
    lib/action_cable/subscription_adapter/redis.rb:179:in 'ActionCable::SubscriptionAdapter::Redis::Listener#when_connected'
    lib/action_cable/subscription_adapter/redis.rb:132:in 'block in ActionCable::SubscriptionAdapter::Redis::Listener#shutdown'
    lib/action_cable/subscription_adapter/redis.rb:129:in 'Thread::Mutex#synchronize'
    lib/action_cable/subscription_adapter/redis.rb:129:in 'ActionCable::SubscriptionAdapter::Redis::Listener#shutdown'
    lib/action_cable/subscription_adapter/redis.rb:41:in 'ActionCable::SubscriptionAdapter::Redis#shutdown'
    test/subscription_adapter/common.rb:25:in 'Array#each'
    test/subscription_adapter/common.rb:25:in 'CommonSubscriptionAdapterTest#teardown'


bin/test test/subscription_adapter/redis_test.rb:19



Finished in 0.051265s, 39.0126 runs/s, 117.0379 assertions/s.
2 runs, 6 assertions, 0 failures, 2 errors, 0 skips
$

System configuration

Rails version: main branch

Ruby version: $ ruby -v
ruby 3.4.5 (2025-07-16 revision 20cda200d3) +PRISM [x86_64-linux]

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions