bump go-streamrpc to 0.2, cleanup logging
logging should be user-friendly in INFO mode
This commit is contained in:
@@ -357,7 +357,7 @@ func (s *ReplicationStep) doReplication(ctx context.Context, sender Sender, rece
|
||||
|
||||
sr := s.buildSendRequest(false)
|
||||
|
||||
log.WithField("request", sr).Debug("initiate send request")
|
||||
log.Debug("initiate send request")
|
||||
sres, sstream, err := sender.Send(ctx, sr)
|
||||
if err != nil {
|
||||
log.WithError(err).Error("send request failed")
|
||||
@@ -375,10 +375,13 @@ func (s *ReplicationStep) doReplication(ctx context.Context, sender Sender, rece
|
||||
Filesystem: fs,
|
||||
ClearResumeToken: !sres.UsedResumeToken,
|
||||
}
|
||||
log.WithField("request", rr).Debug("initiate receive request")
|
||||
log.Debug("initiate receive request")
|
||||
err = receiver.Receive(ctx, rr, sstream)
|
||||
if err != nil {
|
||||
log.WithError(err).Error("receive request failed (might also be error on sender)")
|
||||
log.
|
||||
WithError(err).
|
||||
WithField("errType", fmt.Sprintf("%T", err)).
|
||||
Error("receive request failed (might also be error on sender)")
|
||||
sstream.Close()
|
||||
// This failure could be due to
|
||||
// - an unexpected exit of ZFS on the sending side
|
||||
@@ -386,7 +389,7 @@ func (s *ReplicationStep) doReplication(ctx context.Context, sender Sender, rece
|
||||
// - a connectivity issue
|
||||
return updateStateError(err)
|
||||
}
|
||||
log.Info("receive finished")
|
||||
log.Debug("receive finished")
|
||||
|
||||
updateStateCompleted()
|
||||
|
||||
@@ -420,7 +423,7 @@ func (s *ReplicationStep) doMarkReplicated(ctx context.Context, sender Sender) S
|
||||
return s.state
|
||||
}
|
||||
|
||||
log.Info("mark snapshot as replicated")
|
||||
log.Debug("mark snapshot as replicated")
|
||||
req := pdu.SnapshotReplicationStatusReq{
|
||||
Filesystem: s.parent.fs,
|
||||
Snapshot: s.to.GetName(),
|
||||
@@ -450,7 +453,7 @@ func (s *ReplicationStep) updateSizeEstimate(ctx context.Context, sender Sender)
|
||||
|
||||
sr := s.buildSendRequest(true)
|
||||
|
||||
log.WithField("request", sr).Debug("initiate dry run send request")
|
||||
log.Debug("initiate dry run send request")
|
||||
sres, _, err := sender.Send(ctx, sr)
|
||||
if err != nil {
|
||||
log.WithError(err).Error("dry run send request failed")
|
||||
@@ -482,7 +485,7 @@ func (s *ReplicationStep) String() string {
|
||||
if s.from == nil { // FIXME: ZFS semantics are that to is nil on non-incremental send
|
||||
return fmt.Sprintf("%s%s (full)", s.parent.fs, s.to.RelName())
|
||||
} else {
|
||||
return fmt.Sprintf("%s(%s => %s)", s.parent.fs, s.from, s.to.RelName())
|
||||
return fmt.Sprintf("%s(%s => %s)", s.parent.fs, s.from.RelName(), s.to.RelName())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+16
-4
@@ -147,6 +147,9 @@ func (r *Replication) Drive(ctx context.Context, sender Sender, receiver Receive
|
||||
WithField("transition", fmt.Sprintf("%s => %s", pre, post)).
|
||||
WithField("duration", delta).
|
||||
Debug("main state transition")
|
||||
if post == Working && pre != post {
|
||||
getLogger(ctx).Info("start working")
|
||||
}
|
||||
}
|
||||
|
||||
getLogger(ctx).
|
||||
@@ -178,6 +181,8 @@ func statePlanning(ctx context.Context, sender Sender, receiver Receiver, u upda
|
||||
|
||||
log := getLogger(ctx)
|
||||
|
||||
log.Info("start planning")
|
||||
|
||||
handlePlanningError := func(err error) state {
|
||||
return u(func(r *Replication) {
|
||||
r.planningError = err
|
||||
@@ -203,7 +208,7 @@ func statePlanning(ctx context.Context, sender Sender, receiver Receiver, u upda
|
||||
|
||||
log := mainlog.WithField("filesystem", fs.Path)
|
||||
|
||||
log.Info("assessing filesystem")
|
||||
log.Debug("assessing filesystem")
|
||||
|
||||
sfsvs, err := sender.ListFilesystemVersions(ctx, fs.Path)
|
||||
if err != nil {
|
||||
@@ -266,8 +271,10 @@ func statePlanning(ctx context.Context, sender Sender, receiver Receiver, u upda
|
||||
}
|
||||
}
|
||||
qitem := fsrfsm.Done()
|
||||
|
||||
log.Debug("compute send size estimate")
|
||||
if err = qitem.UpdateSizeEsitmate(ctx, sender); err != nil {
|
||||
log.WithError(err).Error("cannot get size estimate")
|
||||
log.WithError(err).Error("error computing size estimate")
|
||||
return handlePlanningError(err)
|
||||
}
|
||||
q.Add(qitem)
|
||||
@@ -284,10 +291,13 @@ func statePlanning(ctx context.Context, sender Sender, receiver Receiver, u upda
|
||||
var RetrySleepDuration = 10 * time.Second // FIXME make constant onfigurable
|
||||
|
||||
func statePlanningError(ctx context.Context, sender Sender, receiver Receiver, u updater) state {
|
||||
|
||||
sleepUntil := time.Now().Add(RetrySleepDuration)
|
||||
u(func(r *Replication) {
|
||||
r.sleepUntil = time.Now().Add(RetrySleepDuration)
|
||||
r.sleepUntil = sleepUntil
|
||||
})
|
||||
t := time.NewTimer(RetrySleepDuration)
|
||||
getLogger(ctx).WithField("until", sleepUntil).Info("retry wait after planning error")
|
||||
defer t.Stop()
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
@@ -328,10 +338,12 @@ func stateWorking(ctx context.Context, sender Sender, receiver Receiver, u updat
|
||||
}
|
||||
|
||||
func stateWorkingWait(ctx context.Context, sender Sender, receiver Receiver, u updater) state {
|
||||
sleepUntil := time.Now().Add(RetrySleepDuration)
|
||||
u(func(r *Replication) {
|
||||
r.sleepUntil = time.Now().Add(RetrySleepDuration)
|
||||
r.sleepUntil = sleepUntil
|
||||
})
|
||||
t := time.NewTimer(RetrySleepDuration)
|
||||
getLogger(ctx).WithField("until", sleepUntil).Info("retry wait after send/recv error")
|
||||
defer t.Stop()
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
|
||||
Reference in New Issue
Block a user