[JIRA] (JENKINS-60537) Exception when using multiple labels on a pod template

31 views
Skip to first unread message

vincent@latombe.net (JIRA)

unread,
Dec 19, 2019, 4:25:03 AM12/19/19
to jenkinsc...@googlegroups.com
Vincent Latombe created an issue
 
Jenkins / Bug JENKINS-60537
Exception when using multiple labels on a pod template
Issue Type: Bug Bug
Assignee: Unassigned
Components: kubernetes-plugin
Created: 2019-12-19 09:24
Priority: Minor Minor
Reporter: Vincent Latombe

https://github.com/jenkinsci/kubernetes-plugin/pull/640#commitcomment-36483725

java.lang.IllegalArgumentException: duplicate key: jenkins/label
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:115)
	at com.google.common.collect.RegularImmutableMap.<init>(RegularImmutableMap.java:72)
	at com.google.common.collect.ImmutableMap$Builder.fromEntryList(ImmutableMap.java:245)
	at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:231)
	at org.csanchez.jenkins.plugins.kubernetes.PodTemplate.getLabelsMap(PodTemplate.java:387)
	at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud.addProvisionedSlave(KubernetesCloud.java:599)
	at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud.provision(KubernetesCloud.java:542)
	at hudson.slaves.NodeProvisioner$StandardStrategyImpl.apply(NodeProvisioner.java:729)
	at hudson.slaves.NodeProvisioner.update(NodeProvisioner.java:334)
	at hudson.slaves.NodeProvisioner.access$900(NodeProvisioner.java:64)
	at hudson.slaves.NodeProvisioner$NodeProvisionerInvoker.doRun(NodeProvisioner.java:823)
	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)
Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

vincent@latombe.net (JIRA)

unread,
Dec 19, 2019, 4:26:03 AM12/19/19
to jenkinsc...@googlegroups.com

vincent@latombe.net (JIRA)

unread,
Dec 19, 2019, 4:26:03 AM12/19/19
to jenkinsc...@googlegroups.com
Vincent Latombe updated an issue
Affects 1.22.1

When using a pod template that has multiple labels defined, you get the following exception.

https://github.com/jenkinsci/kubernetes-plugin/pull/640#commitcomment-36483725

{code}

java.lang.IllegalArgumentException: duplicate key: jenkins/label
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:115)
at com.google.common.collect.RegularImmutableMap.<init>(RegularImmutableMap.java:72)
at com.google.common.collect.ImmutableMap$Builder.fromEntryList(ImmutableMap.java:245)
at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:231)
at org.csanchez.jenkins.plugins.kubernetes.PodTemplate.getLabelsMap(PodTemplate.java:387)
at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud.addProvisionedSlave(KubernetesCloud.java:599)
at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud.provision(KubernetesCloud.java:542)
at hudson.slaves.NodeProvisioner$StandardStrategyImpl.apply(NodeProvisioner.java:729)
at hudson.slaves.NodeProvisioner.update(NodeProvisioner.java:334)
at hudson.slaves.NodeProvisioner.access$900(NodeProvisioner.java:64)
at hudson.slaves.NodeProvisioner$NodeProvisionerInvoker.doRun(NodeProvisioner.java:823)
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}

vincent@latombe.net (JIRA)

unread,
Dec 19, 2019, 4:26:03 AM12/19/19
to jenkinsc...@googlegroups.com

vincent@latombe.net (JIRA)

unread,
Dec 19, 2019, 4:34:02 AM12/19/19
to jenkinsc...@googlegroups.com

vincent@latombe.net (JIRA)

unread,
Dec 19, 2019, 4:35:03 AM12/19/19
to jenkinsc...@googlegroups.com
Vincent Latombe started work on Bug JENKINS-60537
 
Change By: Vincent Latombe
Status: Open In Progress

vincent@latombe.net (JIRA)

unread,
Dec 19, 2019, 4:35:03 AM12/19/19
to jenkinsc...@googlegroups.com

sonykus@gmail.com (JIRA)

unread,
Jan 7, 2020, 12:16:02 PM1/7/20
to jenkinsc...@googlegroups.com
Alexander Bodor commented on Bug JENKINS-60537
 
Re: Exception when using multiple labels on a pod template

Also affected by this at work, had to pin the plugin down to 1.22.0 for the time being, until this gets solved. 

