mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-11 04:52:08 +00:00
Merge pull request #117907 from SataQiu/fix-controller-log-20230510
Fix a bug where the AttachedVolume is not printed correctly in the log
This commit is contained in:
commit
87af78dba7
@ -203,7 +203,7 @@ func (rc *reconciler) reconcile(ctx context.Context) {
|
|||||||
// See https://github.com/kubernetes/kubernetes/issues/93902
|
// See https://github.com/kubernetes/kubernetes/issues/93902
|
||||||
attachState := rc.actualStateOfWorld.GetAttachState(attachedVolume.VolumeName, attachedVolume.NodeName)
|
attachState := rc.actualStateOfWorld.GetAttachState(attachedVolume.VolumeName, attachedVolume.NodeName)
|
||||||
if attachState == cache.AttachStateDetached {
|
if attachState == cache.AttachStateDetached {
|
||||||
logger.V(5).Info("Volume detached--skipping", "volume", attachedVolume)
|
logger.V(5).Info("Volume detached--skipping", "node", klog.KRef("", string(attachedVolume.NodeName)), "volumeName", attachedVolume.VolumeName)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,7 +232,7 @@ func (rc *reconciler) reconcile(ctx context.Context) {
|
|||||||
// Check whether volume is still mounted. Skip detach if it is still mounted unless force detach timeout
|
// Check whether volume is still mounted. Skip detach if it is still mounted unless force detach timeout
|
||||||
// or the node has `node.kubernetes.io/out-of-service` taint.
|
// or the node has `node.kubernetes.io/out-of-service` taint.
|
||||||
if attachedVolume.MountedByNode && !forceDetach && !hasOutOfServiceTaint {
|
if attachedVolume.MountedByNode && !forceDetach && !hasOutOfServiceTaint {
|
||||||
logger.V(5).Info("Cannot detach volume because it is still mounted", "volume", attachedVolume)
|
logger.V(5).Info("Cannot detach volume because it is still mounted", "node", klog.KRef("", string(attachedVolume.NodeName)), "volumeName", attachedVolume.VolumeName)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ func (rc *reconciler) reconcile(ctx context.Context) {
|
|||||||
err = rc.nodeStatusUpdater.UpdateNodeStatusForNode(logger, attachedVolume.NodeName)
|
err = rc.nodeStatusUpdater.UpdateNodeStatusForNode(logger, attachedVolume.NodeName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Skip detaching this volume if unable to update node status
|
// Skip detaching this volume if unable to update node status
|
||||||
logger.Error(err, "UpdateNodeStatusForNode failed while attempting to report volume as attached", "volume", attachedVolume)
|
logger.Error(err, "UpdateNodeStatusForNode failed while attempting to report volume as attached", "node", klog.KRef("", string(attachedVolume.NodeName)), "volumeName", attachedVolume.VolumeName)
|
||||||
// Add volume back to ReportAsAttached if UpdateNodeStatusForNode call failed so that node status updater will add it back to VolumeAttached list.
|
// Add volume back to ReportAsAttached if UpdateNodeStatusForNode call failed so that node status updater will add it back to VolumeAttached list.
|
||||||
// It is needed here too because DetachVolume is not call actually and we keep the data consistency for every reconcile.
|
// It is needed here too because DetachVolume is not call actually and we keep the data consistency for every reconcile.
|
||||||
rc.actualStateOfWorld.AddVolumeToReportAsAttached(logger, attachedVolume.VolumeName, attachedVolume.NodeName)
|
rc.actualStateOfWorld.AddVolumeToReportAsAttached(logger, attachedVolume.VolumeName, attachedVolume.NodeName)
|
||||||
@ -262,7 +262,7 @@ func (rc *reconciler) reconcile(ctx context.Context) {
|
|||||||
// Trigger detach volume which requires verifying safe to detach step
|
// Trigger detach volume which requires verifying safe to detach step
|
||||||
// If timeout is true, skip verifySafeToDetach check
|
// If timeout is true, skip verifySafeToDetach check
|
||||||
// If the node has node.kubernetes.io/out-of-service taint with NoExecute effect, skip verifySafeToDetach check
|
// If the node has node.kubernetes.io/out-of-service taint with NoExecute effect, skip verifySafeToDetach check
|
||||||
logger.V(5).Info("Starting attacherDetacher.DetachVolume", "volume", attachedVolume)
|
logger.V(5).Info("Starting attacherDetacher.DetachVolume", "node", klog.KRef("", string(attachedVolume.NodeName)), "volumeName", attachedVolume.VolumeName)
|
||||||
if hasOutOfServiceTaint {
|
if hasOutOfServiceTaint {
|
||||||
logger.V(4).Info("node has out-of-service taint", "node", klog.KRef("", string(attachedVolume.NodeName)))
|
logger.V(4).Info("node has out-of-service taint", "node", klog.KRef("", string(attachedVolume.NodeName)))
|
||||||
}
|
}
|
||||||
@ -270,10 +270,13 @@ func (rc *reconciler) reconcile(ctx context.Context) {
|
|||||||
err = rc.attacherDetacher.DetachVolume(logger, attachedVolume.AttachedVolume, verifySafeToDetach, rc.actualStateOfWorld)
|
err = rc.attacherDetacher.DetachVolume(logger, attachedVolume.AttachedVolume, verifySafeToDetach, rc.actualStateOfWorld)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if !timeout {
|
if !timeout {
|
||||||
logger.Info("attacherDetacher.DetachVolume started", "volume", attachedVolume)
|
logger.Info("attacherDetacher.DetachVolume started", "node", klog.KRef("", string(attachedVolume.NodeName)), "volumeName", attachedVolume.VolumeName)
|
||||||
} else {
|
} else {
|
||||||
metrics.RecordForcedDetachMetric()
|
metrics.RecordForcedDetachMetric()
|
||||||
logger.Info("attacherDetacher.DetachVolume started: this volume is not safe to detach, but maxWaitForUnmountDuration expired, force detaching", "duration", rc.maxWaitForUnmountDuration, "volume", attachedVolume)
|
logger.Info("attacherDetacher.DetachVolume started: this volume is not safe to detach, but maxWaitForUnmountDuration expired, force detaching",
|
||||||
|
"duration", rc.maxWaitForUnmountDuration,
|
||||||
|
"node", klog.KRef("", string(attachedVolume.NodeName)),
|
||||||
|
"volumeName", attachedVolume.VolumeName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -285,7 +288,7 @@ func (rc *reconciler) reconcile(ctx context.Context) {
|
|||||||
if !exponentialbackoff.IsExponentialBackoff(err) {
|
if !exponentialbackoff.IsExponentialBackoff(err) {
|
||||||
// Ignore exponentialbackoff.IsExponentialBackoff errors, they are expected.
|
// Ignore exponentialbackoff.IsExponentialBackoff errors, they are expected.
|
||||||
// Log all other errors.
|
// Log all other errors.
|
||||||
logger.Error(err, "attacherDetacher.DetachVolume failed to start", "volume", attachedVolume)
|
logger.Error(err, "attacherDetacher.DetachVolume failed to start", "node", klog.KRef("", string(attachedVolume.NodeName)), "volumeName", attachedVolume.VolumeName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user