mongo_ha 2.5.1 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eaf8486b5f343d3ef3a04eaf534c2e27d4a1fc392c257a2fc3345b07d1e07358
4
- data.tar.gz: 464f54bc8ff8c19618aad18c9e5d6613429b1aec7f2e47ff58d503b97eeef99d
3
+ metadata.gz: 822b2ec13ca8329162bfaf447ca663ff229137dae3c62af4f49961214fc8cb7e
4
+ data.tar.gz: 4fbe1a4c3eb4eba1205fae605ba645dfee2afe2ca8bc4f2e7029fc6e2790f064
5
5
  SHA512:
6
- metadata.gz: a7f48ad7a201e8819d2386e37e012b9a56ff0ad4dde1fb968f8d77598de22273882717084091d8994d7ba93483c3e59f9f9be58e2addd6733d76223ba26594d9
7
- data.tar.gz: 84d886c29f741f79bb9680048d918ee1ee50ebcab3a0b3dad586cc152eeb49ba653a48fd0a52cbdf7920f8cdd617b2eb7dcba1aa7a0a42d1df360c42c89d2cf7
6
+ metadata.gz: 04d0fa19b81fc8344772def1a59fd59cd77ae4dbc0f66cf9580fbf76469f08513a0f209f479823572e4add5f1af8280c97e0b849e1d7d281c2e926ca39beeaee
7
+ data.tar.gz: 7bb1ac573453dd3cacdfeea55223e2b5010d6a98bdb7e20648754ad1cd748567d52bba225b59d6f19cad8e1892fc3050cfa84a85a12d676eed2f4eca21a67c02
data/README.md CHANGED
@@ -9,11 +9,10 @@ Most of the features of this gem were accepted into the mongo-ruby-client gem. :
9
9
  There are still a few outstanding changes that are only available with this gem:
10
10
  * Retry on writes due to a master change.
11
11
  * Retry on writes due to loss of network connectivity.
12
- * Retry on reads during an operation failure other than when in a cluster.
13
12
 
14
13
  ## Note
15
14
 
16
- It is recommended to use mongo_ha v2.5 along with the Mongo Ruby Client v2.5 to get the latest HA capabilities.
15
+ It is recommended to use `mongo_ha` v2.6 along with the Mongo Ruby Client v2.6 to get the latest HA capabilities.
17
16
 
18
17
  ## Overview
19
18
 
@@ -36,7 +35,7 @@ servers with reconnect attempts.
36
35
  Add to Gemfile:
37
36
 
38
37
  ```ruby
39
- gem 'mongo_ha', '~> 2.5'
38
+ gem 'mongo_ha', '~> 2.6'
40
39
  ```
41
40
 
42
41
  Or for standalone environments
@@ -2,21 +2,21 @@ require 'mongo/retryable'
2
2
 
3
3
  module Mongo
4
4
  module Retryable
5
- def legacy_write_with_retry(server = nil)
5
+ def legacy_write_with_retry(server = nil, session = nil)
6
6
  attempt = 0
7
7
  begin
8
8
  attempt += 1
9
9
  yield(server || cluster.next_primary)
10
10
  rescue Error::SocketError, Error::SocketTimeoutError => e
11
11
  server = nil
12
- raise(e) if attempt > cluster.max_read_retries
12
+ raise(e) if attempt > cluster.max_read_retries || (session && session.in_transaction?)
13
13
  log_retry(e)
14
14
  cluster.scan!
15
15
  retry
16
16
  rescue Error::OperationFailure => e
17
17
  server = nil
18
18
  raise(e) if attempt > cluster.max_read_retries
19
- if e.write_retryable?
19
+ if e.write_retryable? && !(session && session.in_transaction?)
20
20
  log_retry(e)
21
21
  cluster.scan!
22
22
  retry
@@ -1,3 +1,3 @@
1
1
  module MongoHA
2
- VERSION = '2.5.1'.freeze
2
+ VERSION = '2.6.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo_ha
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.1
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-24 00:00:00.000000000 Z
11
+ date: 2018-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongo
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 2.5.1
19
+ version: 2.5.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2.7'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 2.5.0
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: 2.5.1
32
+ version: '2.7'
27
33
  description: Automatic reconnects and recovery when replica-set changes, or connections
28
34
  are lost, with transparent recovery
29
35
  email:
@@ -57,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
57
63
  version: '0'
58
64
  requirements: []
59
65
  rubyforge_project:
60
- rubygems_version: 2.7.6
66
+ rubygems_version: 2.7.7
61
67
  signing_key:
62
68
  specification_version: 4
63
69
  summary: High availability for the mongo ruby driver