aerospike 1.0.9 → 1.0.10
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/CHANGELOG.md +12 -0
- data/lib/aerospike/cluster/cluster.rb +3 -15
- data/lib/aerospike/cluster/connection.rb +8 -3
- data/lib/aerospike/cluster/node.rb +3 -3
- data/lib/aerospike/version.rb +1 -1
- metadata +2 -2
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## September 22 2015 (1.0.10)
|
2
|
+
|
3
|
+
Major fix release.
|
4
|
+
|
5
|
+
* **Fixes**:
|
6
|
+
|
7
|
+
* Fixes find_node_in_partition_map logic.
|
8
|
+
|
9
|
+
* Fixes Node.Refresh logic.
|
10
|
+
|
11
|
+
* Fixes an issue with dead connections that would cause an infinite loop.
|
12
|
+
|
1
13
|
## Augest 11 2015 (1.0.9)
|
2
14
|
|
3
15
|
Minor fix release.
|
@@ -238,7 +238,7 @@ module Aerospike
|
|
238
238
|
remove_list = find_nodes_to_remove(refresh_count)
|
239
239
|
remove_nodes(remove_list) unless remove_list.empty?
|
240
240
|
|
241
|
-
Aerospike.logger.info("Tend finished. Live node count: #{nodes.length}")
|
241
|
+
Aerospike.logger.info("Tend finished. Live node count: #{nodes.length} #{nodes}")
|
242
242
|
end
|
243
243
|
|
244
244
|
def wait_till_stablized
|
@@ -246,7 +246,6 @@ module Aerospike
|
|
246
246
|
|
247
247
|
# will run until the cluster is stablized
|
248
248
|
thr = Thread.new do
|
249
|
-
abort_on_exception=true
|
250
249
|
while true
|
251
250
|
tend
|
252
251
|
|
@@ -445,19 +444,8 @@ module Aerospike
|
|
445
444
|
def find_node_in_partition_map(filter)
|
446
445
|
partitions_list = partitions
|
447
446
|
|
448
|
-
partitions_list.each do |node_array|
|
449
|
-
|
450
|
-
|
451
|
-
i = 0
|
452
|
-
while i < max
|
453
|
-
node = node_array[i]
|
454
|
-
# Use reference equality for performance.
|
455
|
-
if node == filter
|
456
|
-
return true
|
457
|
-
end
|
458
|
-
|
459
|
-
i = i.succ
|
460
|
-
end
|
447
|
+
partitions_list.values.each do |node_array|
|
448
|
+
return true if node_array.value.any? { |node| node == filter }
|
461
449
|
end
|
462
450
|
false
|
463
451
|
end
|
@@ -62,7 +62,7 @@ module Aerospike
|
|
62
62
|
IO.select(nil, [@socket])
|
63
63
|
retry
|
64
64
|
rescue => e
|
65
|
-
Aerospike::Exceptions::Connection.new("#{e}")
|
65
|
+
raise Aerospike::Exceptions::Connection.new("#{e}")
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
@@ -72,13 +72,18 @@ module Aerospike
|
|
72
72
|
while total < length
|
73
73
|
begin
|
74
74
|
bytes = @socket.recv_nonblock(length - total)
|
75
|
-
|
75
|
+
if bytes.bytesize > 0
|
76
|
+
buffer.write_binary(bytes, total)
|
77
|
+
else
|
78
|
+
# connection is dead; return an error
|
79
|
+
raise Aerospike::Exceptions::Aerospike.new(Aerospike::ResultCode::SERVER_NOT_AVAILABLE, "Connection to the server node is dead.")
|
80
|
+
end
|
76
81
|
total += bytes.bytesize
|
77
82
|
rescue IO::WaitReadable, Errno::EAGAIN
|
78
83
|
IO.select([@socket], nil)
|
79
84
|
retry
|
80
85
|
rescue => e
|
81
|
-
Aerospike::Exceptions::Connection.new("#{e}")
|
86
|
+
raise Aerospike::Exceptions::Connection.new("#{e}")
|
82
87
|
end
|
83
88
|
end
|
84
89
|
end
|
@@ -71,17 +71,17 @@ module Aerospike
|
|
71
71
|
# Request current status from server node, and update node with the result
|
72
72
|
def refresh
|
73
73
|
friends = []
|
74
|
-
conn = get_connection(1)
|
75
74
|
|
76
75
|
begin
|
76
|
+
conn = get_connection(1)
|
77
77
|
info_map = Info.request(conn, "node", "partition-generation", "services")
|
78
78
|
rescue => e
|
79
|
-
Aerospike.logger.error(e)
|
79
|
+
Aerospike.logger.error("Error during refresh for node #{self}: #{e}")
|
80
80
|
|
81
81
|
conn.close if conn
|
82
82
|
decrease_health
|
83
83
|
|
84
|
-
|
84
|
+
return friends
|
85
85
|
end
|
86
86
|
|
87
87
|
verify_node_name(info_map)
|
data/lib/aerospike/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aerospike
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.10
|
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: 2015-
|
12
|
+
date: 2015-09-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: msgpack
|