This gem incurred a major version bump because of a potentially non-backwards compatible change in how it tracks the pidfile created by the redis-server process. See the README for more information on pidfile tracking.
Redis gem version support
The gem had been inadvertently bound to a specific version number of the redis
gem. This has now been removed.
Pidfile tracking
Due to an oversight in how the pidfile is tracked by the gem, it was possible that if the pidfile location via configuration (or the default pidfile location of /tmp/redis.pid
) wasn't writable because of permissions or the directory didn't exist, then guard-redis could not function because there was no way to shutdown the existing process and restart.
The code used to store the pid returned by IO.open call and use that as a fallback, but sometime between when the gem was written and now the redis-server process stopped returning the pid of the daemonized process, instead returning the pid of the spawning process (note: this may have never worked and been an oversight the whole time).
With this release we now ignore the pid returned by the spawning process and instead wait for the pidfile to get the canonical pid written by redis-server itself. This means that we take extra precautions to ensure that (a) the pidfile is writable and (b) that it was written after the redis-server process started. If either is false then we refuse to proceed because we have no way of controlling the start/stop process at that point.