dalli 4.3.9 → 4.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e7ed5e67a328d8850a50358f988c46803599cd7df6327d3318c6e3951aef6a8
4
- data.tar.gz: ce71002a269001f7c8e620aad263425aadd2a170cdcf557df843653afebeabfd
3
+ metadata.gz: 41490f01a85678506bed8f5e234cbbea7dadee8d5369f8c9800206a63a82260c
4
+ data.tar.gz: 5176f61b9332988912f0216f516caedcfe0fb8a86f0eeea4d129e52ec7a6f183
5
5
  SHA512:
6
- metadata.gz: f8f59848e325e4f66519c5dc291fd35c617e5e958548dd2b7415014f6d0d7933aaad510f467c2c1fc799395b2388fe394a24689a5eb7032ec93333d0348d4ad7
7
- data.tar.gz: 3a4bcb6aadc3247ffbfb10006e946bfd40e55fe3481ee705313146151b3e7a1b9dac35bb17e6ac06d4da161e624c072deca4406ae15baa242ba69e6ff06058df
6
+ metadata.gz: abccb3715898dcb8c1f6f3581f807253c91cf0190a2ff7ec44c70aea73d4312e5f39faebce3f510b47686cce02c8545806397cb8fb574801b36a6077a06582a2
7
+ data.tar.gz: 468fa248795f1e7c4905bf47c365e0807428ca2b05e5499d4686ea94b506584d818c5bd03b09d822182def1b3cb76ac97feab8977b8a906d5362d891f7120185
data/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ Dalli Changelog
4
4
  Unreleased
5
5
  ==========
6
6
 
7
+ 4.3.10
8
+ ==========
9
+
10
+ Bug fixes:
11
+
12
+ - `set_multi` across more than one server stored `nil` for a Symbol key or a key over 250 bytes, in place of the value given
13
+
7
14
  4.3.9
8
15
  ==========
9
16
 
@@ -41,9 +41,12 @@ module Dalli
41
41
 
42
42
  private
43
43
 
44
+ # Values are looked up by each key as sent. The caller's key can't be
45
+ # rebuilt from it: a long key is digested, and a Symbol becomes a String.
44
46
  def setup_requests(hash, ttl, req_options)
45
- groups = groups_for_keys(hash.keys)
46
- make_set_requests(groups, hash, ttl, req_options)
47
+ pairs = hash.transform_keys { |k| @key_manager.validate_key(k.to_s) }
48
+ groups = groups_for_keys(pairs.keys)
49
+ make_set_requests(groups, pairs, ttl, req_options)
47
50
  groups.keys
48
51
  end
49
52
 
@@ -51,12 +54,10 @@ module Dalli
51
54
  # Loop through the server-grouped sets of keys, writing
52
55
  # the corresponding quiet set requests to the appropriate servers
53
56
  ##
54
- def make_set_requests(groups, hash, ttl, req_options)
57
+ def make_set_requests(groups, pairs, ttl, req_options)
55
58
  groups.each do |server, keys_for_server|
56
59
  keys_for_server.each do |key|
57
- original_key = @key_manager.key_without_namespace(key)
58
- value = hash[original_key]
59
- server.request(:pipelined_set, key, value, ttl, req_options)
60
+ server.request(:pipelined_set, key, pairs[key], ttl, req_options)
60
61
  rescue Dalli::MarshalError, Dalli::ValueOverMaxSize => e
61
62
  # Nothing was written for this key, so the server's other keys are
62
63
  # unaffected; raised by #process once the batch is complete
@@ -81,8 +82,7 @@ module Dalli
81
82
  end
82
83
 
83
84
  def groups_for_keys(keys)
84
- validated_keys = keys.map { |k| @key_manager.validate_key(k.to_s) }
85
- groups = @ring.keys_grouped_by_server(validated_keys)
85
+ groups = @ring.keys_grouped_by_server(keys)
86
86
 
87
87
  if (unfound_keys = groups.delete(nil))
88
88
  Dalli.logger.debug do
data/lib/dalli/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dalli
4
- VERSION = '4.3.9'
4
+ VERSION = '4.3.10'
5
5
 
6
6
  MIN_SUPPORTED_MEMCACHED_VERSION = '1.4'
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dalli
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.9
4
+ version: 4.3.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter M. Goldstein