Browse Source

Merge pull request #1920 from xiang90/better_logging

etcdmain: better logging for discovery error
Xiang Li 11 years ago
parent
commit
d381889a84
2 changed files with 10 additions and 1 deletions
  1. 3 0
      discovery/discovery.go
  2. 7 1
      etcdmain/etcd.go

+ 3 - 0
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
 	}
 

+ 7 - 1
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
 }