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

Configuration accepts invalid values -- ArrayIndexOutOfBoundsException during runtime

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • ec2-plugin
    • None
    • Jenkins ver. 2.204.2
      ec2 plugin 1.49.1

      You can enter double comma into the block devices field (E.g. /dev/xvdb=:20,,/dev/sdf=snap-1234 . It will be accepted, later the plugin will fail with:

      Mar 26, 2020 3:55:57 PM SEVERE hudson.triggers.SafeTimerTask run
      
      Timer task hudson.slaves.NodeProvisioner$NodeProvisionerInvoker@1bbf83bc failed
      java.lang.ArrayIndexOutOfBoundsException: 1
      	at hudson.plugins.ec2.util.DeviceMappingParser.parse(DeviceMappingParser.java:45)
      	at hudson.plugins.ec2.SlaveTemplate.setupCustomDeviceMapping(SlaveTemplate.java:904)
      	at hudson.plugins.ec2.SlaveTemplate.setupBlockDeviceMappings(SlaveTemplate.java:1070)
      	at hudson.plugins.ec2.SlaveTemplate.provisionOndemand(SlaveTemplate.java:607)
      	at hudson.plugins.ec2.SlaveTemplate.provisionOndemand(SlaveTemplate.java:585)
      	at hudson.plugins.ec2.SlaveTemplate.provision(SlaveTemplate.java:540)
      	at hudson.plugins.ec2.EC2Cloud.getNewOrExistingAvailableSlave(EC2Cloud.java:589)
      	at hudson.plugins.ec2.EC2Cloud.provision(EC2Cloud.java:615)
      	at com.cloudbees.jenkins.plugins.amazonecs.ECSProvisioningStrategy.apply(ECSProvisioningStrategy.java:58)
      	at hudson.slaves.NodeProvisioner.update(NodeProvisioner.java:332)
      	at hudson.slaves.NodeProvisioner.access$900(NodeProvisioner.java:63)
      	at hudson.slaves.NodeProvisioner$NodeProvisionerInvoker.doRun(NodeProvisioner.java:819)
      	at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:70)
      	at jenkins.security.ImpersonatingScheduledExecutorService$1.run(ImpersonatingScheduledExecutorService.java:58)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      
      

          [JENKINS-61698] Configuration accepts invalid values -- ArrayIndexOutOfBoundsException during runtime

          Jakub Bochenski created issue -
          Jakub Bochenski made changes -
          Description Original: When trying to provision a new agent the plugin would start and then terminate an EC2 instance several times before succeeding in the end.
          I have no explanation for this behavior. Might be related to JENKINS-61343
          Might be because the plugin somehow allocates "2 computer(s)" even though the instance cap is 1.

          {code}Mar 06, 2020 3:05:22 PM INFO hudson.plugins.ec2.EC2Cloud log

          bootstrap()

          Mar 06, 2020 3:05:22 PM INFO hudson.plugins.ec2.EC2Cloud log

          Getting keypair...

          Mar 06, 2020 3:05:22 PM INFO hudson.plugins.ec2.EC2Cloud log

          Using private key j4a-ec2-ssh-key (SHA-1 fingerprint a7:b4:70:08:35:11:e3:cf:4b:f5:92:57:b8:02:7f:c6:8e:54:52:02)

          Mar 06, 2020 3:05:22 PM INFO hudson.plugins.ec2.EC2Cloud log

          Authenticating as admin

          Mar 06, 2020 3:05:22 PM INFO hudson.slaves.NodeProvisioner lambda$update$6

          EC2 (ec2) - ec2 (ami-028d96c69234f9d1a) provisioning successfully completed. We have now 2 computer(s)

          Mar 06, 2020 3:05:22 PM INFO hudson.plugins.ec2.EC2Cloud log

          Connecting to 10.20.4.41 on port 22, with timeout 10000.

          Mar 06, 2020 3:05:29 PM INFO hudson.plugins.ec2.EC2Cloud log

          Connected via SSH.

          Mar 06, 2020 3:05:29 PM INFO hudson.plugins.ec2.EC2Cloud log

          connect fresh as root

          Mar 06, 2020 3:05:29 PM INFO hudson.plugins.ec2.EC2Cloud log

          Connecting to 10.20.4.41 on port 22, with timeout 10000.

          Mar 06, 2020 3:05:30 PM INFO hudson.plugins.ec2.EC2Cloud log

          Connected via SSH.

          Mar 06, 2020 3:05:30 PM INFO hudson.plugins.ec2.EC2Cloud log

          Creating tmp directory (/tmp) if it does not exist

          Mar 06, 2020 3:05:30 PM INFO hudson.plugins.ec2.EC2Cloud log

          Verifying: java -fullversion

          Mar 06, 2020 3:05:30 PM INFO hudson.plugins.ec2.EC2Cloud log

          Verifying: which scp

          Mar 06, 2020 3:05:30 PM INFO hudson.plugins.ec2.EC2Cloud log

          Copying remoting.jar to: /tmp

          Mar 06, 2020 3:05:30 PM INFO hudson.plugins.ec2.EC2Cloud log

          Launching remoting agent (via Trilead SSH2 Connection): java -jar /tmp/remoting.jar -workDir /opt/jenkins

          Mar 06, 2020 3:05:31 PM INFO hudson.plugins.ec2.EC2OndemandSlave terminate

          Terminated EC2 instance (terminated): i-021d76d0ffff3375f

          Mar 06, 2020 3:05:31 PM INFO hudson.plugins.ec2.EC2OndemandSlave terminate

          Removed EC2 instance from jenkins master: i-021d76d0ffff3375f

          Mar 06, 2020 3:05:32 PM INFO hudson.plugins.ec2.EC2Cloud provision

          SlaveTemplate{ami='ami-028d96c69234f9d1a', labels='docker docker-bakery'}. Attempting to provision slave needed by excess workload of 1 units

          Mar 06, 2020 3:05:32 PM INFO hudson.plugins.ec2.SlaveTemplate logProvisionInfo

          SlaveTemplate{ami='ami-028d96c69234f9d1a', labels='docker docker-bakery'}. Considering launching
          {code}
          New: You can enter double comma into the block devices field (E.g. {{/dev/xvdb=:20,,/dev/sdf=snap-1234}} . It will be accepted, later the plugin will fail with:

          {code}Mar 26, 2020 3:55:57 PM SEVERE hudson.triggers.SafeTimerTask run

          Timer task hudson.slaves.NodeProvisioner$NodeProvisionerInvoker@1bbf83bc failed
          java.lang.ArrayIndexOutOfBoundsException: 1
          at hudson.plugins.ec2.util.DeviceMappingParser.parse(DeviceMappingParser.java:45)
          at hudson.plugins.ec2.SlaveTemplate.setupCustomDeviceMapping(SlaveTemplate.java:904)
          at hudson.plugins.ec2.SlaveTemplate.setupBlockDeviceMappings(SlaveTemplate.java:1070)
          at hudson.plugins.ec2.SlaveTemplate.provisionOndemand(SlaveTemplate.java:607)
          at hudson.plugins.ec2.SlaveTemplate.provisionOndemand(SlaveTemplate.java:585)
          at hudson.plugins.ec2.SlaveTemplate.provision(SlaveTemplate.java:540)
          at hudson.plugins.ec2.EC2Cloud.getNewOrExistingAvailableSlave(EC2Cloud.java:589)
          at hudson.plugins.ec2.EC2Cloud.provision(EC2Cloud.java:615)
          at com.cloudbees.jenkins.plugins.amazonecs.ECSProvisioningStrategy.apply(ECSProvisioningStrategy.java:58)
          at hudson.slaves.NodeProvisioner.update(NodeProvisioner.java:332)
          at hudson.slaves.NodeProvisioner.access$900(NodeProvisioner.java:63)
          at hudson.slaves.NodeProvisioner$NodeProvisionerInvoker.doRun(NodeProvisioner.java:819)
          at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:70)
          at jenkins.security.ImpersonatingScheduledExecutorService$1.run(ImpersonatingScheduledExecutorService.java:58)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
          at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
          at java.lang.Thread.run(Thread.java:748)

          {code}

            thoulen FABRIZIO MANFREDI
            jbochenski Jakub Bochenski
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: