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
sdn/eventqueue: handle DeletedFinalStateUnknown delta objects #11792
sdn/eventqueue: handle DeletedFinalStateUnknown delta objects #11792
Conversation
71f5585
to
fc2ad1e
Compare
[test] |
@@ -19,6 +21,266 @@ func testKeyFunc(obj interface{}) (string, error) { | |||
return key, nil | |||
} | |||
|
|||
func deltaCompress(deltas cache.Deltas, keyFunc cache.KeyFunc) (newDeltas cache.Deltas, paniced bool, msg string) { |
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.
"panicked"
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.
Fixed.
LGTM. Yay tests. |
oops, misclick |
fc2ad1e
to
767f700
Compare
re-[test] due to the mistaken close |
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
[test] |
[testextended][extended:core(idling)] |
We'll get DeletedFinalStateUnknown objects instead of our expected dela object when the object used to exist but whatever stocks the queue calls Replace() because it doesn't have the final object state at deletion. DeltaFIFO generates a DeletedFinalStateUnknown with the current object state (which may be stale) but the key function we were using (MetaNamespaceKeyFunc) and the processing functions in the SDN modules weren't handling them. None of our processing functions seem to care that the state may be stale, so fix up the key function to handle DeletedFinalStateUnknown and try to extract the expected object out of it when we get one. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1389770
767f700
to
c040b16
Compare
Rebased and repsuhed to get fixes for idling tests that keep failing. |
Evaluated for origin test up to c040b16 |
Evaluated for origin testextended up to c040b16 |
continuous-integration/openshift-jenkins/testextended SUCCESS (https://ci.openshift.redhat.com/jenkins/job/test_pr_origin_extended/759/) (Base Commit: 32708e7) (Extended Tests: core(idling)) |
[merge] |
Evaluated for origin merge up to c040b16 |
continuous-integration/openshift-jenkins/test FAILURE (https://ci.openshift.redhat.com/jenkins/job/test_pr_origin/11228/) (Base Commit: 32708e7) |
continuous-integration/openshift-jenkins/merge SUCCESS (https://ci.openshift.redhat.com/jenkins/job/test_pr_origin/11255/) (Base Commit: 07e3ce3) (Image: devenv-rhel7_5336) |
We'll get DeletedFinalStateUnknown objects instead of our expected
dela object when the object used to exist but whatever stocks the
queue calls Replace() because it doesn't have the final object state
at deletion. DeltaFIFO generates a DeletedFinalStateUnknown with
the current object state (which may be stale) but the key function
we were using (MetaNamespaceKeyFunc) and the processing functions
in the SDN modules weren't handling them.
None of our processing functions seem to care that the state may
be stale, so fix up the key function to handle DeletedFinalStateUnknown
and try to extract the expected object out of it when we get one.
Fixes bug 1389770 link
fixes #11794
@openshift/networking