首页 > 解决方案 > 詹金斯管道 - java.io.EOFException

问题描述

我有非常简单的 Jenkins 管道代码:

            stage('Install') {
                steps {
                    script {
                        dir("${PROJECT}") {
                            try {
                                script {
                                    sh('npm install')
                                    }
                            } catch (Exception e) {
                                throw e
                            }
                        }
                    }
                }
            }

每次我运行它时,我都会在 Jenkins 控制台输出中看到以下错误:

12:48:07  + npm install
12:49:00  java.io.EOFException
12:49:00    at okio.RealBufferedSource.require(RealBufferedSource.java:61)
12:49:00    at okio.RealBufferedSource.readByte(RealBufferedSource.java:74)
12:49:00    at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.java:117)
12:49:00    at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:101)
12:49:00    at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274)
12:49:00    at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214)
12:49:00    at okhttp3.RealCall$AsyncCall.execute(RealCall.java:203)
12:49:00    at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
12:49:00    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
12:49:00    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
12:49:00    at java.lang.Thread.run(Thread.java:748)

我在跑步

Jenkins 2.235.5

你有什么想法我的代码有什么问题吗?npm install 和这个异常之间大约有 60 秒,可能是超时吗?

标签: jenkinsjenkins-pipelinejenkins-plugins

解决方案


我也遇到过这个问题。就我而言,大多数时候我观察到它的发生是由于

  1. 缺乏用于构建的内存/cpu 内核。我花了一些时间对其进行测试,并通过增加 Java 堆大小在我们的网站上解决了这个问题
  2. 缺乏核心。增加核心数量肯定有帮助!
  3. 并进行一些调整,例如检查打开的文件描述符等

推荐阅读