provider/aws: Fix WAF IPSet descriptors removal on update #13766
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.
Closes #10403
Closes #10914
Before this patch we were never deleting descriptors from the IPSet except when deleting the whole IPSet. We were always just inserting more.
Fortunately because the
Read()
is implemented correctly we keep track of all descriptors, including the ones that user wanted to delete, but weren't deleted. That is how users can recover from the buggy state as we can just delete descriptors we know about.TL;DR It should be sufficient to just re-apply after the bugfix was released to recover.
Test plan
cc @yusukegoto I think the same bugs exists in your PR too, so feel free to cherry-pick from here.
btw. I believe there's very similar bug affecting byte match set which I plan to fix too.