Uploaded image for project: 'OpenShift GitOps'
  1. OpenShift GitOps
  2. GITOPS-7606

ApplicationSet: Bitbucket SCM/PR generator leaks HTTP connections

XMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • False
    • Hide
      Before this update, a new connection was created on every reconciliation cycle and never closed, leading to resource exhaustion on the BitBucket server. With this update, HTTP connections are now properly cached and reused, preventing the leak and ensuring efficient communication.
      Show
      Before this update, a new connection was created on every reconciliation cycle and never closed, leading to resource exhaustion on the BitBucket server. With this update, HTTP connections are now properly cached and reused, preventing the leak and ensuring efficient communication.
    • Bug Fix
    • Proposed

      Description of Problem:

      ArgoCD keep creating new connections and never closing/removing the old connections. 
      This caused  Bitbucket server to run out of available connections causing a Bitbucket outage for the entire organization.
      Over time, this leads to an accumulation of idle sockets and goroutines. Causing the scm Server to run out of available connections.

      Steps to Reproduce:

      1. Run the ArgoCD ApplicationSet controller with a Bitbucket Server SCM or PR generator.
      2. Allow the controller to reconcile multiple times.
      3. Inspect open file descriptors or network sockets (lsof -p or netstat -anp | grep ).
      4. Observe that the number of idle connections to the Bitbucket server grows over time.

      Reproducibility:
      Always

      Prerequisites/Environment:

      OCP: 4.16
      Argocd : v2.14.7

      Expected Results:

      Idle connections should be reclaimed automatically after the IdleConnTimeout expires.
      No unbounded growth of idle sockets or background goroutines.

      Definition of Done

      • Code Complete:
        • All code has been written, reviewed, and approved.
      • Tested:
        • Unit tests have been written and passed.
        • Ensure code coverage is not reduced with the changes.
        • Integration tests have been automated.
        • System tests have been conducted, and all critical bugs have been fixed.
        • Tested and merged on OpenShift either upstream or downstream on a local build.
      • Documentation:
        • User documentation or release notes have been written (if applicable).
      • Build:
        • Code has been successfully built and integrated into the main repository / project.
        • Midstream changes (if applicable) are done, reviewed, approved and merged.
      • Review:
        • Code has been peer-reviewed and meets coding standards.
        • All acceptance criteria defined in the user story have been met.
        • Tested by reviewer on OpenShift.
      • Deployment:
        • The feature has been deployed on OpenShift cluster for testing.

              rh-ee-anjoseph Anand Francis Joseph
              rhn-support-dtambat Darshan Tambat
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: