Jenkins - java.lang.IllegalArgumentException: Last unit does not have enough valid bits & Gradle error: Task 'null' not found in root project
Jenkins - java.lang.IllegalArgumentException: Last unit does not have enough valid bits & Gradle error: Task 'null' not found in root project
詹金斯 2.176.4-3 滚动
Gradle 4.3.1
问题领域:并行 运行 of a given single Gradle任务(或者它可以是任何简单的动作)和尤其是当运行宁并发运行s时基于 Jenkinsfile 的管道
我突然在 Jenkins 日志页面中收到此错误,之前从未见过此错误(在 Jenkins 中未发现针对此错误的 Whosebug 帖子)。
错误: java.lang.IllegalArgumentException:最后一个单元没有足够的有效位
由于某种原因,之前的构建失败并自动将我带到 Jenkins 日志页面,显示 Jenkins 愤怒的火脸:
Re-运行 只是 Jenkinsfile 管道的一个 运行(运行 是一个 Gradle 任务(比方说:rpm
任务)同时出现在多个项目中)并且它成功运行了!!; checked parameters/values 在成功和失败之间传递 运行s - 它们是相似的。
示例 Jenkinsfile 可在此处找到:Jenkinsfile Pipeline DSL: How to Show Multi-Columns in Jobs dashboard GUI - For all Dynamically created stages - When within PIPELINE section 我正在 运行 执行 gradle 任务(假设 gradle rpm
) 通过创建动态阶段并行(每个 gradle rpm
任务 运行ning 在个人 stage step
中)(这样我就不会在 Jenkinsfile 中对它们进行硬编码每个项目)。
注意:在 Jenkinsfile 中,即使 gradle 任务 rpm
(我 运行 在个人 stage
(在 stages
下)部分定义了一个有效的 gradle 任务,即 rpm
、 看起来像 Gradle 任务 运行在 parallel
(Jenkinsfile 中的部分)中的多个项目上每次都不是 100% 成功,至少 Gradle 4.3.1
因为我也看到了另一个错误:
05:31:41 FAILURE: Build failed with an exception.
05:31:42
05:31:42 * What went wrong:
05:31:42 Task 'null' not found in root project 'T000123_ABCD_Project'.
05:31:42
本期发帖人说的类似:gradle issue after distribution 4.10.2
这是 Jenkins 堆栈跟踪中显示的完整错误日志:
Oops!
A problem occurred while processing the request.
Please check our bug tracker to see if a similar problem has already been reported.
If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem.
If you think this is a new issue, please file a new issue.
When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins.
The users list might be also useful in understanding what has happened.
Stack trace
java.lang.IllegalArgumentException: Last unit does not have enough valid bits
at java.util.Base64$Decoder.decode0(Base64.java:734)
at java.util.Base64$Decoder.decode(Base64.java:526)
at hudson.util.UnbufferedBase64InputStream.read(UnbufferedBase64InputStream.java:41)
at hudson.util.UnbufferedBase64InputStream.read(UnbufferedBase64InputStream.java:53)
at java.io.DataInputStream.readFully(DataInputStream.java:195)
at java.io.DataInputStream.readFully(DataInputStream.java:169)
at hudson.console.ConsoleNote.readFrom(ConsoleNote.java:258)
at hudson.console.ConsoleAnnotationOutputStream.eol(ConsoleAnnotationOutputStream.java:111)
at hudson.console.LineTransformationOutputStream.eol(LineTransformationOutputStream.java:60)
at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:56)
at java.io.FilterOutputStream.write(FilterOutputStream.java:77)
at org.jenkinsci.plugins.workflow.log.FileLogStorage.write(FileLogStorage.java:238)
at java.io.FilterOutputStream.write(FilterOutputStream.java:125)
at org.apache.commons.io.output.ProxyOutputStream.write(ProxyOutputStream.java:89)
at org.kohsuke.stapler.framework.io.LargeText$HeadMark.moveTo(LargeText.java:314)
at org.kohsuke.stapler.framework.io.LargeText.writeLogTo(LargeText.java:229)
at hudson.console.AnnotatedLargeText.writeRawLogTo(AnnotatedLargeText.java:168)
at org.jenkinsci.plugins.workflow.log.FileLogStorage.writeHtmlTo(FileLogStorage.java:203)
at hudson.console.AnnotatedLargeText.writeLogTo(AnnotatedLargeText.java:147)
at org.kohsuke.stapler.framework.io.LargeText.doProgressText(LargeText.java:264)
at hudson.console.AnnotatedLargeText.doProgressiveHtml(AnnotatedLargeText.java:95)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
at org.kohsuke.stapler.MetaClass.doDispatch(MetaClass.java:535)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
Caused: javax.servlet.ServletException
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:797)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass.doDispatch(MetaClass.java:219)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass.dispatch(MetaClass.java:456)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass.doDispatch(MetaClass.java:280)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass.doDispatch(MetaClass.java:280)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:154)
at com.cloudbees.jenkins.support.impl.cloudbees.UnrestrictedApiCallsMonitor$ApiMonitorFilter.doFilter(UnrestrictedApiCallsMonitor.java:120)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:243)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1701)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1668)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:502)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at org.eclipse.jetty.util.thread.QueuedThreadPool.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Thread.java:745)
是什么原因 我在 Jenkins 中收到此错误消息?
错误: java.lang.IllegalArgumentException:最后一个单元没有足够的有效位
和
为什么我的管道 运行 间歇性失败,并在 Gradle 中显示以下错误消息(当 parallel
部分用于 运行 某物(即 Jenkinsfile
中的 Gradle someTask
)?
在根项目中找不到任务 'null'
当 运行ning many concurrent 运行 s of this pipeline (which 运行是 parallel
中许多项目的 Gradle 任务),假设我启动了 4 个管道 运行,每个都在构建 3-5 个项目的 Gradle rpm
任务),然后我看到了以下与 FILE 锁定相关的问题。
即Gradle 无法删除 folder/file(如下所列)
**Execution failed for task ':clean'.
> Unable to delete directory: /some/path/build/someFolder/aFolder_or_File **
或
由于等待锁定文件哈希缓存超时,无法捕获任务输出文件的快照
Failed to capture snapshot of output files for task ':rpm' property 'archivePath' during up-to-date check.
> Timeout waiting to lock file hash cache (/view/user123456_Team_Tools/vobs/space/test/folder1/Project1of5/.gradle/4.3.1/fileHashes). It is currently in use by another Gradle instance.
Owner PID: 29003
Our PID: 903
Owner Operation:
Our operation:
Lock file: /view/user123456_Team_Tools/vobs/space/test/folder1/Project1of5/.gradle/4.3.1/fileHashes/fileHashes.lock
或
获取:无法使用 BuildScopeServices.createScriptPluginFactory()
创建 ScriptPluginFactory 类型的服务
17:40:11 FAILURE: Build failed with an exception.
17:40:11
17:40:11 * What went wrong:
17:40:11 Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
17:40:11 > Could not create service of type FileHasher using BuildSessionScopeServices.createFileSnapshotter().
或
无法读取路径
'/some/jenkins/workspace/path/of/a/job/folder/sub-folder/file.class_or_any_extension'
或
java.io.FileNotFoundException 即
无法找到文件(如果我 运行 只有此管道的一个 运行,则 Gradle 构建成功)。
17:38:28 * What went wrong:
17:38:28 Execution failed for task ':rpm'.
17:38:28 > java.io.FileNotFoundException: '/some/jenkins/workspace/path/of/a/job/folder/sub-folder/artifact-1.0.0.121.rpm'
在单个管道 运行 案例中,如果您有更多项目(比方说 20 多个项目)并且您正在 运行ning Gradle someTask 并行(无论是在单个阶段还是每个项目的单独阶段),那么你可以设置 GRADLE_USER_HOME=$WORKSPACE/${whichProject}
文件夹(其中 ${whichProject}
是一个项目文件夹,您可以在 Jenkins WORKSPACE
中使用它(在 git clone
或 similar checkout 操作之后)。这可能会解决任何 parallel
任务 运行 与任何锁定相关的问题,但以牺牲 Gradle 的性能为代价(即在许多项目中不使用 Gradle CACHE并行任务 运行).
在动态创建的唯一 Jenkins 工作区内设置一个唯一的 GRADLE_USER_HOME 值(每个项目)(示例:/jenkins/workspaces/jobname/<buildnumber>/
其中 BUILD_NUMBER 使 Jenkins 工作区文件夹唯一)将解决任何 lock 相关问题
- 即这样做,Project1 将使用
GRADLE_USER_HOME=/jenkins/workspaces/jobname/<buildnumber>/Project1
(现在 .gradle
和 caches
文件夹将位于此目录下文件夹并由 Gradle 使用,不会与其他项目的 Gradle CACHE 文件夹冲突:.gradle
和 caches
也 运行 并行)。
我注意到 CLI 选项 --gradle-user-home
(又名 $GRADLE_USER_HOME),而 运行ning Gradle 任务设置为仅 Jenkins 的 WORKSPACE 示例值 因此,所有 3-5 个项目的 Gradle 任务(在我的例子中 rpm
任务)运行 是 运行ning 在 parallel
中(使用相同服务帐户的 Gradle caches
文件夹)通常位于 GRADLE_USER_HOME 位置下(所以在我的例子中是单个 Gradle' s caches
文件夹被所有这 3-5 个并行任务项目共享 运行)。
我仍在尝试找到 When 运行ning 并发管道 运行s 的解决方案(再次 运行s parallel
Gradle rpm
单个管道中每个项目的任务 运行) 每个都使用自己的 different Jenkins WORKSPACE 文件夹,为什么我仍然遇到这些问题;如果我找到解决方案,我会更新。
詹金斯 2.176.4-3 滚动
Gradle 4.3.1
问题领域:并行 运行 of a given single Gradle任务(或者它可以是任何简单的动作)和尤其是当运行宁并发运行s时基于 Jenkinsfile 的管道
我突然在 Jenkins 日志页面中收到此错误,之前从未见过此错误(在 Jenkins 中未发现针对此错误的 Whosebug 帖子)。
错误: java.lang.IllegalArgumentException:最后一个单元没有足够的有效位
由于某种原因,之前的构建失败并自动将我带到 Jenkins 日志页面,显示 Jenkins 愤怒的火脸:
Re-运行 只是 Jenkinsfile 管道的一个 运行(运行 是一个 Gradle 任务(比方说:
rpm
任务)同时出现在多个项目中)并且它成功运行了!!; checked parameters/values 在成功和失败之间传递 运行s - 它们是相似的。
示例 Jenkinsfile 可在此处找到:Jenkinsfile Pipeline DSL: How to Show Multi-Columns in Jobs dashboard GUI - For all Dynamically created stages - When within PIPELINE section 我正在 运行 执行 gradle 任务(假设 gradle rpm
) 通过创建动态阶段并行(每个 gradle rpm
任务 运行ning 在个人 stage step
中)(这样我就不会在 Jenkinsfile 中对它们进行硬编码每个项目)。
注意:在 Jenkinsfile 中,即使 gradle 任务 rpm
(我 运行 在个人 stage
(在 stages
下)部分定义了一个有效的 gradle 任务,即 rpm
、 看起来像 Gradle 任务 运行在 parallel
(Jenkinsfile 中的部分)中的多个项目上每次都不是 100% 成功,至少 Gradle 4.3.1
因为我也看到了另一个错误:
05:31:41 FAILURE: Build failed with an exception.
05:31:42
05:31:42 * What went wrong:
05:31:42 Task 'null' not found in root project 'T000123_ABCD_Project'.
05:31:42
本期发帖人说的类似:gradle issue after distribution 4.10.2
这是 Jenkins 堆栈跟踪中显示的完整错误日志:
Oops!
A problem occurred while processing the request.
Please check our bug tracker to see if a similar problem has already been reported.
If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem.
If you think this is a new issue, please file a new issue.
When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins.
The users list might be also useful in understanding what has happened.
Stack trace
java.lang.IllegalArgumentException: Last unit does not have enough valid bits
at java.util.Base64$Decoder.decode0(Base64.java:734)
at java.util.Base64$Decoder.decode(Base64.java:526)
at hudson.util.UnbufferedBase64InputStream.read(UnbufferedBase64InputStream.java:41)
at hudson.util.UnbufferedBase64InputStream.read(UnbufferedBase64InputStream.java:53)
at java.io.DataInputStream.readFully(DataInputStream.java:195)
at java.io.DataInputStream.readFully(DataInputStream.java:169)
at hudson.console.ConsoleNote.readFrom(ConsoleNote.java:258)
at hudson.console.ConsoleAnnotationOutputStream.eol(ConsoleAnnotationOutputStream.java:111)
at hudson.console.LineTransformationOutputStream.eol(LineTransformationOutputStream.java:60)
at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:56)
at java.io.FilterOutputStream.write(FilterOutputStream.java:77)
at org.jenkinsci.plugins.workflow.log.FileLogStorage.write(FileLogStorage.java:238)
at java.io.FilterOutputStream.write(FilterOutputStream.java:125)
at org.apache.commons.io.output.ProxyOutputStream.write(ProxyOutputStream.java:89)
at org.kohsuke.stapler.framework.io.LargeText$HeadMark.moveTo(LargeText.java:314)
at org.kohsuke.stapler.framework.io.LargeText.writeLogTo(LargeText.java:229)
at hudson.console.AnnotatedLargeText.writeRawLogTo(AnnotatedLargeText.java:168)
at org.jenkinsci.plugins.workflow.log.FileLogStorage.writeHtmlTo(FileLogStorage.java:203)
at hudson.console.AnnotatedLargeText.writeLogTo(AnnotatedLargeText.java:147)
at org.kohsuke.stapler.framework.io.LargeText.doProgressText(LargeText.java:264)
at hudson.console.AnnotatedLargeText.doProgressiveHtml(AnnotatedLargeText.java:95)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
at org.kohsuke.stapler.MetaClass.doDispatch(MetaClass.java:535)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
Caused: javax.servlet.ServletException
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:797)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass.doDispatch(MetaClass.java:219)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass.dispatch(MetaClass.java:456)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass.doDispatch(MetaClass.java:280)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass.doDispatch(MetaClass.java:280)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:154)
at com.cloudbees.jenkins.support.impl.cloudbees.UnrestrictedApiCallsMonitor$ApiMonitorFilter.doFilter(UnrestrictedApiCallsMonitor.java:120)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:243)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1701)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1668)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:502)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at org.eclipse.jetty.util.thread.QueuedThreadPool.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Thread.java:745)
是什么原因 我在 Jenkins 中收到此错误消息?
错误: java.lang.IllegalArgumentException:最后一个单元没有足够的有效位
和
为什么我的管道 运行 间歇性失败,并在 Gradle 中显示以下错误消息(当 parallel
部分用于 运行 某物(即 Jenkinsfile
中的 Gradle someTask
)?
在根项目中找不到任务 'null'
当 运行ning many concurrent 运行 s of this pipeline (which 运行是 parallel
中许多项目的 Gradle 任务),假设我启动了 4 个管道 运行,每个都在构建 3-5 个项目的 Gradle rpm
任务),然后我看到了以下与 FILE 锁定相关的问题。
即Gradle 无法删除 folder/file(如下所列)
**Execution failed for task ':clean'.
> Unable to delete directory: /some/path/build/someFolder/aFolder_or_File **
或
由于等待锁定文件哈希缓存超时,无法捕获任务输出文件的快照
Failed to capture snapshot of output files for task ':rpm' property 'archivePath' during up-to-date check.
> Timeout waiting to lock file hash cache (/view/user123456_Team_Tools/vobs/space/test/folder1/Project1of5/.gradle/4.3.1/fileHashes). It is currently in use by another Gradle instance.
Owner PID: 29003
Our PID: 903
Owner Operation:
Our operation:
Lock file: /view/user123456_Team_Tools/vobs/space/test/folder1/Project1of5/.gradle/4.3.1/fileHashes/fileHashes.lock
或
获取:无法使用 BuildScopeServices.createScriptPluginFactory()
创建 ScriptPluginFactory 类型的服务17:40:11 FAILURE: Build failed with an exception.
17:40:11
17:40:11 * What went wrong:
17:40:11 Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
17:40:11 > Could not create service of type FileHasher using BuildSessionScopeServices.createFileSnapshotter().
或
无法读取路径 '/some/jenkins/workspace/path/of/a/job/folder/sub-folder/file.class_or_any_extension'
或
java.io.FileNotFoundException 即 无法找到文件(如果我 运行 只有此管道的一个 运行,则 Gradle 构建成功)。
17:38:28 * What went wrong:
17:38:28 Execution failed for task ':rpm'.
17:38:28 > java.io.FileNotFoundException: '/some/jenkins/workspace/path/of/a/job/folder/sub-folder/artifact-1.0.0.121.rpm'
在单个管道 运行 案例中,如果您有更多项目(比方说 20 多个项目)并且您正在 运行ning Gradle someTask 并行(无论是在单个阶段还是每个项目的单独阶段),那么你可以设置 GRADLE_USER_HOME=$WORKSPACE/${whichProject}
文件夹(其中 ${whichProject}
是一个项目文件夹,您可以在 Jenkins WORKSPACE
中使用它(在 git clone
或 similar checkout 操作之后)。这可能会解决任何 parallel
任务 运行 与任何锁定相关的问题,但以牺牲 Gradle 的性能为代价(即在许多项目中不使用 Gradle CACHE并行任务 运行).
在动态创建的唯一 Jenkins 工作区内设置一个唯一的 GRADLE_USER_HOME 值(每个项目)(示例:/jenkins/workspaces/jobname/<buildnumber>/
其中 BUILD_NUMBER 使 Jenkins 工作区文件夹唯一)将解决任何 lock 相关问题
- 即这样做,Project1 将使用
GRADLE_USER_HOME=/jenkins/workspaces/jobname/<buildnumber>/Project1
(现在.gradle
和caches
文件夹将位于此目录下文件夹并由 Gradle 使用,不会与其他项目的 Gradle CACHE 文件夹冲突:.gradle
和caches
也 运行 并行)。
我注意到 CLI 选项 --gradle-user-home
(又名 $GRADLE_USER_HOME),而 运行ning Gradle 任务设置为仅 Jenkins 的 WORKSPACE 示例值 因此,所有 3-5 个项目的 Gradle 任务(在我的例子中 rpm
任务)运行 是 运行ning 在 parallel
中(使用相同服务帐户的 Gradle caches
文件夹)通常位于 GRADLE_USER_HOME 位置下(所以在我的例子中是单个 Gradle' s caches
文件夹被所有这 3-5 个并行任务项目共享 运行)。
我仍在尝试找到 When 运行ning 并发管道 运行s 的解决方案(再次 运行s parallel
Gradle rpm
单个管道中每个项目的任务 运行) 每个都使用自己的 different Jenkins WORKSPACE 文件夹,为什么我仍然遇到这些问题;如果我找到解决方案,我会更新。