some locking with etcd