In etcd at least, `waitLock()`, in [checking for an action to send "free" on](https://github.com/docker/libkv/blob/master/store/etcd/etcd.go#L578), does not account for `compareAndDelete` action which is what results from a [Delete with a modified index](https://github.com/docker/libkv/blob/master/store/etcd/etcd.go#L595). Hence, Unlock doesn't often work.
In etcd at least,
waitLock(), in checking for an action to send "free" on, does not account forcompareAndDeleteaction which is what results from a Delete with a modified index. Hence, Unlock doesn't often work.