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: