mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #2897 from xiang90/snapshot_logger
snap: use leveled logger
This commit is contained in:
commit
59dd1eeaf0
@ -19,7 +19,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"hash/crc32"
|
"hash/crc32"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"sort"
|
"sort"
|
||||||
@ -30,6 +29,8 @@ import (
|
|||||||
"github.com/coreos/etcd/raft"
|
"github.com/coreos/etcd/raft"
|
||||||
"github.com/coreos/etcd/raft/raftpb"
|
"github.com/coreos/etcd/raft/raftpb"
|
||||||
"github.com/coreos/etcd/snap/snappb"
|
"github.com/coreos/etcd/snap/snappb"
|
||||||
|
|
||||||
|
"github.com/coreos/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -37,6 +38,8 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
logger = capnslog.NewPackageLogger("github.com/coreos/etcd", "snap")
|
||||||
|
|
||||||
ErrNoSnapshot = errors.New("snap: no available snapshot")
|
ErrNoSnapshot = errors.New("snap: no available snapshot")
|
||||||
ErrEmptySnapshot = errors.New("snap: empty snapshot")
|
ErrEmptySnapshot = errors.New("snap: empty snapshot")
|
||||||
ErrCRCMismatch = errors.New("snap: crc mismatch")
|
ErrCRCMismatch = errors.New("snap: crc mismatch")
|
||||||
@ -108,30 +111,30 @@ func loadSnap(dir, name string) (*raftpb.Snapshot, error) {
|
|||||||
func Read(snapname string) (*raftpb.Snapshot, error) {
|
func Read(snapname string) (*raftpb.Snapshot, error) {
|
||||||
b, err := ioutil.ReadFile(snapname)
|
b, err := ioutil.ReadFile(snapname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("snap: snapshotter cannot read file %v: %v", snapname, err)
|
logger.Errorf("cannot read file %v: %v", snapname, err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var serializedSnap snappb.Snapshot
|
var serializedSnap snappb.Snapshot
|
||||||
if err = serializedSnap.Unmarshal(b); err != nil {
|
if err = serializedSnap.Unmarshal(b); err != nil {
|
||||||
log.Printf("snap: corrupted snapshot file %v: %v", snapname, err)
|
logger.Errorf("corrupted snapshot file %v: %v", snapname, err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(serializedSnap.Data) == 0 || serializedSnap.Crc == 0 {
|
if len(serializedSnap.Data) == 0 || serializedSnap.Crc == 0 {
|
||||||
log.Printf("snap: unexpected empty snapshot")
|
logger.Errorf("unexpected empty snapshot")
|
||||||
return nil, ErrEmptySnapshot
|
return nil, ErrEmptySnapshot
|
||||||
}
|
}
|
||||||
|
|
||||||
crc := crc32.Update(0, crcTable, serializedSnap.Data)
|
crc := crc32.Update(0, crcTable, serializedSnap.Data)
|
||||||
if crc != serializedSnap.Crc {
|
if crc != serializedSnap.Crc {
|
||||||
log.Printf("snap: corrupted snapshot file %v: crc mismatch", snapname)
|
logger.Errorf("corrupted snapshot file %v: crc mismatch", snapname)
|
||||||
return nil, ErrCRCMismatch
|
return nil, ErrCRCMismatch
|
||||||
}
|
}
|
||||||
|
|
||||||
var snap raftpb.Snapshot
|
var snap raftpb.Snapshot
|
||||||
if err = snap.Unmarshal(serializedSnap.Data); err != nil {
|
if err = snap.Unmarshal(serializedSnap.Data); err != nil {
|
||||||
log.Printf("snap: corrupted snapshot file %v: %v", snapname, err)
|
logger.Errorf("corrupted snapshot file %v: %v", snapname, err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return &snap, nil
|
return &snap, nil
|
||||||
@ -163,7 +166,7 @@ func checkSuffix(names []string) []string {
|
|||||||
if strings.HasSuffix(names[i], snapSuffix) {
|
if strings.HasSuffix(names[i], snapSuffix) {
|
||||||
snaps = append(snaps, names[i])
|
snaps = append(snaps, names[i])
|
||||||
} else {
|
} else {
|
||||||
log.Printf("snap: unexpected non-snap file %v", names[i])
|
logger.Warningf("skipped unexpected non snapshot file %v", names[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return snaps
|
return snaps
|
||||||
@ -172,6 +175,6 @@ func checkSuffix(names []string) []string {
|
|||||||
func renameBroken(path string) {
|
func renameBroken(path string) {
|
||||||
brokenPath := path + ".broken"
|
brokenPath := path + ".broken"
|
||||||
if err := os.Rename(path, brokenPath); err != nil {
|
if err := os.Rename(path, brokenPath); err != nil {
|
||||||
log.Printf("snap: cannot rename broken snapshot file %v to %v: %v", path, brokenPath, err)
|
logger.Warningf("cannot rename broken snapshot file %v to %v: %v", path, brokenPath, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user