Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-73806

ProvisioningRequest update fails with 500 due to k8s conflict

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • 4.21
    • None
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • Moderate
    • Yes
    • None
    • None
    • CNF RAN Sprint 283
    • 1
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      This is a clone of issue OCPBUGS-70141. The following is the description of the original issue:

      Description of problem:

      Using the o2ims-infrastructureProvisioning API to update a ProvisioningRequest sometimes results in a 500 error returned due to a race condition in the update function in the API between when the resource version is fetched and when the update is applied. Seems to be happening more recently, but it doesn't seem to be due to recent changes to the provisioning server.
      
      It seems like it'd be better to retry on conflict around the update to prevent this from being returned to the user, since there's nothing they can do through the API other than try again.
      
      API error:
      500 failed to update ProvisioningRequest (9c5372f3-ea1d-4a96-8157-b3b874a55cf9): Operation cannot be fulfilled on provisioningrequests.clcm.openshift.io "9c5372f3-ea1d-4a96-8157-b3b874a55cf9": the object has been modified; please apply your changes to the latest version and try again

      The error seems to come from this line.

      Version-Release number of selected component (if applicable):

          latest 4.21, FBC digest sha256:33e17256a14e5affc2290755550ba8e40f5111dfaa65d9adb542ed98e4719bc2

      How reproducible:

          see 1 or 2 in CI, so relatively rare considering how many updates

      Steps to Reproduce:

          1. Update ProvisioningRequest through o2ims-infrastructureProvisioning API request
          2. See returned error
          3.
          

      Actual results:

          500 due to conflict

      Expected results:

          preferrably the API internally retries on conflict to prevent the error

      Additional info:

      google drive with some logs, although they don't show much

              dpenney1@redhat.com Don Penney
              rh-ee-klaskosk Kirsten Laskoski
              None
              None
              Kirsten Laskoski Kirsten Laskoski
              None
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: