sherlock: gate errorType message on HTTP status (fixes #2950) - #3072
Open
SkxOverKill wants to merge 1 commit into
Open
SkxOverKill wants to merge 1 commit into
SkxOverKill wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #2950 —
minds(and every othererrorType: "message"site) reported usernames as Claimed when the upstream returned a transient 5xx (e.g.HTTP 502from the register/validate API) whose body lacked the configurederrorMsg.Root cause
In
sherlock_project/sherlock.py, theerrorType == "message"branch only did a substring check forerrorMsgin the response body. Any non-2xx response without the error message fell through toQueryStatus.CLAIMED.Changes
sherlock_project/sherlock.py: in the message branch, only reportCLAIMEDfor healthy200..299responses when the error message is absent; non-2xx responses are downgraded toUNKNOWN.tests/test_probes.py: new offline regression test (monkeypatches away the HTTP layer) asserting:502+ body withouterrorMsg→UNKNOWN(wasCLAIMED),200+ body witherrorMsg→AVAILABLE,200+ body withouterrorMsg→CLAIMED.Verification
pytest tests/test_probes.py -m "not online"passes (2 passed).py -msubprocess tests that also fail onmaster).