Skip to content

v4.3.5

Choose a tag to compare

@petergoldstein petergoldstein released this 02 Oct 11:00
· 358 commits to main since this release
f10b729

Bug fix release. Fixes multi-server get_multi stopping at an empty value (#1170). The rest of that server's keys were silently missing, and later commands on the connection could read leftover replies, including a single-key get returning another key's value. Upgrading is recommended.

Bug fixes:

  • Fix multi-server get_multi stopping at an empty value (#1170)
    • The pipelined reply parser took a hit on a zero-length value (VA 0) for the terminating MN, so that server's remaining keys were silently missing from the result
    • Its value terminator and any replies not yet parsed stayed on the connection and were read as the replies to later commands on it. Those commands could fail with Dalli::DalliError: Response error, or a single-key get could silently return another key's value
    • An empty value is now returned as '', like a single-key get and single-server get_multi
    • Affects only clients using protocol: :meta; the default binary protocol is not affected
    • Thanks to Julian Richard Contreras for this contribution

Development:

  • Fix offenses reported by RuboCop 1.91 and require rubocop >= 1.91 (backport of #1162)