Jenkins - java .lang.IllegalArgumentException: в последнем модуле недостаточно допустимых битов и ошибка Gradle: задача 'null' не найдена в проекте root - PullRequest
0 голосов
/ 18 января 2020

Дженкинс 2.176.4-3 прокатки

Gradle 4.3.1

Область проблем : Параллельный запуск заданной одиночной задачи Gradle (или это может быть любое простое действие) и , особенно при запуске одновременных запусков из Jenkinsfile конвейеров

Внезапно я получил эту ошибку на странице журнала Jenkins, никогда не видел эту ошибку до (не найдено сообщений от stackoverflow либо для этой ошибки в Jenkins).

Ошибка: java .lang.IllegalArgumentException: у последнего блока недостаточно допустимых битов

  1. По какой-то причине предыдущая сборка не удалась, и я автоматически переместился на страницу журналов Jenkins, на которой было изображено сердитое лицо Jenkins: enter image description here

  2. Re запустил только один запуск конвейера Jenkinsfile (который запускает одну задачу Gradle (скажем, rpm задача), присутствующую в нескольких проектах параллельно) a и это сработало успешно !! проверенные параметры / значения передано между успешными и неудачными запусками - они были похожи.

Пример Jenkinsfile можно найти здесь: Трубопровод DSL Jenkinsfile: Как отобразить несколько столбцов на панели инструментов Jobs GUI - Для всех динамически создаваемых этапов - В секции PIPELINE , где я параллельно запускаю задачу gradle (скажем, gradle rpm) (каждая задача gradle rpm выполняется в отдельном stage step), создавая динамические этапы c (так что я не кодируйте их жестко в Jenkinsfile для каждого проекта).

NOTE : в Jenkinsfile, даже если задача Gradle rpm (которую я выполняю параллельно в отдельных *) В разделе 1067 * (под 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 после распространения 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$1$1.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$1.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$11.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$2.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$9.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$4.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$4.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$1.doFilter(PluginServletFilter.java:154)
    at com.cloudbees.jenkins.support.impl.cloudbees.UnrestrictedApiCallsMonitor$ApiMonitorFilter.doFilter(UnrestrictedApiCallsMonitor.java:120)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:243)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
    at hudson.util.PluginServletFilter$1.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$1.doFilter(ChainedServletFilter.java:84)
    at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
    at hudson.security.ChainedServletFilter$1.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$1.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$2.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$2.run(QueuedThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:745)

Что заставляет получить это сообщение об ошибке в Jenkins?

Ошибка: java .lang.IllegalArgumentException: последний блок выполняет недостаточно правильных битов

и

Почему мой конвейер прерывается периодически со следующим сообщением об ошибке в Gradle (когда секция parallel используется для запуска чего-либо (например, Gradle someTask) в Jenkinsfile)?

Задача 'null' не найдена в root проекте

При выполнении много одновременных запусков этого конвейера (который запускает задачу Gradle на многих проектах в parallel), скажем, я запускаю 4 запуска конвейеров и каждый создает задачу Gradle rpm проекта 3-5), затем я увидел следующие проблемы, связанные с блокировкой ФАЙЛА.

{ ссылка }

т.е. Gradle невозможно удалить папку / файл (как указано ниже)

**Execution failed for task ':clean'.
> Unable to delete directory: /some/path/build/someFolder/aFolder_or_File **

или

Не удалось записать снимок выходных файлов для задачи из-за истечения времени ожидания для блокировки файла ха sh кеш

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

или

получение: Не удалось создать службу типа ScriptPluginFactory с помощью BuildScopeServices.createScriptPluginFactory ()

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' 

1 Ответ

0 голосов
/ 21 января 2020

В случае одного запуска конвейера , если у вас есть еще больше проектов (скажем, 20+ проектов), и вы запускаете Gradle someTask параллельно ( в один этап или отдельные этапы для проекта ), затем вы можете установить папку GRADLE_USER_HOME=$WORKSPACE/${whichProject} (где ${whichProject} - папка проекта, которая будет доступна вам в Jenkins WORKSPACE (после git clone или аналогично оформить заказ операция)). Это могло бы решить любую задачу parallel, связанную с любыми проблемами, связанными с блокировкой, но за счет снижения производительности Gradle (т. Е. Из-за того, что Gradle CACHE не используется во многих параллельных задачах проекта).

Установка уникального Значение GRADLE_USER_HOME (для проекта) в динамически создаваемом уникальном рабочем пространстве Jenkins ( пример : /jenkins/workspaces/jobname/<buildnumber>/, где BUILD_NUMBER делает папку рабочего пространства Jenkins уникальной) разрешит любые lock проблемы

  1. т.е. при этом Project1 будет использовать GRADLE_USER_HOME=/jenkins/workspaces/jobname/<buildnumber>/Project1 (а теперь папки .gradle и caches будут находиться в этой папке и использоваться Gradle и не будет конфликтовать с папкой Gradle CACHE другого проекта: .gradle и caches, которые также работают параллельно).

Я заметил CLI option --gradle-user-home (он же) $ GRADLE_USER_HOME) во время выполнения задачи Gradle была установлена ​​только на WORKSPACE примерное значение Jenkins только для и, таким образом, для задачи Gradle всех 3-5 проектов (в моем случае rpm) запуски) выполнялись в parallel (с использованием папки Gradle caches той же учетной записи службы), которая обычно находится в расположении GRADLE_USER_HOME (так что в моем случае папка caches одного Gradle распределялась всеми этими 3-5 проектами параллельно Выполнение задачи).

Я все еще пытаюсь найти решение для При запуске параллельного конвейера запускается (который снова запускает parallel Gradle rpm для каждого проекта в рамках одного запуска конвейера ) каждая использует свои собственные разные Jenkins WORKSPACE папки, почему я до сих пор получаю эти проблемы; Я обновлю, если найду решение.

...