etcdmain: better logging for discovery error
@@ -181,6 +181,9 @@ func (d *discovery) createSelf(contents string) error {
resp, err := d.c.Create(ctx, d.selfKey(), contents, -1)
cancel()
if err != nil {
+ if err == client.ErrKeyExists {
+ return ErrDuplicateID
+ }
return err
}
@@ -189,7 +189,13 @@ func Main() {
err = startProxy()
- log.Fatalf("etcd: %v", err)
+ switch err {
+ case discovery.ErrDuplicateID:
+ log.Fatalf("etcd: member %s has previously registered with discovery service (%s), but the data-dir (%s) on disk cannot be found.",
+ *name, *durl, *dir)
+ default:
+ log.Fatalf("etcd: %v", err)
<-stopped