Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-75620

Zombie Processes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • active-choices-plugin
    • None
    • Jenkins versions: 2.492.3 + 2.504.1
      Plugin version: 2.8.7

      Following the upgrade of the Active Choices Plugin from version 2.8.3 to 2.8.7, our Jenkins environment encounters a significant problem when executing a specific command sequence within a Groovy script. The command:

      kubectl --token=${eksCreds['token']} --server ${eksCreds['server']} --insecure-skip-tls-verify get hpa -n kube-system -o=custom-columns=NAME:.metadata.name --no-headers

      is consistently generating zombie processes on the Jenkins master instance. This occurrence substantially impacts the function and stability of Jenkins by contributing to job freezes lasting approximately 30 seconds, likely due to the accumulation of hundreds of lingering processes.

      [$class: 'CascadeChoiceParameter', choiceType: 'PT_SINGLE_SELECT', name: 'HPA_NAME', referencedParameters: 'REGION, ENVIRONMENT',
                script: [
                  $class: 'GroovyScript',
                  script: [
                      classpath: [],
                      sandbox: false,
                      script:
                             '''import groovy.json.JsonSlurper
                                def jsonSlurper = new JsonSlurper()
                                def result = []
                                def eks_secret = "some-secret"
                                def eksCreds = "aws secretsmanager --region ${REGION} get-secret-value --secret-id ${eks_secret}".execute() | "jq -r .SecretString".execute()
                                eksCreds.waitFor()
                                eksCreds= jsonSlurper.parseText(eksCreds.in.text)
      
                                def hpas="kubectl --token=${eksCreds['token']} --server ${eksCreds['server']} --insecure-skip-tls-verify get hpa -n kube-system -o=custom-columns=NAME:.metadata.name --no-headers".execute()
                                hpas.waitFor()
      
                                hpas =  hpas.in.text.split('\\n')
                                hpas.each { hpa ->
                                    if (!hpa.contains('proxy-')) {
                                      result.add(hpa)
                                    }
                                }
                                return result'''
                  ]
                ]
      ], 
        • I can confirm downgrading the Active Choices Plugin to version 2.8.3 effectively resolves this issue, restoring normal function and stability to Jenkins operations.

            kinow Bruno P. Kinoshita
            shahar3331 Shahar
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: