TT-12074 Check and remove empty values from resulting set #769
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.
Description
Empty values from unsuccessful pipelined transactions in
GetAndDeleteSet
end up in theresult
slice as empty interfaces. This can cause issues downstream as outlined in the related issueRelated Issue
Issue #768
Motivation and Context
Errors that may occur during data retrieval from Redis (such as i/o errors), should not propagate downstream. Empty values wrapped as interfaces cause other errors downstream, such as type assertion errors. By checking for empty values, no empty interfaces should be returned for decoding during later stages of the purging process.
How This Has Been Tested
docker-compose.yml
file:Modify the Resurface pump backend is configured without any timeout.
Import the following HTTP Bin Tyk API definition:
/image/png
endpoint aiming for >4000 RPS (concurrency level of 200 with 500k requests)Screenshots (if appropriate)
Types of changes
Checklist
fork, don't request your
master
!master
branch (left side). Also, you should startyour branch off our latest
master
.go mod tidy && go mod vendor
go fmt -s
go vet