Stop logging Pods without Nodes yet as an Error#2014
Stop logging Pods without Nodes yet as an Error#2014markmandel merged 2 commits intoagones-dev:mainfrom
Conversation
|
Build Succeeded 👏 Build Id: 26ba2997-b2f6-4bd2-a6c1-108bafcb45e7 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
pkg/util/workerqueue/workerqueue.go
Outdated
|
|
||
| // DebugError is a marker type for errors that that should only be logged at a Debug level. | ||
| // Useful if you want a Handler to be retried, but not logged at an Error level. | ||
| type DebugError struct { |
There was a problem hiding this comment.
Is this type intended to be used outside of this package? Given that the constructor below returns error it seems like this should be package scoped and callers should use NewDebugError to create them.
b4e6533 to
1a2296f
Compare
|
Done! This should be good to go now. 👍 |
1a2296f to
b26e212
Compare
|
Build Succeeded 👏 Build Id: 2d7115c2-6a16-4f0b-a4e7-100606d3bf94 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
pkg/util/workerqueue/workerqueue.go
Outdated
| // Error returns the error string | ||
| func (l *debugError) Error() string { | ||
| if l.err == nil { | ||
| return "nil" |
There was a problem hiding this comment.
Should this be return ""?
There was a problem hiding this comment.
I went back and forth on that. In the rare occurrence in which it could be nil I thought it might be handy to be able to easily see that. Empty string so often disappears amongst other things.
Maybe it should be "<nil>" like the playground then?
There was a problem hiding this comment.
I meant to put "", I guess I didn't paste the middle part in though.
There was a problem hiding this comment.
When I go to edit your comment, I see you wrote <nil>, which gets escaped by Github! Cool. I'll make this change 😄
| } | ||
| } | ||
|
|
||
| func TestIsDebugError(t *testing.T) { |
There was a problem hiding this comment.
a nit but this doesn't just test IsDebugError any longer, so it should be renamed to TestDebugError instead.
b26e212 to
efc00f0
Compare
|
Build Failed 😱 Build Id: 203cd8c4-a3ce-44a3-b570-7392332ab066 To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
|
Build Failed 😱 Build Id: 9185cd2b-71e3-45c7-902b-ad9d2fa5f5aa To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
|
Build Failed 😱 Build Id: abd7ca2a-2893-4401-a932-ab9dc9daa0c1 To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
|
Hmnn. Lots of flakiness agian |
This one seems common 🤔 |
|
Build Failed 😱 Build Id: 718ad84a-10f2-4ec8-bd03-fdcdc08b88d3 To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
|
Build Succeeded 👏 Build Id: 79fa2378-004d-40e7-8e7d-c2eef83a5f7b The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
|
ERMAGHERD THAT WAS A ROUGH ONE |
A common debugging red herring I see is people seeing an error that reads something akin to: ``` "message":"error retrieving node for Pod game-servercbtld: node \"\" not found","severity":"error" ``` And (not unsurprisingly, it's an `error`) wondering if it causing whatever issue they are having with Agones. Except these errors are totally expected, and normal, as Pods often aren't populated with the Node they live on straight away, so I wanted to have a way to be able to return an error from a workerqueue Handler function to retry, but not have it be logged at an Error level. So that's what this does - provide a wrapper Error type that only gets logged at the Debug level, and the corresponding changes to make that error message above be logged at the Debug level and not cause so much noise.
009dac6 to
0640590
Compare
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: markmandel, roberthbailey The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Build Failed 😱 Build Id: 4a6f2a4d-52bb-41e9-9378-07f137447cdc To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
|
New changes are detected. LGTM label has been removed. |
|
Build Failed 😱 Build Id: 2f0ee545-4b21-418d-92cf-1ca501ede07d To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
That's a legit flake. |
|
Build Succeeded 👏 Build Id: 94797748-8580-4db1-9f73-7d7cf080ecc5 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
What type of PR is this?
/kind cleanup
What this PR does / Why we need it:
A common debugging red herring I see is people seeing an error that reads something akin to:
And (not unsurprisingly, it's an
error) wondering if it causing whatever issue they are having with Agones.Except these errors are totally expected, and normal, as Pods often aren't populated with the Node they live on straight away, so I wanted to have a way to be able to return an error from a workerqueue Handler function to retry, but not have it be logged at an Error level.
So that's what this does - provide a wrapper Error type that only gets logged at the Debug level, and the corresponding changes to make that error message above be logged at the Debug level and not cause so much noise.
Which issue(s) this PR fixes:
N/A
Special notes for your reviewer:
If anyone has a better name than "DebugError" please suggest. I wasn't 100% happy, but couldn't come up with anything better.