Setting CPU limit to milliCPU with Kubernetes notation in values.yaml causing Synchrony to get killed while using Atlassian Helm Charts

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Low
    • None
    • Affects Version/s: 7.13.7, 7.19.9
    • Component/s: Documentation - All
    • None
    • 3
    • Severity 3 - Minor

      Issue Summary

      Helm Charts by default set the Synchrony pod's inital CPU request to 2.

      # Confluence Synchrony configuration
      # https://confluence.atlassian.com/doc/configuring-synchrony-858772125.html
      synchrony: 
      
      [...]
      
      # Synchrony Pod resource requests
        #
        resources: 
      
        [...]
      
          # Specifies the standard K8s resource requests and/or limits for the Synchrony
          # container. It is important that if the memory resources are specified here,
          # they must allow for the size of the Synchrony JVM. That means the maximum heap
          # size, the reserved code cache size, plus other JVM overheads, must be
          # accommodated. Allowing for (maxHeap+codeCache)*1.5 would be an example.
          #
          container: 
            requests: 
              # -- Initial CPU request by Synchrony pod
              #
              cpu: "2"
      
          [...]
      

      If you set this to 500 milliCPU like below:

      container: 
            requests: 
              # -- Initial CPU request by Synchrony pod
              #
              cpu: "500m"
      

      The pod get immediately killed. This is because the Helm Chart creates an entrypoint with the JVM parameter "-XX:ActiveProcessorCount" where the value is the CPU requests given to the pod. The notation with "m" from the Kubernetes environment does not work for Java parameter.

      This is reproducible on Data Center: yes

      Steps to Reproduce

      1. Edit the values.yaml to set the Synchrony pod's initial CPU request to 500milliCPU
        container: 
              requests: 
                # -- Initial CPU request by Synchrony pod
                #
                cpu: "500m"
        
      2. Deploy our Helm Charts for Confluence and Synchrony in OpenShift

      Expected Results

      Synchrony (pod) starts and is available.

      Actual Results

      Synchrony pod get immediately killed and get the below error:

      /scripts/start-synchrony.sh: line 11: 7 Killed java -Xms1g -Xmx2g -XX:G1ConcRefinementThreads=1 -Xss2048k -XX:ActiveProcessorCount=500m -classpath /opt/atlassian/confluence/confluence/WEB-INF/packages/synchrony-standalone.jar:/opt/atlassian/confluence/confluence/WEB-INF/lib/* synchrony.core sql
      

      Workaround

      Please set the CPU value to a integer without using any Kubernetes convention.

              Assignee:
              Unassigned
              Reporter:
              Basar Beykoz (Inactive)
              Votes:
              3 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: