New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lcow: fix debug in startServiceVMIfNotRunning() #37446
Conversation
When go-1.11beta1 is used for building, the following error is reported: > 14:56:20 daemon\graphdriver\lcow\lcow.go:236: Debugf format %s reads > arg #2, but call has 1 arg While fixing this, let's also fix a few other things in this very function (startServiceVMIfNotRunning): 1. Do not use fmt.Printf when not required. 2. Use `title` whenever possible. 3. Don't add `id` to messages as `title` already has it. 4. Remove duplicated colons. 5. Try to unify style of messages. 6. s/startservicevmifnotrunning/startServiceVMIfNotRunning/ ... In general, logging/debugging here is a mess and requires much more love than I can give it at the moment. Areas for improvement: 1. Add a global var logger = logrus.WithField("storage-driver", "lcow") and use it everywhere else in the code. 2. Use logger.WithField("id", id) whenever possible (same for "context" and other similar fields). 3. Revise all the errors returned to be uniform. 4. Make use of errors.Wrap[f] whenever possible. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
@johnstep @ jhowardmsft PTAL |
This is separated from #37358 |
Sure. LGTM |
z and ppc failures are obviously unrelated (some glitch in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but left some suggestions; I'm ok to do that in a follow up (that is, of course, if you agree) or as part of this PR; let me know
@@ -219,21 +219,21 @@ func (d *Driver) startServiceVMIfNotRunning(id string, mvdToAdd []hcsshim.Mapped | |||
// Use the global ID if in global mode | |||
id = d.getVMID(id) | |||
|
|||
title := fmt.Sprintf("lcowdriver: startservicevmifnotrunning %s:", id) | |||
title := "lcowdriver: startServiceVMIfNotRunning " + id |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps for a follow up, but we should logrus.WithFields
for this information (similar to what we do for other storage drivers)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I concur (see the patch description).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...but I'd rather do it in a separate PR later as this fix is quite big already -- and initially it supposed to be a one-liner 🤣
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
D'oh!! Didn't read that far into your description 🤦♂️
if err := svm.getStopError(); err != nil { | ||
logrus.Debugf("%s: VM %s did not stop successfully: %s", title, id, err) | ||
logrus.Debugf("%s: VM did not stop successfully: %s", title, err) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
logrus.WithError(err).Debug(....)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto
PowerPC https://jenkins.dockerproject.org/job/Docker-PRs-powerpc/10507/console failure is unrelated, and tracked through #37408
|
When go-1.11beta1 is used for building, the following error is reported:
While fixing this, let's also fix a few other things in this very function (
startServiceVMIfNotRunning()
):fmt.Printf
when not required.title
whenever possible.id
to messages astitle
already has it.s/startservicevmifnotrunning/startServiceVMIfNotRunning/
...
In general, logging/debugging here is a mess and requires much more love than I can give it at the moment. Ideas for improvement:
var logger = logrus.WithField("storage-driver", "lcow")
and use it everywhere else in the code.logger.WithField("id", id)
whenever possible (same for "context" and other similar fields).errors.Wrap[f]
whenever possible.