Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rubygem-actioncable-7.0 for
openSUSE:Factory checked in at 2023-07-03 17:43:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-actioncable-7.0 (Old)
and /work/SRC/openSUSE:Factory/.rubygem-actioncable-7.0.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-actioncable-7.0"
Mon Jul 3 17:43:06 2023 rev:8 rq:1096435 version:7.0.5.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/rubygem-actioncable-7.0/rubygem-actioncable-7.0.changes
2023-04-21 18:47:40.480134303 +0200
+++
/work/SRC/openSUSE:Factory/.rubygem-actioncable-7.0.new.13546/rubygem-actioncable-7.0.changes
2023-07-03 17:43:08.980847252 +0200
@@ -1,0 +2,12 @@
+Tue Jun 27 19:30:57 UTC 2023 - Mykola Krachkovsky <[email protected]>
+
+- updated to version 7.0.5.1
+ *
https://rubyonrails.org/2023/6/26/Rails-Versions-7-0-5-1-6-1-7-4-have-been-released
+
+-------------------------------------------------------------------
+Mon Jun 26 19:05:40 UTC 2023 - Mykola Krachkovsky <[email protected]>
+
+- updated to version 7.0.5
+ * https://rubyonrails.org/2023/5/24/Rails-7-0-5-has-been-released
+
+-------------------------------------------------------------------
Old:
----
actioncable-7.0.4.3.gem
New:
----
actioncable-7.0.5.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-actioncable-7.0.spec ++++++
--- /var/tmp/diff_new_pack.VFKAZJ/_old 2023-07-03 17:43:09.620851020 +0200
+++ /var/tmp/diff_new_pack.VFKAZJ/_new 2023-07-03 17:43:09.624851044 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-actioncable-7.0
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
#
Name: rubygem-actioncable-7.0
-Version: 7.0.4.3
+Version: 7.0.5.1
Release: 0
%define mod_name actioncable
%define mod_full_name %{mod_name}-%{version}
++++++ actioncable-7.0.4.3.gem -> actioncable-7.0.5.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md 2023-03-13 19:52:54.000000000 +0100
+++ new/CHANGELOG.md 2023-06-26 23:35:18.000000000 +0200
@@ -1,3 +1,15 @@
+## Rails 7.0.5.1 (June 26, 2023) ##
+
+* No changes.
+
+
+## Rails 7.0.5 (May 24, 2023) ##
+
+* Restore Action Cable Redis pub/sub listener on connection failure.
+
+ *Vladimir Dementyev*
+
+
## Rails 7.0.4.3 (March 13, 2023) ##
* No changes.
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/action_cable/gem_version.rb
new/lib/action_cable/gem_version.rb
--- old/lib/action_cable/gem_version.rb 2023-03-13 19:52:54.000000000 +0100
+++ new/lib/action_cable/gem_version.rb 2023-06-26 23:35:18.000000000 +0200
@@ -9,8 +9,8 @@
module VERSION
MAJOR = 7
MINOR = 0
- TINY = 4
- PRE = "3"
+ TINY = 5
+ PRE = "1"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/action_cable/subscription_adapter/redis.rb
new/lib/action_cable/subscription_adapter/redis.rb
--- old/lib/action_cable/subscription_adapter/redis.rb 2023-03-13
19:52:54.000000000 +0100
+++ new/lib/action_cable/subscription_adapter/redis.rb 2023-06-26
23:35:18.000000000 +0200
@@ -46,7 +46,7 @@
private
def listener
- @listener || @server.mutex.synchronize { @listener ||=
Listener.new(self, @server.event_loop) }
+ @listener || @server.mutex.synchronize { @listener ||=
Listener.new(self, config_options, @server.event_loop) }
end
def redis_connection_for_broadcasts
@@ -56,11 +56,15 @@
end
def redis_connection
-
self.class.redis_connector.call(@server.config.cable.symbolize_keys.merge(id:
identifier))
+ self.class.redis_connector.call(config_options)
+ end
+
+ def config_options
+ @config_options ||= @server.config.cable.symbolize_keys.merge(id:
identifier)
end
class Listener < SubscriberMap
- def initialize(adapter, event_loop)
+ def initialize(adapter, config_options, event_loop)
super()
@adapter = adapter
@@ -69,6 +73,11 @@
@subscribe_callbacks = Hash.new { |h, k| h[k] = [] }
@subscription_lock = Mutex.new
+ @reconnect_attempt = 0
+ # Use the same config as used by Redis conn
+ @reconnect_attempts = config_options.fetch(:reconnect_attempts, 1)
+ @reconnect_attempts = Array.new(@reconnect_attempts, 0) if
@reconnect_attempts.is_a?(Integer)
+
@subscribed_client = nil
@when_connected = []
@@ -84,6 +93,7 @@
on.subscribe do |chan, count|
@subscription_lock.synchronize do
if count == 1
+ @reconnect_attempt = 0
@subscribed_client = original_client
until @when_connected.empty?
@@ -150,8 +160,16 @@
@thread ||= Thread.new do
Thread.current.abort_on_exception = true
- conn = @adapter.redis_connection_for_subscriptions
- listen conn
+ begin
+ conn = @adapter.redis_connection_for_subscriptions
+ listen conn
+ rescue ConnectionError
+ reset
+ if retry_connecting?
+ when_connected { resubscribe }
+ retry
+ end
+ end
end
end
@@ -163,7 +181,36 @@
end
end
+ def retry_connecting?
+ @reconnect_attempt += 1
+
+ return false if @reconnect_attempt > @reconnect_attempts.size
+
+ sleep_t = @reconnect_attempts[@reconnect_attempt - 1]
+
+ sleep(sleep_t) if sleep_t > 0
+
+ true
+ end
+
+ def resubscribe
+ channels = @sync.synchronize do
+ @subscribers.keys
+ end
+ @subscribed_client.subscribe(*channels) unless channels.empty?
+ end
+
+ def reset
+ @subscription_lock.synchronize do
+ @subscribed_client = nil
+ @subscribe_callbacks.clear
+ @when_connected.clear
+ end
+ end
+
if ::Redis::VERSION < "5"
+ ConnectionError = ::Redis::ConnectionError
+
class SubscribedClient
def initialize(raw_client)
@raw_client = raw_client
@@ -197,6 +244,8 @@
SubscribedClient.new(raw_client)
end
else
+ ConnectionError = RedisClient::ConnectionError
+
def extract_subscribed_client(conn)
conn
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2023-03-13 19:52:54.000000000 +0100
+++ new/metadata 2023-06-26 23:35:18.000000000 +0200
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: actioncable
version: !ruby/object:Gem::Version
- version: 7.0.4.3
+ version: 7.0.5.1
platform: ruby
authors:
- Pratik Naik
@@ -9,7 +9,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2023-03-13 00:00:00.000000000 Z
+date: 2023-06-26 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: activesupport
@@ -17,28 +17,28 @@
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 7.0.4.3
+ version: 7.0.5.1
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 7.0.4.3
+ version: 7.0.5.1
- !ruby/object:Gem::Dependency
name: actionpack
requirement: !ruby/object:Gem::Requirement
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 7.0.4.3
+ version: 7.0.5.1
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 7.0.4.3
+ version: 7.0.5.1
- !ruby/object:Gem::Dependency
name: nio4r
requirement: !ruby/object:Gem::Requirement
@@ -142,10 +142,10 @@
- MIT
metadata:
bug_tracker_uri: https://github.com/rails/rails/issues
- changelog_uri:
https://github.com/rails/rails/blob/v7.0.4.3/actioncable/CHANGELOG.md
- documentation_uri: https://api.rubyonrails.org/v7.0.4.3/
+ changelog_uri:
https://github.com/rails/rails/blob/v7.0.5.1/actioncable/CHANGELOG.md
+ documentation_uri: https://api.rubyonrails.org/v7.0.5.1/
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
- source_code_uri: https://github.com/rails/rails/tree/v7.0.4.3/actioncable
+ source_code_uri: https://github.com/rails/rails/tree/v7.0.5.1/actioncable
rubygems_mfa_required: 'true'
post_install_message:
rdoc_options: []
@@ -162,7 +162,7 @@
- !ruby/object:Gem::Version
version: '0'
requirements: []
-rubygems_version: 3.4.3
+rubygems_version: 3.3.3
signing_key:
specification_version: 4
summary: WebSocket framework for Rails.