Bug 1538370
Summary: | broker returning 500 instead of 410 on unbind | ||||||
---|---|---|---|---|---|---|---|
Product: | OpenShift Container Platform | Reporter: | Eric Jones <erjones> | ||||
Component: | Service Broker | Assignee: | Todd Sanders <tsanders> | ||||
Status: | CLOSED DUPLICATE | QA Contact: | Jian Zhang <jiazha> | ||||
Severity: | urgent | Docs Contact: | |||||
Priority: | urgent | ||||||
Version: | 3.7.0 | CC: | aos-bugs, chezhang, erjones, jokerman, jpeeler, mmccomas, pmorie, wzheng | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2018-02-08 17:05:52 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Description
Eric Jones
2018-01-24 23:38:19 UTC
Custom resource definition garbage support was introduced in Kube 1.8/OCP 3.8 and was actively disabled for CRD in OCP 3.5-3.7 (inclusive). If the service broker was setting ownerReferences on ServiceBinding resources in 3.7, the bug is with the broker using an unsupported feature. CRD garbage collector support will not be backported to OCP 3.7. The options seem to be: 1. Patch to the broker code (not sure whether this is actually viable) 2. Upgrade to OCP 3.8+ Jeff, will you take a look at this? Based on what Dan said above, I'm not sure anything can be done here. This functions correctly with a test using PostgreSQL on origin master and origin 3.7.1. As far as OwnerReferences go, the only reference created is on the secret backing the binding. When a binding is deleted, the secret is too. (Is it even possible for a broker to add ownerReferences on a binding?) I'm wondering what I did incorrectly to not have the binding deletion fail. Eric, can you further outline exactly what you deployed? The issue that was presented by the reporter is a little different from the original issue (I think). Here's the binding deletion failure scenario I observed: - service instance is blocked on deletion due to binding still existing - binding is failing on unbind call due to being forbidden to execute by namespace admission controller because the namespace is in a terminated state Will keep looking. We're missing part of the picture here. The garbage collector is not expected to do any work on behalf of ServiceBindings. Would you attach the logs from the service-catalog controller manager, please? Created attachment 1392775 [details]
controller manager logs
I was incorrect about the binding failing due to the terminated namespace. The first call to unbind returns with an error of 500: W0205 16:44:39.262868 1 controller_binding.go:657] ServiceBinding "test/eap64-amq-persistent-s2i-kqtwm-5lbqg": Error unbinding from ServiceInstance "test/eap64-amq-persistent-s2i-kqtwm" of ClusterServiceClass (K8S: "d9d28705-0a89-11e8-a9b3-fa163effd122" ExternalName: "eap64-amq-persistent-s2i") at ClusterServiceBroker "template-service-broker": Status: 500; ErrorMessage: <nil>; Description: templateinstances.template.openshift.io "b7a58efa-4b43-41c6-b219-48fd21ccd2a8" not found; ResponseError: <nil> According to the OSB spec, a response code of 500 is unexpected and in this case I think catalog is functioning as expected. I think the broker should be returning 410 instead. https://github.com/openservicebrokerapi/servicebroker/blob/master/spec.md#response-5 *** This bug has been marked as a duplicate of bug 1540819 *** |