首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Maven和npm的Jenkins进程在npm安装过程中出现EAGAIN错误失败

使用Maven和npm的Jenkins进程在npm安装过程中出现EAGAIN错误失败
EN

Stack Overflow用户
提问于 2022-07-22 11:21:39
回答 1查看 226关注 0票数 0

因此,我为一个应用程序安装了jenkins管道,该应用程序使用spring引导作为后端,使用vuejs作为前端。maven构建过程首先构建前端,然后将其复制到后端,然后构建后端。但是,在前端构建过程中,只有当我通过jenkins管道运行它时,流程才会失败。(对于其他人来说,同样的管道显然是在另一台机器上工作)

代码语言:javascript
运行
复制
[INFO] npm ERR! code EAGAIN
[INFO] npm ERR! syscall spawn sh
[INFO] npm ERR! path /var/lib/jenkins/workspace/pipeline/frontend/node_modules/pre-commit
[INFO] npm ERR! errno -11
[INFO] npm ERR! spawn sh EAGAIN
[INFO] npm ERR! command sh -c node install.js
[INFO] 
[INFO] npm ERR! A complete log of this run can be found in:
[INFO] npm ERR!     /var/lib/jenkins/.npm/_logs/2022-07-22T09_11_43_478Z-debug-0.log

日志的相关部分在这里:https://pastebin.com/ewp6zRcv

詹金斯输油管道是:

代码语言:javascript
运行
复制
pipeline {
    agent any

    parameters {
        gitParameter branchFilter: 'origin/(.*)', defaultValue: 'staging', name: 'BRANCH', type: 'PT_BRANCH'
    }

    tools {
        maven "Maven"
        nodejs "Node"
    }

    stages {
        stage('Build') {
            steps {
                // Get some code from a GitHub repository
                git branch: "${params.BRANCH}", url: 'https://github.com/TheExkaliburg/MoreFair'
             
                // Run Maven on a Unix agent.
                sh "mvn -Dmaven.test.failure.ignore=true clean package"
            }

            post {
                success {
                    archiveArtifacts 'target/*.jar'
                }
            }
        }
    }
}

jenkins安装在带有ubuntu20.04的linux服务器上,项目本身可以在https://github.com/TheExkaliburg/MoreFair上找到,要构建的分支正在暂存。

奇怪的是,EAGAIN故障通常是“资源暂时不可用”。失败了。以root或jenkins用户的身份运行进程,没有任何错误,我有足够的剩余磁盘空间,而且在构建过程中,ram和cpu甚至从未接近100%。

这也很奇怪,因为出现的错误并不总是一样的,f.e。

代码语言:javascript
运行
复制
[INFO] -  Building for production...
[INFO] node[80787]: pthread_create: Resource temporarily unavailable
[INFO] node:events:505
[INFO]       throw er; // Unhandled 'error' event
[INFO]       ^
[INFO] 
[INFO] Error: spawn /var/lib/jenkins/workspace/MoreFairStaging/frontend/node/node EAGAIN
[INFO]     at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
[INFO]     at onErrorNT (node:internal/child_process:478:16)
[INFO]     at processTicksAndRejections (node:internal/process/task_queues:83:21)
[INFO] Emitted 'error' event on ChildProcess instance at:
[INFO]     at Process.ChildProcess._handle.onexit (node:internal/child_process:289:12)
[INFO]     at onErrorNT (node:internal/child_process:478:16)
[INFO]     at processTicksAndRejections (node:internal/process/task_queues:83:21) {
[INFO]   errno: -11,
[INFO]   code: 'EAGAIN',
[INFO]   syscall: 'spawn /var/lib/jenkins/workspace/MoreFairStaging/frontend/node/node',
[INFO]   path: '/var/lib/jenkins/workspace/MoreFairStaging/frontend/node/node',
[INFO]   spawnargs: [
[INFO]     '/var/lib/jenkins/workspace/MoreFairStaging/frontend/node_modules/thread-loader/dist/worker.js',
[INFO]     20
[INFO]   ]
[INFO] }

代码语言:javascript
运行
复制
[7,371s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.

节点版本为16.16.0,npm为8.11;maven为3.8.6,maven为maven,java 11为jenkins (2.346.2)。

EN

Stack Overflow用户

发布于 2022-07-23 16:01:06

所以这个特殊情况的问题是服务配置不允许产生更多的任务

解决这个问题的一个简单方法是systemctl edit jenkins并添加到配置中(经过一周的重新学习并尝试了各种方法)。

代码语言:javascript
运行
复制
[Service]
TaskMax=500

这个数字可能会变化,但默认的165,你可以通过systemctl show --property=DefaultTasksMax发现是不够的

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73079543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档