From d9b21c79d4f5c7d0b95e090376e31e2c00c70599 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Thu, 11 Dec 2014 15:42:54 -0800 Subject: [PATCH] etcdmain: better logging for discovery error --- discovery/discovery.go | 3 +++ etcdmain/etcd.go | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/discovery/discovery.go b/discovery/discovery.go index 9ea7ea65f..3dbb7b470 100644 --- a/discovery/discovery.go +++ b/discovery/discovery.go @@ -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 } diff --git a/etcdmain/etcd.go b/etcdmain/etcd.go index 6fd2d64db..9be2cd2bb 100644 --- a/etcdmain/etcd.go +++ b/etcdmain/etcd.go @@ -189,7 +189,13 @@ func Main() { err = startProxy() } if err != nil { - 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 }