Uploaded image for project: 'Red Hat 3scale API Management'
  1. Red Hat 3scale API Management
  2. THREESCALE-3772

Proxy update endpoint returns 409 Conflict

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • SaaS
    • System
    • None
    • Not Started
    • Not Started
    • Not Started
    • Not Started
    • Not Started
    • Not Started
    • 3scale 2019-10-14

      The issue happens on SaaS infrastructure. Intermittently, but frequently and easily reproducible.

      Proxy update 3scale API endpoint returns 409 Conflict

      PATCH   /admin/api/services/2555417830415/proxy.json
      

      Full request/response debug log

      <- "PATCH /admin/api/services/2555417830415/proxy.json HTTP/1.1\r\nAccept: application/json\r\nContent-Type: application/json\r\nAuthorization: Basic ******=\r\nAccept-Encoding: identity\r\nUser-Agent: Ruby\r\nHost: autotest-admin.3scale.net\r\nContent-Length: 58\r\n\r\n"
      <- "{\"proxy\":{\"error_auth_failed\":\"exampleautherrormessage1\"}}"
      -> "HTTP/1.1 409 Conflict\r\n"
      -> "Content-Type: application/json; charset=utf-8\r\n"
      -> "Date: Mon, 21 Oct 2019 14:24:29 GMT\r\n"
      -> "Strict-Transport-Security: max-age=15552000\r\n"
      -> "Vary: Accept-Encoding\r\n"
      -> "X-Request-Id: e9cd728b-e67c-47f7-b1a4-1fc8d4254f06\r\n"
      -> "X-Runtime: 0.572937\r\n"
      -> "X-Served-By: mt08\r\n"
      -> "Content-Length: 35\r\n"
      -> "Connection: keep-alive\r\n"
      -> "\r\n"
      reading 35 bytes...
      -> "{\"status\":\"409\",\"error\":\"Conflict\"}"
      read 35 bytes
      

      3scale Toolbox integration tests are always failing. One example:

      https://travis-ci.org/3scale/3scale_toolbox/builds/600651978

      Dev Notes
      Gui has run into this in a different controller. This is likely to be caused by a race condition on the update of the proxy. Other processes may be changing either the proxy itself, proxy rules, backends or backend usage, and thus causing multiple attempts in parallel to "touch" the proxy, directly or via proxy's affecting_change_history.

              Unassigned Unassigned
              eguzki Eguzki Astiz Lezaun
              Eguzki Astiz Lezaun Eguzki Astiz Lezaun
              Guilherme Cassolato Guilherme Cassolato
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: