ar_mysql_flexmaster 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/ar_mysql_flexmaster.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
13
13
|
gem.name = "ar_mysql_flexmaster"
|
14
14
|
gem.require_paths = ["lib"]
|
15
|
-
gem.version = "0.4.
|
15
|
+
gem.version = "0.4.2"
|
16
16
|
|
17
17
|
gem.add_runtime_dependency("mysql2")
|
18
18
|
gem.add_runtime_dependency("activerecord")
|
@@ -105,8 +105,8 @@ module ActiveRecord
|
|
105
105
|
def retryable_error?(e)
|
106
106
|
case e
|
107
107
|
when Mysql2::Error
|
108
|
-
# 2006 is gone-away,
|
109
|
-
[2006,
|
108
|
+
# 2006 is gone-away, 2003 is can't-connect (applicable when reconnect is true)
|
109
|
+
[2006, 2003].include?(e.errno)
|
110
110
|
when ActiveRecord::StatementInvalid
|
111
111
|
AR_MESSAGES.any? { |m| e.message.match(m) }
|
112
112
|
end
|
@@ -134,10 +134,11 @@ module ActiveRecord
|
|
134
134
|
@connection = cx if cx
|
135
135
|
end
|
136
136
|
end
|
137
|
+
|
137
138
|
if @rw == :write && !@connection
|
138
139
|
# desperation mode: we've been asked for the master, but it's just not available.
|
139
140
|
# we'll go ahead and return a connection to the slave, understanding that it'll never work
|
140
|
-
# for writes.
|
141
|
+
# for writes. (we'll call hard_verify and crash)
|
141
142
|
@connection = find_correct_host(:read)
|
142
143
|
end
|
143
144
|
end
|
@@ -172,14 +173,15 @@ module ActiveRecord
|
|
172
173
|
clear_collected_errors!
|
173
174
|
|
174
175
|
sleep_interval = 0.1
|
175
|
-
|
176
|
+
timeout_at = Time.now.to_f + @tx_hold_timeout
|
176
177
|
|
177
|
-
|
178
|
+
begin
|
178
179
|
@connection = find_correct_host(@rw)
|
179
180
|
return if @connection
|
180
181
|
|
181
182
|
sleep(sleep_interval)
|
182
|
-
end
|
183
|
+
end while Time.now.to_f < timeout_at
|
184
|
+
|
183
185
|
raise_no_server_available!
|
184
186
|
end
|
185
187
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ar_mysql_flexmaster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mysql2
|
@@ -175,3 +175,4 @@ test_files:
|
|
175
175
|
- test/integration/there_and_back_again_test.rb
|
176
176
|
- test/integration/with_queries_to_be_killed_test.rb
|
177
177
|
- test/integration/wrong_setup_test.rb
|
178
|
+
has_rdoc:
|