diff --git a/README.md b/README.md index e042337ae76..8a49824036c 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ See [etcdctl][etcdctl] for a simple command line client. The easiest way to get etcd is to use one of the pre-built release binaries which are available for OSX, Linux, Windows, [rkt][rkt], and Docker. Instructions for using these binaries are on the [GitHub releases page][github-release]. -For those wanting to try the very latest version, [build the latest version of etcd][dl-build] from the `master` branch. This first needs [*Go*](https://golang.org/) installed (version 1.7+ is required). All development occurs on `master`, including new features and bug fixes. Bug fixes are first targeted at `master` and subsequently ported to release branches, as described in the [branch management][branch-management] guide. +For those wanting to try the very latest version, [build the latest version of etcd][dl-build] from the `master` branch. This first needs [*Go*](https://golang.org/) installed (version 1.8+ is required). All development occurs on `master`, including new features and bug fixes. Bug fixes are first targeted at `master` and subsequently ported to release branches, as described in the [branch management][branch-management] guide. [rkt]: https://github.com/coreos/rkt/releases/ [github-release]: https://github.com/coreos/etcd/releases/ @@ -73,7 +73,7 @@ That's it! etcd is now running and serving client requests. For more ### etcd TCP ports -The [official etcd ports][iana-ports] are 2379 for client requests, and 2380 for peer communication. +The [official etcd ports][iana-ports] are 2379 for client requests, and 2380 for peer communication. [iana-ports]: https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=etcd diff --git a/etcdctl/ctlv3/command/snapshot_command.go b/etcdctl/ctlv3/command/snapshot_command.go index 3a168b97680..eb8630fd132 100644 --- a/etcdctl/ctlv3/command/snapshot_command.go +++ b/etcdctl/ctlv3/command/snapshot_command.go @@ -310,14 +310,14 @@ func makeDB(snapdir, dbfile string, commit int) { defer f.Close() // get snapshot integrity hash - if _, err := f.Seek(-sha256.Size, os.SEEK_END); err != nil { + if _, err := f.Seek(-sha256.Size, io.SeekEnd); err != nil { ExitWithError(ExitIO, err) } sha := make([]byte, sha256.Size) if _, err := f.Read(sha); err != nil { ExitWithError(ExitIO, err) } - if _, err := f.Seek(0, os.SEEK_SET); err != nil { + if _, err := f.Seek(0, io.SeekStart); err != nil { ExitWithError(ExitIO, err) } @@ -335,7 +335,7 @@ func makeDB(snapdir, dbfile string, commit int) { } // truncate away integrity hash, if any. - off, serr := db.Seek(0, os.SEEK_END) + off, serr := db.Seek(0, io.SeekEnd) if serr != nil { ExitWithError(ExitIO, serr) } @@ -353,7 +353,7 @@ func makeDB(snapdir, dbfile string, commit int) { if hasHash && !skipHashCheck { // check for match - if _, err := db.Seek(0, os.SEEK_SET); err != nil { + if _, err := db.Seek(0, io.SeekStart); err != nil { ExitWithError(ExitIO, err) } h := sha256.New() diff --git a/pkg/fileutil/fileutil.go b/pkg/fileutil/fileutil.go index aad40b75904..fce5126c695 100644 --- a/pkg/fileutil/fileutil.go +++ b/pkg/fileutil/fileutil.go @@ -17,6 +17,7 @@ package fileutil import ( "fmt" + "io" "io/ioutil" "os" "path/filepath" @@ -101,11 +102,11 @@ func Exist(name string) bool { // shorten the length of the file. func ZeroToEnd(f *os.File) error { // TODO: support FALLOC_FL_ZERO_RANGE - off, err := f.Seek(0, os.SEEK_CUR) + off, err := f.Seek(0, io.SeekCurrent) if err != nil { return err } - lenf, lerr := f.Seek(0, os.SEEK_END) + lenf, lerr := f.Seek(0, io.SeekEnd) if lerr != nil { return lerr } @@ -116,6 +117,6 @@ func ZeroToEnd(f *os.File) error { if err = Preallocate(f, lenf, true); err != nil { return err } - _, err = f.Seek(off, os.SEEK_SET) + _, err = f.Seek(off, io.SeekStart) return err } diff --git a/pkg/fileutil/fileutil_test.go b/pkg/fileutil/fileutil_test.go index 28fe4007cce..35f9ac5acee 100644 --- a/pkg/fileutil/fileutil_test.go +++ b/pkg/fileutil/fileutil_test.go @@ -15,6 +15,7 @@ package fileutil import ( + "io" "io/ioutil" "os" "os/user" @@ -133,13 +134,13 @@ func TestZeroToEnd(t *testing.T) { if _, err = f.Write(b); err != nil { t.Fatal(err) } - if _, err = f.Seek(512, os.SEEK_SET); err != nil { + if _, err = f.Seek(512, io.SeekStart); err != nil { t.Fatal(err) } if err = ZeroToEnd(f); err != nil { t.Fatal(err) } - off, serr := f.Seek(0, os.SEEK_CUR) + off, serr := f.Seek(0, io.SeekCurrent) if serr != nil { t.Fatal(serr) } diff --git a/pkg/fileutil/lock_linux.go b/pkg/fileutil/lock_linux.go index dec25a1af44..939fea62381 100644 --- a/pkg/fileutil/lock_linux.go +++ b/pkg/fileutil/lock_linux.go @@ -17,6 +17,7 @@ package fileutil import ( + "io" "os" "syscall" ) @@ -36,7 +37,7 @@ const ( var ( wrlck = syscall.Flock_t{ Type: syscall.F_WRLCK, - Whence: int16(os.SEEK_SET), + Whence: int16(io.SeekStart), Start: 0, Len: 0, } diff --git a/pkg/fileutil/preallocate.go b/pkg/fileutil/preallocate.go index bb7f0281239..3270a32986c 100644 --- a/pkg/fileutil/preallocate.go +++ b/pkg/fileutil/preallocate.go @@ -14,7 +14,10 @@ package fileutil -import "os" +import ( + "io" + "os" +) // Preallocate tries to allocate the space for given // file. This operation is only supported on linux by a @@ -29,15 +32,15 @@ func Preallocate(f *os.File, sizeInBytes int64, extendFile bool) error { } func preallocExtendTrunc(f *os.File, sizeInBytes int64) error { - curOff, err := f.Seek(0, os.SEEK_CUR) + curOff, err := f.Seek(0, io.SeekCurrent) if err != nil { return err } - size, err := f.Seek(sizeInBytes, os.SEEK_END) + size, err := f.Seek(sizeInBytes, io.SeekEnd) if err != nil { return err } - if _, err = f.Seek(curOff, os.SEEK_SET); err != nil { + if _, err = f.Seek(curOff, io.SeekStart); err != nil { return err } if sizeInBytes > size { diff --git a/wal/encoder.go b/wal/encoder.go index efe58928cc8..aac1e197e59 100644 --- a/wal/encoder.go +++ b/wal/encoder.go @@ -52,7 +52,7 @@ func newEncoder(w io.Writer, prevCrc uint32, pageOffset int) *encoder { // newFileEncoder creates a new encoder with current file offset for the page writer. func newFileEncoder(f *os.File, prevCrc uint32) (*encoder, error) { - offset, err := f.Seek(0, os.SEEK_CUR) + offset, err := f.Seek(0, io.SeekCurrent) if err != nil { return nil, err } diff --git a/wal/repair.go b/wal/repair.go index ffb14161682..091036b57b9 100644 --- a/wal/repair.go +++ b/wal/repair.go @@ -62,7 +62,7 @@ func Repair(dirpath string) bool { } defer bf.Close() - if _, err = f.Seek(0, os.SEEK_SET); err != nil { + if _, err = f.Seek(0, io.SeekStart); err != nil { plog.Errorf("could not repair %v, failed to read file", f.Name()) return false } diff --git a/wal/repair_test.go b/wal/repair_test.go index f72faae496d..be9c016cb4f 100644 --- a/wal/repair_test.go +++ b/wal/repair_test.go @@ -64,7 +64,7 @@ func testRepair(t *testing.T, ents [][]raftpb.Entry, corrupt corruptFunc, expect } } - offset, err := w.tail().Seek(0, os.SEEK_CUR) + offset, err := w.tail().Seek(0, io.SeekCurrent) if err != nil { t.Fatal(err) } diff --git a/wal/wal.go b/wal/wal.go index 943427eabff..2cac25c1c90 100644 --- a/wal/wal.go +++ b/wal/wal.go @@ -112,7 +112,7 @@ func Create(dirpath string, metadata []byte) (*WAL, error) { if err != nil { return nil, err } - if _, err = f.Seek(0, os.SEEK_END); err != nil { + if _, err = f.Seek(0, io.SeekEnd); err != nil { return nil, err } if err = fileutil.Preallocate(f.File, SegmentSizeBytes, true); err != nil { @@ -322,7 +322,7 @@ func (w *WAL) ReadAll() (metadata []byte, state raftpb.HardState, ents []raftpb. // not all, will cause CRC errors on WAL open. Since the records // were never fully synced to disk in the first place, it's safe // to zero them out to avoid any CRC errors from new writes. - if _, err = w.tail().Seek(w.decoder.lastOffset(), os.SEEK_SET); err != nil { + if _, err = w.tail().Seek(w.decoder.lastOffset(), io.SeekStart); err != nil { return nil, state, nil, err } if err = fileutil.ZeroToEnd(w.tail().File); err != nil { @@ -361,7 +361,7 @@ func (w *WAL) ReadAll() (metadata []byte, state raftpb.HardState, ents []raftpb. // Then cut atomically rename temp wal file to a wal file. func (w *WAL) cut() error { // close old wal file; truncate to avoid wasting space if an early cut - off, serr := w.tail().Seek(0, os.SEEK_CUR) + off, serr := w.tail().Seek(0, io.SeekCurrent) if serr != nil { return serr } @@ -401,7 +401,7 @@ func (w *WAL) cut() error { return err } - off, err = w.tail().Seek(0, os.SEEK_CUR) + off, err = w.tail().Seek(0, io.SeekCurrent) if err != nil { return err } @@ -418,7 +418,7 @@ func (w *WAL) cut() error { if newTail, err = fileutil.LockFile(fpath, os.O_WRONLY, fileutil.PrivateFileMode); err != nil { return err } - if _, err = newTail.Seek(off, os.SEEK_SET); err != nil { + if _, err = newTail.Seek(off, io.SeekStart); err != nil { return err } @@ -564,7 +564,7 @@ func (w *WAL) Save(st raftpb.HardState, ents []raftpb.Entry) error { return err } - curOff, err := w.tail().Seek(0, os.SEEK_CUR) + curOff, err := w.tail().Seek(0, io.SeekCurrent) if err != nil { return err } diff --git a/wal/wal_test.go b/wal/wal_test.go index c3574abee79..4528e22977c 100644 --- a/wal/wal_test.go +++ b/wal/wal_test.go @@ -46,7 +46,7 @@ func TestNew(t *testing.T) { defer w.Close() // file is preallocated to segment size; only read data written by wal - off, err := w.tail().Seek(0, os.SEEK_CUR) + off, err := w.tail().Seek(0, io.SeekCurrent) if err != nil { t.Fatal(err) } @@ -623,7 +623,7 @@ func TestTailWriteNoSlackSpace(t *testing.T) { } } // get rid of slack space by truncating file - off, serr := w.tail().Seek(0, os.SEEK_CUR) + off, serr := w.tail().Seek(0, io.SeekCurrent) if serr != nil { t.Fatal(serr) } @@ -732,7 +732,7 @@ func TestOpenOnTornWrite(t *testing.T) { if err = w.Save(raftpb.HardState{}, es); err != nil { t.Fatal(err) } - if offsets[i], err = w.tail().Seek(0, os.SEEK_CUR); err != nil { + if offsets[i], err = w.tail().Seek(0, io.SeekCurrent); err != nil { t.Fatal(err) } } @@ -746,7 +746,7 @@ func TestOpenOnTornWrite(t *testing.T) { t.Fatal(ferr) } defer f.Close() - _, err = f.Seek(offsets[clobberIdx], os.SEEK_SET) + _, err = f.Seek(offsets[clobberIdx], io.SeekStart) if err != nil { t.Fatal(err) }