Skip to content

Updates pidfile tracking

Latest
Compare
Choose a tag to compare
@whazzmaster whazzmaster released this 15 Mar 17:22
· 2 commits to master since this release

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.