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

CIRO unable to detect swift when content-type is omitted in 204-responses

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Normal Normal
    • None
    • 4.8.z
    • Image Registry
    • -
    • Moderate
    • None
    • False
    • Hide

      None

      Show
      None

      Description of problem: As discovered in https://issues.redhat.com/browse/OCPBUGS-2795, gophercloud fails to list swift containers when the endpoint speaks HTTP2. This means that CIRO will provision a 100GB cinder volume even though swift is available to the tenant.

      We're for example seeing this behavior in our CI on vexxhost.

      The gophercloud commit that fixed this issue is https://github.com/gophercloud/gophercloud/commit/b7d5b2cdd7ffc13e79d924f61571b0e5f74ec91c, specifically the `|| ct == ""` part on line 75 of openstack/objectstorage/v1/containers/results.go. This commit made it in gophercloud v0.18.0.

      CIRO still depends on gophercloud v0.17.0. We should bump gophercloud to fix the bug.

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

      All versions. Fix should go to 4.8 - 4.12.
      

      How reproducible:

      Always, when the object storage omits the 'content-type' header. This might happen with responses bearing a HTTP status code 204, when Swift is exposed behind a reverse proxy that truncates 'content-type' headers for that specific response code. See https://trac.nginx.org/nginx/ticket/2109#no1 

      Steps to Reproduce:

      1.
      2.
      3.
      

      Actual results:

       

      Expected results:

       

      Additional info:

       

              maandre@redhat.com Martin André
              maandre@redhat.com Martin André
              XiuJuan Wang XiuJuan Wang
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: