From 55263bc6b5324e2cdf0d08cb114913b6d295400b Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Fri, 27 Mar 2015 16:03:49 -0700 Subject: [PATCH 1/6] Revert "etcd: add -internal-dir flag" This reverts commit 03a99cf9b1b569f31f336aaf3d04266569c55aa9. --- Documentation/configuration.md | 2 -- config/config.go | 58 +++++++++++++++------------------- config/config_test.go | 4 --- etcd/etcd.go | 2 +- etcd/upgrade.go | 19 ++++++++--- server/usage.go | 19 ++++++----- 6 files changed, 51 insertions(+), 53 deletions(-) diff --git a/Documentation/configuration.md b/Documentation/configuration.md index 0c31c9f08..7e70e67de 100644 --- a/Documentation/configuration.md +++ b/Documentation/configuration.md @@ -44,7 +44,6 @@ The full documentation is contained in the [API docs](https://github.com/coreos/ * `-cors` - A comma separated white list of origins for cross-origin resource sharing. * `-cpuprofile` - The path to a file to output CPU profile data. Enables CPU profiling when present. * `-data-dir` - The directory to store log and snapshot. Defaults to the current working directory. -* `-internal-binary-dir` - The path to the etcd internal binary directory. Defaults to `/usr/libexec/etcd/internal_versions/`. * `-max-result-buffer` - The max size of result buffer. Defaults to `1024`. * `-max-retry-attempts` - The max retry attempts when trying to join a cluster. Defaults to `3`. * `-peer-addr` - The advertised public hostname:port for server communication. Defaults to `127.0.0.1:7001`. @@ -116,7 +115,6 @@ sync_interval = 5.0 * `ETCD_CLUSTER_HTTP_READ_TIMEOUT` * `ETCD_CLUSTER_HTTP_WRITE_TIMEOUT` * `ETCD_KEY_FILE` - * `ETCD_INTERNAL_BINARY_DIR` * `ETCD_PEERS` * `ETCD_PEERS_FILE` * `ETCD_MAX_CLUSTER_SIZE` diff --git a/config/config.go b/config/config.go index a3d3b0bc9..92a45564e 100644 --- a/config/config.go +++ b/config/config.go @@ -24,9 +24,6 @@ import ( // The default location for the etcd configuration file. const DefaultSystemConfigPath = "/etc/etcd/etcd.conf" -// The default location of the etcd internal binary directory. -const DefaultInternalBinaryDir = "/usr/libexec/etcd/internal_versions/" - // A lookup of deprecated flags to their new flag name. var newFlagNameLookup = map[string]string{ "C": "peers", @@ -55,33 +52,32 @@ var newFlagNameLookup = map[string]string{ type Config struct { SystemPath string - Addr string `toml:"addr" env:"ETCD_ADDR"` - BindAddr string `toml:"bind_addr" env:"ETCD_BIND_ADDR"` - CAFile string `toml:"ca_file" env:"ETCD_CA_FILE"` - CertFile string `toml:"cert_file" env:"ETCD_CERT_FILE"` - CPUProfileFile string - CorsOrigins []string `toml:"cors" env:"ETCD_CORS"` - DataDir string `toml:"data_dir" env:"ETCD_DATA_DIR"` - Discovery string `toml:"discovery" env:"ETCD_DISCOVERY"` - Force bool - KeyFile string `toml:"key_file" env:"ETCD_KEY_FILE"` - HTTPReadTimeout float64 `toml:"http_read_timeout" env:"ETCD_HTTP_READ_TIMEOUT"` - HTTPWriteTimeout float64 `toml:"http_write_timeout" env:"ETCD_HTTP_WRITE_TIMEOUT"` - InternalBinaryDir string `toml:"internal_binary_dir" env:"ETCD_INTERNAL_BINARY_DIR"` - Peers []string `toml:"peers" env:"ETCD_PEERS"` - PeersFile string `toml:"peers_file" env:"ETCD_PEERS_FILE"` - MaxResultBuffer int `toml:"max_result_buffer" env:"ETCD_MAX_RESULT_BUFFER"` - MaxRetryAttempts int `toml:"max_retry_attempts" env:"ETCD_MAX_RETRY_ATTEMPTS"` - RetryInterval float64 `toml:"retry_interval" env:"ETCD_RETRY_INTERVAL"` - Name string `toml:"name" env:"ETCD_NAME"` - Snapshot bool `toml:"snapshot" env:"ETCD_SNAPSHOT"` - SnapshotCount int `toml:"snapshot_count" env:"ETCD_SNAPSHOTCOUNT"` - ShowHelp bool - ShowVersion bool - Verbose bool `toml:"verbose" env:"ETCD_VERBOSE"` - VeryVerbose bool `toml:"very_verbose" env:"ETCD_VERY_VERBOSE"` - VeryVeryVerbose bool `toml:"very_very_verbose" env:"ETCD_VERY_VERY_VERBOSE"` - Peer struct { + Addr string `toml:"addr" env:"ETCD_ADDR"` + BindAddr string `toml:"bind_addr" env:"ETCD_BIND_ADDR"` + CAFile string `toml:"ca_file" env:"ETCD_CA_FILE"` + CertFile string `toml:"cert_file" env:"ETCD_CERT_FILE"` + CPUProfileFile string + CorsOrigins []string `toml:"cors" env:"ETCD_CORS"` + DataDir string `toml:"data_dir" env:"ETCD_DATA_DIR"` + Discovery string `toml:"discovery" env:"ETCD_DISCOVERY"` + Force bool + KeyFile string `toml:"key_file" env:"ETCD_KEY_FILE"` + HTTPReadTimeout float64 `toml:"http_read_timeout" env:"ETCD_HTTP_READ_TIMEOUT"` + HTTPWriteTimeout float64 `toml:"http_write_timeout" env:"ETCD_HTTP_WRITE_TIMEOUT"` + Peers []string `toml:"peers" env:"ETCD_PEERS"` + PeersFile string `toml:"peers_file" env:"ETCD_PEERS_FILE"` + MaxResultBuffer int `toml:"max_result_buffer" env:"ETCD_MAX_RESULT_BUFFER"` + MaxRetryAttempts int `toml:"max_retry_attempts" env:"ETCD_MAX_RETRY_ATTEMPTS"` + RetryInterval float64 `toml:"retry_interval" env:"ETCD_RETRY_INTERVAL"` + Name string `toml:"name" env:"ETCD_NAME"` + Snapshot bool `toml:"snapshot" env:"ETCD_SNAPSHOT"` + SnapshotCount int `toml:"snapshot_count" env:"ETCD_SNAPSHOTCOUNT"` + ShowHelp bool + ShowVersion bool + Verbose bool `toml:"verbose" env:"ETCD_VERBOSE"` + VeryVerbose bool `toml:"very_verbose" env:"ETCD_VERY_VERBOSE"` + VeryVeryVerbose bool `toml:"very_very_verbose" env:"ETCD_VERY_VERY_VERBOSE"` + Peer struct { Addr string `toml:"addr" env:"ETCD_PEER_ADDR"` BindAddr string `toml:"bind_addr" env:"ETCD_PEER_BIND_ADDR"` CAFile string `toml:"ca_file" env:"ETCD_PEER_CA_FILE"` @@ -120,7 +116,6 @@ func New() *Config { c.Cluster.ActiveSize = server.DefaultActiveSize c.Cluster.RemoveDelay = server.DefaultRemoveDelay c.Cluster.SyncInterval = server.DefaultSyncInterval - c.InternalBinaryDir = DefaultInternalBinaryDir return c } @@ -268,7 +263,6 @@ func (c *Config) LoadFlags(arguments []string) error { f.Float64Var(&c.HTTPWriteTimeout, "http-write-timeout", c.HTTPReadTimeout, "") f.StringVar(&c.DataDir, "data-dir", c.DataDir, "") - f.StringVar(&c.InternalBinaryDir, "internal-binary-dir", c.InternalBinaryDir, "") f.IntVar(&c.MaxResultBuffer, "max-result-buffer", c.MaxResultBuffer, "") f.IntVar(&c.MaxRetryAttempts, "max-retry-attempts", c.MaxRetryAttempts, "") f.Float64Var(&c.RetryInterval, "retry-interval", c.RetryInterval, "") diff --git a/config/config_test.go b/config/config_test.go index 90599059e..0b455011c 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -19,7 +19,6 @@ func TestConfigTOML(t *testing.T) { cpu_profile_file = "XXX" data_dir = "/tmp/data" discovery = "http://example.com/foobar" - internal_binary_dir = "/tmp/etcd/internal_versions" key_file = "/tmp/file.key" bind_addr = "127.0.0.1:4003" peers = ["coreos.com:4001", "coreos.com:4002"] @@ -55,7 +54,6 @@ func TestConfigTOML(t *testing.T) { assert.Equal(t, c.CorsOrigins, []string{"*"}, "") assert.Equal(t, c.DataDir, "/tmp/data", "") assert.Equal(t, c.Discovery, "http://example.com/foobar", "") - assert.Equal(t, c.InternalBinaryDir, "/tmp/etcd/internal_versions", "") assert.Equal(t, c.HTTPReadTimeout, 2.34, "") assert.Equal(t, c.HTTPWriteTimeout, 1.23, "") assert.Equal(t, c.KeyFile, "/tmp/file.key", "") @@ -88,7 +86,6 @@ func TestConfigEnv(t *testing.T) { os.Setenv("ETCD_DISCOVERY", "http://example.com/foobar") os.Setenv("ETCD_HTTP_READ_TIMEOUT", "2.34") os.Setenv("ETCD_HTTP_WRITE_TIMEOUT", "1.23") - os.Setenv("ETCD_INTERNAL_BINARY_DIR", "/tmp/etcd/internal_versions") os.Setenv("ETCD_KEY_FILE", "/tmp/file.key") os.Setenv("ETCD_BIND_ADDR", "127.0.0.1:4003") os.Setenv("ETCD_PEERS", "coreos.com:4001,coreos.com:4002") @@ -118,7 +115,6 @@ func TestConfigEnv(t *testing.T) { assert.Equal(t, c.Discovery, "http://example.com/foobar", "") assert.Equal(t, c.HTTPReadTimeout, 2.34, "") assert.Equal(t, c.HTTPWriteTimeout, 1.23, "") - assert.Equal(t, c.InternalBinaryDir, "/tmp/etcd/internal_versions", "") assert.Equal(t, c.KeyFile, "/tmp/file.key", "") assert.Equal(t, c.BindAddr, "127.0.0.1:4003", "") assert.Equal(t, c.Peers, []string{"coreos.com:4001", "coreos.com:4002"}, "") diff --git a/etcd/etcd.go b/etcd/etcd.go index 420cce406..20c9122c5 100644 --- a/etcd/etcd.go +++ b/etcd/etcd.go @@ -309,7 +309,7 @@ func (e *Etcd) runServer() { for { if e.mode == PeerMode { log.Infof("%v starting in peer mode", e.Config.Name) - go registerAvailableInternalVersions(e.Config.InternalBinaryDir, e.Config.Name, e.Config.Addr, e.Config.EtcdTLSInfo()) + go registerAvailableInternalVersions(e.Config.Name, e.Config.Addr, e.Config.EtcdTLSInfo()) // Starting peer server should be followed close by listening on its port // If not, it may leave many requests unaccepted, or cannot receive heartbeat from the cluster. // One severe problem caused if failing receiving heartbeats is when the second node joins one-node cluster, diff --git a/etcd/upgrade.go b/etcd/upgrade.go index 9764f1f90..8cb2319be 100644 --- a/etcd/upgrade.go +++ b/etcd/upgrade.go @@ -1,7 +1,9 @@ package etcd import ( + "fmt" "os" + "runtime" "time" "github.com/coreos/etcd/log" @@ -9,7 +11,9 @@ import ( "github.com/coreos/etcd/third_party/github.com/coreos/go-etcd/etcd" ) -func registerAvailableInternalVersions(internalBinaryDir, name, addr string, tls *server.TLSInfo) { +var defaultEtcdBinaryDir = "/usr/libexec/etcd/internal_versions/" + +func registerAvailableInternalVersions(name string, addr string, tls *server.TLSInfo) { var c *etcd.Client if tls.Scheme() == "http" { c = etcd.NewClient([]string{addr}) @@ -21,7 +25,7 @@ func registerAvailableInternalVersions(internalBinaryDir, name, addr string, tls } } - vers, err := getInternalVersions(internalBinaryDir) + vers, err := getInternalVersions() if err != nil { log.Infof("failed to get local etcd versions: %v", err) return @@ -38,8 +42,15 @@ func registerAvailableInternalVersions(internalBinaryDir, name, addr string, tls log.Infof("%s: available_internal_versions %s is registered into key space successfully.", name, vers) } -func getInternalVersions(internalBinaryDir string) ([]string, error) { - dir, err := os.Open(internalBinaryDir) +func getInternalVersions() ([]string, error) { + if runtime.GOOS != "linux" { + return nil, fmt.Errorf("unmatched os version %v", runtime.GOOS) + } + etcdBinaryDir := os.Getenv("ETCD_BINARY_DIR") + if etcdBinaryDir == "" { + etcdBinaryDir = defaultEtcdBinaryDir + } + dir, err := os.Open(etcdBinaryDir) if err != nil { return nil, err } diff --git a/server/usage.go b/server/usage.go index a990993ad..1ae0cb6ad 100644 --- a/server/usage.go +++ b/server/usage.go @@ -15,16 +15,15 @@ Usage: etcd -version Options: - -h -help Show this screen. - --version Show version. - -f -force Force a new configuration to be used. - -config= Path to configuration file. - -name= Name of this node in the etcd cluster. - -data-dir= Path to the data directory. - -internal-binary-dir= Path to the etcd internal binary directory. - -cors= Comma-separated list of CORS origins. - -v Enabled verbose logging. - -vv Enabled very verbose logging. + -h -help Show this screen. + --version Show version. + -f -force Force a new configuration to be used. + -config= Path to configuration file. + -name= Name of this node in the etcd cluster. + -data-dir= Path to the data directory. + -cors= Comma-separated list of CORS origins. + -v Enabled verbose logging. + -vv Enabled very verbose logging. Cluster Configuration Options: -discovery= Discovery service used to find a peer list. From ad4f231b407c012f7bc8d9585fd2b850c38c8a52 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Fri, 27 Mar 2015 16:04:40 -0700 Subject: [PATCH 2/6] Revert "server: standby exits when detecting v2 is running" This reverts commit ebb8d781b555a0a603cc63373f58b7a72faf2a56. --- server/standby_server.go | 41 ---------------------------------------- 1 file changed, 41 deletions(-) diff --git a/server/standby_server.go b/server/standby_server.go index ed8f7b314..d0b35f737 100644 --- a/server/standby_server.go +++ b/server/standby_server.go @@ -187,14 +187,6 @@ func (s *StandbyServer) monitorCluster() { case <-ticker.C: } - ok, err := s.checkMemberInternalVersionIsV2() - if err != nil { - log.Warnf("fail checking internal version(%v): %v", s.ClusterURLs(), err) - } else if ok { - log.Infof("Detect the cluster has been upgraded to v2. Exit now.") - os.Exit(0) - } - if err := s.syncCluster(nil); err != nil { log.Warnf("fail syncing cluster(%v): %v", s.ClusterURLs(), err) continue @@ -224,39 +216,6 @@ func (s *StandbyServer) monitorCluster() { } } -func (s *StandbyServer) checkMemberInternalVersionIsV2() (bool, error) { - c := &http.Client{Transport: s.client.Client.Transport} - for _, memb := range s.Cluster { - url := memb.ClientURL - resp, err := c.Get(url + "/version") - if err != nil { - log.Debugf("failed to get /version from %s", url) - continue - } - b, err := ioutil.ReadAll(resp.Body) - if err != nil { - log.Debugf("failed to read body from %s", url) - continue - } - - var m map[string]string - err = json.Unmarshal(b, &m) - if err != nil { - log.Debugf("failed to unmarshal body %s from %s", b, url) - continue - } - switch m["internalVersion"] { - case "1": - return false, nil - case "2": - return true, nil - default: - log.Warnf("unrecognized internal version %s from %s", m["internalVersion"], url) - } - } - return false, fmt.Errorf("failed to get version") -} - func (s *StandbyServer) syncCluster(peerURLs []string) error { peerURLs = append(s.ClusterURLs(), peerURLs...) From 49715173cb2d29dfb8068831a7711acbbe8951b6 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Fri, 27 Mar 2015 16:06:31 -0700 Subject: [PATCH 3/6] Revert "server: add internal version" This reverts commit 9a2d82854e5dd396b2bc3029a0223284951f8d10. Conflicts: server/version.go --- server/peer_server.go | 4 ++-- server/release_version.go | 3 +++ server/server.go | 2 +- server/version.go | 2 -- 4 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 server/release_version.go diff --git a/server/peer_server.go b/server/peer_server.go index 6de6e406a..78bba432a 100644 --- a/server/peer_server.go +++ b/server/peer_server.go @@ -913,9 +913,9 @@ func (s *PeerServer) monitorVersion() { } // only support upgrading to etcd2 if *resp.Node.Value == "2" { - log.Infof("%s: detected next internal version 2, exit after 10 seconds.", s.Config.Name) + log.Infof("%s: detected next internal version 2, exit after 10 seconds.", s.config.Name) } else { - log.Infof("%s: detected invaild next internal version %s", s.Config.Name, *resp.Node.Value) + log.Infof("%s: detected invaild next internal version %s", s.config.Name, *resp.Node.Value) continue } time.Sleep(10 * time.Second) diff --git a/server/release_version.go b/server/release_version.go new file mode 100644 index 000000000..5eed52fa9 --- /dev/null +++ b/server/release_version.go @@ -0,0 +1,3 @@ +package server + +const ReleaseVersion = "0.4.8+git" diff --git a/server/server.go b/server/server.go index 9dab311d5..079b3c251 100644 --- a/server/server.go +++ b/server/server.go @@ -285,7 +285,7 @@ func (s *Server) Dispatch(c raft.Command, w http.ResponseWriter, req *http.Reque // Handler to return the current version of etcd. func (s *Server) GetVersionHandler(w http.ResponseWriter, req *http.Request) error { w.WriteHeader(http.StatusOK) - fmt.Fprintf(w, `{"releaseVersion":"%s","internalVersion":"%s"}`, ReleaseVersion, InternalVersion) + fmt.Fprintf(w, "etcd %s", ReleaseVersion) return nil } diff --git a/server/version.go b/server/version.go index 189901191..1d0fc6a4b 100644 --- a/server/version.go +++ b/server/version.go @@ -1,5 +1,3 @@ package server -const ReleaseVersion = "0.4.8+git" -const InternalVersion = "1" const Version = "v2" From 399931cec9016ac065400caea1371117d27a4123 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Fri, 27 Mar 2015 16:08:54 -0700 Subject: [PATCH 4/6] Revert "next-version-handler" This reverts commit f36d55f062eb30e06db104852d00f9e19e49f000. --- server/peer_server.go | 1 - server/peer_server_handlers.go | 43 ---------------------------------- 2 files changed, 44 deletions(-) diff --git a/server/peer_server.go b/server/peer_server.go index 78bba432a..2a6ddcf5c 100644 --- a/server/peer_server.go +++ b/server/peer_server.go @@ -372,7 +372,6 @@ func (s *PeerServer) HTTPHandler() http.Handler { router.HandleFunc("/v2/admin/machines", s.getMachinesHttpHandler).Methods("GET") router.HandleFunc("/v2/admin/machines/{name}", s.getMachineHttpHandler).Methods("GET") router.HandleFunc("/v2/admin/machines/{name}", s.RemoveHttpHandler).Methods("DELETE") - router.HandleFunc("/v2/admin/next-internal-version", s.NextInternalVersionHandler).Methods("GET") return router } diff --git a/server/peer_server_handlers.go b/server/peer_server_handlers.go index 2d561d279..2696956de 100644 --- a/server/peer_server_handlers.go +++ b/server/peer_server_handlers.go @@ -3,7 +3,6 @@ package server import ( "encoding/json" "net/http" - "path" "strconv" "time" @@ -310,48 +309,6 @@ func (ps *PeerServer) UpgradeHttpHandler(w http.ResponseWriter, req *http.Reques w.WriteHeader(http.StatusOK) } -func (ps *PeerServer) NextInternalVersionHandler(w http.ResponseWriter, req *http.Request) { - for i := 0; i < 50; i++ { - if ps.raftServer.State() != raft.Leader { - l := ps.raftServer.Leader() - if l == "" { - time.Sleep(5 * time.Second) - continue - } - url, _ := ps.registry.PeerURL(l) - uhttp.Redirect(url, w, req) - return - } - resp, err := ps.store.Get("/_etcd/available-internal-versions/2", true, true) - if err != nil { - time.Sleep(5 * time.Second) - continue - } - available := make(map[string]bool) - for _, n := range resp.Node.Nodes { - available[path.Base(n.Key)] = true - } - - notfound := false - for _, n := range ps.registry.Names() { - if !available[n] { - notfound = true - break - } - } - if notfound { - time.Sleep(5 * time.Second) - continue - } - c := ps.store.CommandFactory().CreateSetCommand("/_etcd/next-internal-version", false, "2", store.Permanent) - _, err = ps.raftServer.Do(c) - if err == nil { - return - } - } - w.WriteHeader(http.StatusServiceUnavailable) -} - // machineMessage represents information about a peer or standby in the registry. type machineMessage struct { Name string `json:"name"` From e1e2daa205ceed8c2476152cdea90df3b546227c Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Fri, 27 Mar 2015 16:09:04 -0700 Subject: [PATCH 5/6] Revert "etcd: register usable versions when bootstrap" This reverts commit 9f70568a02bc63d53f558789dca7176db802d0ac. --- etcd/etcd.go | 1 - etcd/upgrade.go | 59 ------------------------------------------------- 2 files changed, 60 deletions(-) delete mode 100644 etcd/upgrade.go diff --git a/etcd/etcd.go b/etcd/etcd.go index 20c9122c5..b23fa3db5 100644 --- a/etcd/etcd.go +++ b/etcd/etcd.go @@ -309,7 +309,6 @@ func (e *Etcd) runServer() { for { if e.mode == PeerMode { log.Infof("%v starting in peer mode", e.Config.Name) - go registerAvailableInternalVersions(e.Config.Name, e.Config.Addr, e.Config.EtcdTLSInfo()) // Starting peer server should be followed close by listening on its port // If not, it may leave many requests unaccepted, or cannot receive heartbeat from the cluster. // One severe problem caused if failing receiving heartbeats is when the second node joins one-node cluster, diff --git a/etcd/upgrade.go b/etcd/upgrade.go deleted file mode 100644 index 8cb2319be..000000000 --- a/etcd/upgrade.go +++ /dev/null @@ -1,59 +0,0 @@ -package etcd - -import ( - "fmt" - "os" - "runtime" - "time" - - "github.com/coreos/etcd/log" - "github.com/coreos/etcd/server" - "github.com/coreos/etcd/third_party/github.com/coreos/go-etcd/etcd" -) - -var defaultEtcdBinaryDir = "/usr/libexec/etcd/internal_versions/" - -func registerAvailableInternalVersions(name string, addr string, tls *server.TLSInfo) { - var c *etcd.Client - if tls.Scheme() == "http" { - c = etcd.NewClient([]string{addr}) - } else { - var err error - c, err = etcd.NewTLSClient([]string{addr}, tls.CertFile, tls.KeyFile, tls.CAFile) - if err != nil { - log.Fatalf("client TLS error: %v", err) - } - } - - vers, err := getInternalVersions() - if err != nil { - log.Infof("failed to get local etcd versions: %v", err) - return - } - for _, v := range vers { - for { - _, err := c.Set("/_etcd/available-internal-versions/"+v+"/"+name, "ok", 0) - if err == nil { - break - } - time.Sleep(time.Second) - } - } - log.Infof("%s: available_internal_versions %s is registered into key space successfully.", name, vers) -} - -func getInternalVersions() ([]string, error) { - if runtime.GOOS != "linux" { - return nil, fmt.Errorf("unmatched os version %v", runtime.GOOS) - } - etcdBinaryDir := os.Getenv("ETCD_BINARY_DIR") - if etcdBinaryDir == "" { - etcdBinaryDir = defaultEtcdBinaryDir - } - dir, err := os.Open(etcdBinaryDir) - if err != nil { - return nil, err - } - defer dir.Close() - return dir.Readdirnames(-1) -} From 805959833200bbb769d9b02ef443d478a48da766 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Fri, 27 Mar 2015 16:09:11 -0700 Subject: [PATCH 6/6] Revert "server: add version monitoring" This reverts commit 4f1f003d04ca36d35401591963748eb23b2b93f5. --- server/peer_server.go | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/server/peer_server.go b/server/peer_server.go index 2a6ddcf5c..eda20fc3d 100644 --- a/server/peer_server.go +++ b/server/peer_server.go @@ -6,7 +6,6 @@ import ( "math/rand" "net/http" "net/url" - "os" "sort" "strings" "sync" @@ -293,7 +292,6 @@ func (s *PeerServer) Start(snapshot bool, clusterConfig *ClusterConfig) error { s.startRoutine(s.monitorTimeoutThreshold) s.startRoutine(s.monitorActiveSize) s.startRoutine(s.monitorPeerActivity) - s.startRoutine(s.monitorVersion) // open the snapshot if snapshot { @@ -897,30 +895,3 @@ func (s *PeerServer) monitorPeerActivity() { } } } - -func (s *PeerServer) monitorVersion() { - for { - select { - case <-s.closeChan: - return - case <-time.After(time.Second): - } - - resp, err := s.store.Get("/_etcd/next-internal-version", false, false) - if err != nil { - continue - } - // only support upgrading to etcd2 - if *resp.Node.Value == "2" { - log.Infof("%s: detected next internal version 2, exit after 10 seconds.", s.config.Name) - } else { - log.Infof("%s: detected invaild next internal version %s", s.config.Name, *resp.Node.Value) - continue - } - time.Sleep(10 * time.Second) - // be nice to raft. try not to corrupt log file. - go s.raftServer.Stop() - time.Sleep(time.Second) - os.Exit(0) - } -}