Additional information: In versions 1.22.2, 1.22.3 and 1.22.4 (latest at the time of this writing) of the kubernetes plugin, we're getting a different error which might have also been introduced by this change (a bit of speculation on my side, but so it seems), so those newer versions are also unusable right now: 

Jan 07, 2020 11:55:46 AM WARNING org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud provision
Failed to count the # of live instances on Kubernetes
io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://kubernetes.default.svc/api/v1/namespaces/edited-namespace/pods?labelSelector=jenkins%3Dslave%2Cjenkins%2Flabel%3Dkubernetes-tools-small%20agent. Message: found 'agent', expected: ',' or 'end of string'. Received status: Status(apiVersion=v1, code=400, details=null, kind=Status, message=found 'agent', expected: ',' or 'end of string', metadata=ListMeta(_continue=null, remainingItemCount=null, resourceVersion=null, selfLink=null, additionalProperties={}), reason=BadRequest, status=Failure, additionalProperties={}).
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.requestFailure(OperationSupport.java:510)
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.assertResponseCode(OperationSupport.java:449)
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:413)
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:372)
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:354)
	at io.fabric8.kubernetes.client.dsl.base.BaseOperation.listRequestHelper(BaseOperation.java:153)
	at io.fabric8.kubernetes.client.dsl.base.BaseOperation.list(BaseOperation.java:620)
	at io.fabric8.kubernetes.client.dsl.base.BaseOperation.list(BaseOperation.java:69)
	at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud.getActiveSlavePods(KubernetesCloud.java:608)
	at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud.addProvisionedSlave(KubernetesCloud.java:593)
	at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud.provision(KubernetesCloud.java:535)
	at io.jenkins.plugins.kubernetes.NoDelayProvisionerStrategy.apply(NoDelayProvisionerStrategy.java:64)
	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) 

 

Add Comment Add Comment
 

sonykus@gmail.com (JIRA)

unread,
Jan 7, 2020, 12:19:04 PM1/7/20
to jenkinsc...@googlegroups.com
Alexander Bodor edited a comment on Bug JENKINS-60537
Also affected by this at work, had to pin the plugin down to 1.22.0 for the time being, until this gets solved. 

Additional information: In versions 1.22.2, 1.22.3 and 1.22.4 (latest at the time of this writing) of the kubernetes plugin, we're getting a different error which might have also been introduced by this change (a bit of speculation on my side, but so it seems), so those newer versions are also unusable right now: 
{code:java}
at java.lang.Thread.run(Thread.java:748) {code}
 

K8s endpoint in AWS EKS 1.13
(if it matters)
{code:java}
Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.12-eks-eb1860", GitCommit:"eb1860579253bb5bf83a5a03eb0330307ae26d18", GitTreeState:"clean", BuildDate:"2019-12-23T08:58:45Z", GoVersion:"go1.11.13", Compiler:"gc", Platform:"linux/amd64"} {code}
 

sonykus@gmail.com (JIRA)

unread,
Jan 7, 2020, 12:19:04 PM1/7/20
to jenkinsc...@googlegroups.com


K8s endpoint in AWS EKS 1.13: 

{code:java}
Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.12-eks-eb1860", GitCommit:"eb1860579253bb5bf83a5a03eb0330307ae26d18", GitTreeState:"clean", BuildDate:"2019-12-23T08:58:45Z", GoVersion:"go1.11.13", Compiler:"gc", Platform:"linux/amd64"} {code}
 

sonykus@gmail.com (JIRA)

unread,
Jan 7, 2020, 12:39:03 PM1/7/20
to jenkinsc...@googlegroups.com
K8s endpoint in AWS EKS 1.13 (if it matters): 

{code:java}
Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.12-eks-eb1860", GitCommit:"eb1860579253bb5bf83a5a03eb0330307ae26d18", GitTreeState:"clean", BuildDate:"2019-12-23T08:58:45Z", GoVersion:"go1.11.13", Compiler:"gc", Platform:"linux/amd64"} {code}
 


Agent pod labels:
{code:java}
Labels:             jenkins=slave
                    jenkins/agent=true
                    jenkins/kubernetes-tools-small=true {code}
 

vincent@latombe.net (JIRA)

unread,
Jan 23, 2020, 3:47:04 AM1/23/20
to jenkinsc...@googlegroups.com
Change By: Vincent Latombe
Status: In Review Resolved
Resolution: Fixed
Released As: 1.22.6, 1.23.1
Reply all
Reply to author
Forward
0 new messages