You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When trying to build release artifacts from main branch (commit: ) using Buildkite containers -- as opposed to a VM -- we observed that an error during the :bootstrap task gets ignored, resulting in a missing snakeyaml-engine.jar in the deb artifact.
Detailed Logs
Below is an excerpt from the Buildkite output:
[artifact:deb] building deb package for x86_64
--
| WARNING: Unknown module: org.jruby.dist specified to --add-opens
| WARNING: Unknown module: org.jruby.dist specified to --add-opens
| WARNING: Unknown module: org.jruby.dist specified to --add-opens
| WARNING: Unknown module: org.jruby.dist specified to --add-opens
| To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.5/userguide/gradle_daemon.html#sec:disabling_the_daemon.
| Daemon will be stopped at the end of the build
|
| > Task :downloadPreviousJRuby UP-TO-DATE
| Download https://repo1.maven.org/maven2/org/jruby/jruby-dist/9.3.9.0/jruby-dist-9.3.9.0-bin.tar.gz
|
| > Task :downloadJRuby UP-TO-DATE
| Download https://repo1.maven.org/maven2/org/jruby/jruby-dist/9.4.3.0/jruby-dist-9.4.3.0-bin.tar.gz
|
| > Task :bootstrap
| 2023-09-27T15:13:23.844Z [Execution worker Thread 5] WARN FilenoUtil : Native subprocess control requires open access to the JDK IO subsystem
| Pass '--add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED' to enable.
| Error Errno::ENOENT, retrying 1/10
| No such file or directory - /buildkite/builds/bk-agent-prod-k8s-1695827479442731913/elastic/logstash-dra-pipeline-ci/vendor/bundle/jruby/3.1.0/gems/psych-5.1.0-java/deps.lst
Initial analysis
Upon further inspection and after comparing with an artifact built on a VM using the same process, we can see that the following is missing:
The bash script .buildkite/scripts/dra/build_packages.sh gets executed (env var WORKFLOW_TYPE=snapshot is set): --> runs rake artifact:all --> runs Rake's artifact:deb --> runs Gradle
and somewhere in this chain, errors don't get propagated properly.
The team has looked a bit more into it and the initial thoughts are that bundler isn’t loading the jar-dependencies / ruby-maven stuff, so the pom file isn’t being processed at gem install time, and the jar doesn't get installed.
Steps to reproduce:
Build a docker image using docker build -t dockerbundlerissue . and the following Dockerfile
Observe after ./gradlew assemble and [artifact:deb] building deb package for x86_64 (doesn't take very long, depending on network speed):
> Task :bootstrap
2023-09-28T08:29:42.361Z [Execution worker Thread 11] WARN FilenoUtil : Native subprocess control requires open access to the JDK IO subsystem
Pass '--add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED' to enable.
Error Errno::ENOENT, retrying 1/10
No such file or directory - /logstash/vendor/bundle/jruby/3.1.0/gems/psych-5.1.0-java/deps.lst
Description
When trying to build release artifacts from
main
branch (commit: ) using Buildkite containers -- as opposed to a VM -- we observed that an error during the:bootstrap
task gets ignored, resulting in a missingsnakeyaml-engine.jar
in the deb artifact.Detailed Logs
Below is an excerpt from the Buildkite output:
Initial analysis
Upon further inspection and after comparing with an artifact built on a VM using the same process, we can see that the following is missing:
Under the hood the sequence of execution is:
The bash script .buildkite/scripts/dra/build_packages.sh gets executed (env var
WORKFLOW_TYPE=snapshot
is set):-->
runsrake artifact:all
-->
runs Rake'sartifact:deb
-->
runs Gradleand somewhere in this chain, errors don't get propagated properly.
The team has looked a bit more into it and the initial thoughts are that bundler isn’t loading the jar-dependencies / ruby-maven stuff, so the pom file isn’t being processed at gem install time, and the jar doesn't get installed.
Steps to reproduce:
docker build -t dockerbundlerissue .
and the followingDockerfile
Dockerfile
Start a container using the new docker image:
Run the following commands in the container:
Observe after
./gradlew assemble
and[artifact:deb] building deb package for x86_64
(doesn't take very long, depending on network speed):Related issue
#15356
The text was updated successfully, but these errors were encountered: