activerecord-mysql-reconnect 0.3.4 → 0.3.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9feafc3ddcaeba6d385f2d99565689efcaa3c46b
4
- data.tar.gz: 5c74370dd16ba0e406eccd436140da9c74c62cf7
3
+ metadata.gz: ae0956c41a7eeb006c0eb44216a288db43d76d4e
4
+ data.tar.gz: f14f9a4216ce0bbe51dcb9d04040082915520eda
5
5
  SHA512:
6
- metadata.gz: 3166411ed87951ce3c42cb8626b4378b2da20c6d87a79963632b00fc74f819e9aa7fa1880760c9fdcb86462a3b15bf4cbb2443258282f051f44bcf25a4160e20
7
- data.tar.gz: 98212109f565974bc9f4a04731d7fbe754bfbfedf453ac02cf8cc7588d1b437321a918de915d728cb49aaa0cc6c13047c95603b29aef9a1e525303be00c2e888
6
+ metadata.gz: 296b46697e351bce23eaf245777683d4cc25bd6ea273b4481bab4165a747a6b3daed6723a999aa74bd8f89a01d44ef648dfa76cbe44640c15dc506846d6eede1
7
+ data.tar.gz: ad5d74f3fd662d64d1abd98ff57b6948da3c8758623c8f1782e575c50d70258e54b9941f7e29ab98fc48f535c5688a194571564139ef0872fe5dcd40c6aa7574
data/README.md CHANGED
@@ -53,7 +53,7 @@ Stopping mysqld: [ OK ]
53
53
  Starting mysqld: [ OK ]
54
54
  (0.4ms) SELECT COUNT(*) FROM `employees`
55
55
  Mysql2::Error: MySQL server has gone away: SELECT COUNT(*) FROM `employees`
56
- MySQL server has gone away. Trying to reconnect in 0.5 seconds.
56
+ MySQL server has gone away. Trying to reconnect in 0.5 seconds. (cause: Mysql2::Error: MySQL server has gone away: SELECT COUNT(*) FROM `employees` [ActiveRecord::StatementInvalid], connection: host=127.0.0.1;database=employees;username=root)
57
57
  (101.5ms) SELECT COUNT(*) FROM `employees`
58
58
  300024
59
59
  ```
@@ -91,7 +91,7 @@ MyApp::Application.configure do
91
91
  ...
92
92
  config.active_record.enable_retry = true
93
93
  #config.active_record.retry_databases = :employees # or [:employees], ['employees']
94
- # retry_databases -> 0: retry all databases (default)
94
+ # retry_databases -> nil: retry all databases (default)
95
95
  config.active_record.execution_tries = 10 # times
96
96
  # execution_tries -> 0: retry indefinitely
97
97
  config.active_record.execution_retry_wait = 1.5 # sec
@@ -18,12 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- # '~> 3.2.14' or '~> 4.0.2'
21
+ # '~> 3.2.19' or '~> 4.0.8' or '~> 4.1.4'
22
22
  spec.add_dependency 'activerecord'
23
- spec.add_dependency 'activesupport'
24
23
  spec.add_dependency 'mysql2'
25
24
  spec.add_development_dependency 'bundler', '~> 1.3'
26
25
  spec.add_development_dependency 'rake'
27
- spec.add_development_dependency 'rspec', '>= 2.14.1'
26
+ spec.add_development_dependency 'rspec', '>= 2.14.1', '< 3.0.0'
28
27
  spec.add_development_dependency 'rspec-instafail'
29
28
  end
@@ -40,6 +40,8 @@ module Activerecord::Mysql::Reconnect
40
40
  'Query execution was interrupted',
41
41
  'Access denied for user',
42
42
  'The MySQL server is running with the --read-only option',
43
+ "Can't connect to local MySQL server", # When running in local sandbox, or using a socket file
44
+ 'Unknown MySQL server host', # For DNS blips
43
45
  ]
44
46
 
45
47
  HANDLE_ERROR_MESSAGES = HANDLE_R_ERROR_MESSAGES + HANDLE_RW_ERROR_MESSAGES
@@ -1,7 +1,7 @@
1
1
  module Activerecord
2
2
  module Mysql
3
3
  module Reconnect
4
- VERSION = '0.3.4'
4
+ VERSION = '0.3.5'
5
5
  end
6
6
  end
7
7
  end
@@ -270,12 +270,14 @@ describe 'activerecord-mysql-reconnect' do
270
270
  end
271
271
 
272
272
  it 'force retry' do
273
- sql = "INSERT INTO `employees` (`birth_date`, `emp_no`, `first_name`, `hire_date`, `last_name`) VALUES ('2014-01-09 03:22:25', 1, '' + sleep(10) + '', '2014-01-09 03:22:25', 'Tiger')"
273
+ sql = "INSERT INTO `employees` (`birth_date`, `emp_no`, `first_name`, `hire_date`, `last_name`) VALUES ('2014-01-09 03:22:25', 1, 'Scott', '2014-01-09 03:22:25', 'Tiger')"
274
274
 
275
275
  expect {
276
276
  ActiveRecord::Base.connection.execute(sql)
277
277
  }.to_not raise_error
278
278
 
279
+ lock_table
280
+
279
281
  mysql2_error('Lost connection to MySQL server during query') do
280
282
  expect {
281
283
  th = thread_run {|do_stop|
@@ -39,7 +39,7 @@ end
39
39
 
40
40
  def disable_retry
41
41
  begin
42
- expect(ActiveRecord::Base.enable_retry).to be_true
42
+ expect(ActiveRecord::Base.enable_retry).to be_truthy
43
43
  ActiveRecord::Base.enable_retry = false
44
44
  yield
45
45
  ensure
@@ -89,7 +89,7 @@ def thread_run
89
89
 
90
90
  th.abort_on_exception = true
91
91
  sleep 3
92
- expect(thread_running).to be_true
92
+ expect(thread_running).to be_truthy
93
93
 
94
94
  return th
95
95
  end
@@ -120,7 +120,7 @@ RSpec.configure do |config|
120
120
  end
121
121
 
122
122
  config.before(:each) do
123
- desc = example.metadata[:full_description]
123
+ desc = RSpec.current_example.metadata[:full_description]
124
124
  puts <<-EOS
125
125
 
126
126
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-mysql-reconnect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-30 00:00:00.000000000 Z
11
+ date: 2014-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: activesupport
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: mysql2
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -87,6 +73,9 @@ dependencies:
87
73
  - - '>='
88
74
  - !ruby/object:Gem::Version
89
75
  version: 2.14.1
76
+ - - <
77
+ - !ruby/object:Gem::Version
78
+ version: 3.0.0
90
79
  type: :development
91
80
  prerelease: false
92
81
  version_requirements: !ruby/object:Gem::Requirement
@@ -94,6 +83,9 @@ dependencies:
94
83
  - - '>='
95
84
  - !ruby/object:Gem::Version
96
85
  version: 2.14.1
86
+ - - <
87
+ - !ruby/object:Gem::Version
88
+ version: 3.0.0
97
89
  - !ruby/object:Gem::Dependency
98
90
  name: rspec-instafail
99
91
  requirement: !ruby/object:Gem::Requirement