Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connection to spots is interrupted and build is not submitted #455

Open
Frank-Howard opened this issue Feb 11, 2025 · 0 comments
Open

Connection to spots is interrupted and build is not submitted #455

Frank-Howard opened this issue Feb 11, 2025 · 0 comments
Labels

Comments

@Frank-Howard
Copy link

Frank-Howard commented Feb 11, 2025

Issue Details

Describe the bug
Frequently Jenkins spots connection to the Jenkins master node (a regular EC2 instance) is interrupted. Additionally the job is not rescheduled to another node. The error is as follows:

EC2 instance for node spot-instances i-0db42dceedff2851f was terminated
Cannot contact i-0db42dceedff2851f: hudson.remoting.ChannelClosedException: Channel "hudson.remoting.Channel@3b12d69b:i-0db42dceedff2851f": Remote call on i-0db42dceedff2851f failed. The channel is closing down or has closed down
Could not connect to i-0db42dceedff2851f to send interrupt signal to process
ERROR: Issue with creating launcher for agent i-0db42dceedff2851f. The agent has not been fully initialized yet

org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: f3896c8a-568d-45ab-8a59-7830741add73
java.io.IOException: Can not call launch on a dummy launcher.
	at hudson.Launcher$DummyLauncher.launch(Launcher.java:1072)
	at hudson.Launcher$ProcStarter.start(Launcher.java:507)
	at PluginClassLoader for docker-workflow//org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:314)
	at PluginClassLoader for docker-workflow//org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:295)
	at PluginClassLoader for docker-workflow//org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:292)
	at PluginClassLoader for docker-workflow//org.jenkinsci.plugins.docker.workflow.client.DockerClient.stop(DockerClient.java:185)
	at PluginClassLoader for docker-workflow//org.jenkinsci.plugins.docker.workflow.WithContainerStep.destroy(WithContainerStep.java:111)
	at PluginClassLoader for docker-workflow//org.jenkinsci.plugins.docker.workflow.WithContainerStep$Callback.finished(WithContainerStep.java:431)
	at PluginClassLoader for workflow-step-api//org.jenkinsci.plugins.workflow.steps.BodyExecutionCallback$TailCall.onFailure(BodyExecutionCallback.java:129)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsBodyExecution$FailureAdapter.receive(CpsBodyExecution.java:357)
	at PluginClassLoader for workflow-cps//com.cloudbees.groovy.cps.impl.ThrowBlock$1.receive(ThrowBlock.java:66)
	at PluginClassLoader for workflow-cps//com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
	at PluginClassLoader for workflow-cps//com.cloudbees.groovy.cps.Next.step(Next.java:83)
	at PluginClassLoader for workflow-cps//com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:147)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:17)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:49)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:180)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:422)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:330)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:294)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService.lambda$wrap$4(CpsVmExecutorService.java:140)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.call(CpsVmExecutorService.java:53)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.call(CpsVmExecutorService.java:50)
	at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136)
	at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:275)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService.lambda$categoryThreadFactory$0(CpsVmExecutorService.java:50)
	at java.base/java.lang.Thread.run(Thread.java:1583)

** Logs **
Tip: See this guide to configure a logger in Jenkins UI. Please attach fine logs if you think they are relevant.

None relevant

Environment Details

Plugin Version?
3.2.0

Jenkins Version?
2.492.1

Spot Fleet or ASG?
Spot Fleet

Label based fleet?
Yes

Linux or Windows?
Linux

EC2Fleet Configuration as Code

<clouds>
    <com.amazon.jenkins.ec2fleet.EC2FleetCloud plugin="ec2-fleet@3.2.0">
      <actions/>
      <name>spot-instances</name>
      <awsCredentialsId>REDACTED</awsCredentialsId>
      <region>REDACTED</region>
      <endpoint></endpoint>
      <fleet>REDACTED</fleet>
      <fsRoot>REDACTED</fsRoot>
      <computerConnector class="hudson.plugins.sshslaves.SSHConnector" plugin="ssh-slaves@3.1031.v72c6b_883b_869">
        <port>22</port>
        <credentialsId>REDACTED</credentialsId>
        <launchTimeoutSeconds>60</launchTimeoutSeconds>
        <maxNumRetries>10</maxNumRetries>
        <retryWaitTime>15</retryWaitTime>
        <sshHostKeyVerificationStrategy class="hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy"/>
        <tcpNoDelay>true</tcpNoDelay>
      </computerConnector>
      <privateIpUsed>true</privateIpUsed>
      <alwaysReconnect>true</alwaysReconnect>
      <labelString>spot-instances</labelString>
      <idleMinutes>2</idleMinutes>
      <minSize>0</minSize>
      <maxSize>25</maxSize>
      <minSpareSize>0</minSpareSize>
      <numExecutors>3</numExecutors>
      <addNodeOnlyIfRunning>true</addNodeOnlyIfRunning>
      <restrictUsage>true</restrictUsage>
      <scaleExecutorsByWeight>false</scaleExecutorsByWeight>
      <executorScaler class="com.amazon.jenkins.ec2fleet.EC2FleetCloud$NoScaler">
        <numExecutors>3</numExecutors>
      </executorScaler>
      <initOnlineTimeoutSec>180</initOnlineTimeoutSec>
      <cloudStatusIntervalSec>10</cloudStatusIntervalSec>
      <maxTotalUses>-1</maxTotalUses>
      <disableTaskResubmit>false</disableTaskResubmit>
      <noDelayProvision>true</noDelayProvision>
    </com.amazon.jenkins.ec2fleet.EC2FleetCloud>
  </clouds>

Anything else unique about your setup?
No

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant