Interpreting Galleon Maven debug build logs

Solution Verified - Updated

Environment

  • Red Hat JBoss Enterprise Application Platform
    • 7.x
    • 8.x

Issue

  • How to enable debug Galleon Builds logs?
  • How to interpret Maven build logs?

Resolution

Enable the script debug settings in Galleon building settings to verify that.
Use the SCRIPT_DEBUG true variable to enable debug log for scripts

# Use EAP 8 Builder image to create a JBoss EAP 8 server with its default configuration
FROM registry.redhat.io/jboss-eap-8/eap8-openjdk17-builder-openshift-rhel8:1.0.1.GA-15 AS builder
ENV GALLEON_PROVISION_FEATURE_PACKS=org.jboss.eap:wildfly-ee-galleon-pack,org.jboss.eap.cloud:eap-cloud-galleon-pack
ENV GALLEON_PROVISION_LAYERS=jaxrs-server,cloud-default-config,-jpa
ENV GALLEON_PROVISION_CHANNELS=org.jboss.eap.channels:eap-8.0
ENV GALLEON_MAVEN_ARGS="-X -e -Dverbose
ENV SCRIPT_DEBUG true <---------------------------------------------------------------------------------------------------------
RUN /usr/local/s2i/assemble

Sections

Initial template:

$ head -n 100 build.logs 
[1/2] STEP 1/8: FROM registry.redhat.io/jboss-eap-8/eap8-openjdk17-builder-openshift-rhel8:1.0.1.GA-15 AS builder
[1/2] STEP 2/8: ENV GALLEON_PROVISION_FEATURE_PACKS=org.jboss.eap:wildfly-ee-galleon-pack,org.jboss.eap.cloud:eap-cloud-galleon-pack
--> 0337388ef4c2
[1/2] STEP 3/8: ENV GALLEON_PROVISION_LAYERS=jaxrs-server,cloud-default-config,-jpa
--> f5d69934b119
[1/2] STEP 4/8: ENV GALLEON_PROVISION_CHANNELS=org.jboss.eap.channels:eap-8.0
--> 5335455e40d8
[1/2] STEP 5/8: ENV GALLEON_MAVEN_ARGS="-X -e -Dverbose -Dmaven.repo.local=/tmp/artifacts/banana/m2" 
--> 1af084314d43
[1/2] STEP 6/8: ENV SCRIPT_DEBUG true
--> 5904185f7798
[1/2] STEP 7/8: RUN /usr/local/s2i/assemble
Apache Maven 3.8.5 (Red Hat 3.8.5-6)
Maven home: /usr/share/maven
Java version: 17.0.14, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-17-openjdk-17.0.14.0.7-3.el8.x86_64
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "6.13.9-200.fc41.x86_64", arch: "amd64", family: "unix"
[DEBUG] Created new class realm maven.api
[DEBUG] Importing foreign packages into class realm maven.api

Plugin template details:

[INFO] 
[INFO] -------------< org.jboss.galleon.s2i:layers-provisioning >--------------
[INFO] Building Provision a set of Galleon layers from s2i feature-pack 1.0.0.Final
[INFO] --------------------------------[ pom ]---------------------------------
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Resolving artifact org.jboss.eap.plugins:eap-maven-plugin:pom:1.0.1.Final-redhat-00022 from [central (https://repo1.maven.org/maven2, default, releases+snapshots), redhat-ga-plugin-repository (https://maven.repository.redhat.com/ga/, default, releases), redhat-ea-plugin-repository (https://maven.repository.redhat.com/earlyaccess/all/, default, releases)]

The repository order is given as: repo1 -> maven central

[DEBUG] Connection [id: 0][route: {s}->https://repo1.maven.org:443] can be kept alive indefinitely
...
[DEBUG] Opening connection {s}->https://maven.repository.redhat.com:443
[DEBUG] Opening connection {s}->https://maven.repository.redhat.com:443

Here is an example of repository fetching:

...
[DEBUG] CookieSpec selected: compatibility
[DEBUG] Connection request: [route: {s}->https://maven.repository.redhat.com:443][total available: 0; route allocated: 0 of 20; total allocated: 0 of 40]
[DEBUG] Connection leased: [id: 1][route: {s}->https://maven.repository.redhat.com:443][total available: 0; route allocated: 1 of 20; total allocated: 1 of 40]
[DEBUG] Opening connection {s}->https://maven.repository.redhat.com:443
[DEBUG] Connecting to maven.repository.redhat.com/127.0.0.3:443
[DEBUG] Connecting socket to maven.repository.redhat.com/127.0.0.3:443 with timeout 0
[DEBUG] Enabled protocols: [TLSv1.3, TLSv1.2]
[DEBUG] Enabled cipher suites:[TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
[DEBUG] Starting handshake
[DEBUG] http-outgoing-1: Shutdown connection
[DEBUG] Connection discarded
[DEBUG] Connection released: [id: 1][route: {s}->https://maven.repository.redhat.com:443][total available: 0; route allocated: 0 of 20; total allocated: 0 of 40]
[DEBUG] Writing tracking file /tmp/artifacts/apple/m2/org/jboss/eap/plugins/eap-maven-plugin/1.0.1.Final-redhat-00022/eap-maven-plugin-1.0.1.Final-redhat-00022.pom.lastUpdated
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://maven.repository.redhat.com/earlyaccess/all/
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://maven.repository.redhat.com/earlyaccess/all/
[INFO] Downloading from redhat-ea-plugin-repository: https://maven.repository.redhat.com/earlyaccess/all/org/jboss/eap/plugins/eap-maven-plugin/1.0.1.Final-redhat-00022/eap-maven-plugin-1.0.1.Final-redhat-00022.pom
[DEBUG] CookieSpec selected: compatibility
[DEBUG] Connection request: [route: {s}->https://maven.repository.redhat.com:443][total available: 0; route allocated: 0 of 20; total allocated: 0 of 40]
[DEBUG] Connection leased: [id: 2][route: {s}->https://maven.repository.redhat.com:443][total available: 0; route allocated: 1 of 20; total allocated: 1 of 40]
[DEBUG] Opening connection {s}->https://maven.repository.redhat.com:443
[DEBUG] Connecting to maven.repository.redhat.com/127.0.0.3:443
[DEBUG] Connecting socket to maven.repository.redhat.com/127.0.0.3:443 with timeout 0

SSL
The output will be humongous, but some sections can be relevant to understand:

[DEBUG] Connection request: [route: {s}->https://repo1.maven.org:443][total available: 0; route allocated: 0 of 20; total allocated: 0 of 40]
[DEBUG] Connection leased: [id: 0][route: {s}->https://repo1.maven.org:443][total available: 0; route allocated: 1 of 20; total allocated: 1 of 40]
[DEBUG] Opening connection {s}->https://repo1.maven.org:443
[DEBUG] Connecting to repo1.maven.org/127.0.0.3:443
[DEBUG] Connecting socket to repo1.maven.org/127.0.0.3:443 with timeout 0
[DEBUG] Enabled protocols: [TLSv1.3, TLSv1.2]
[DEBUG] Enabled cipher suites:[TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
[DEBUG] Starting handshake
[DEBUG] Secure session established
[DEBUG]  negotiated protocol: TLSv1.2
[DEBUG]  negotiated cipher suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
[DEBUG]  peer principal: CN=repo1.maven.org
[DEBUG]  peer alternative names: [repo1.maven.org]
[DEBUG]  issuer principal: CN=GlobalSign Atlas R3 DV TLS CA 2024 Q4, O=GlobalSign nv-sa, C=BE
[DEBUG] Connection established (local) 127.0.0.3:443:60740<->127.0.0.3:443 (maven)
[DEBUG] http-outgoing-0: set socket timeout to 1800000
[DEBUG] Executing request GET /maven2/org/jboss/eap/plugins/eap-maven-plugin/1.0.1.Final-redhat-00022/eap-maven-plugin-1.0.1.Final-redhat-00022.pom HTTP/1.1
[DEBUG] Target auth state: UNCHALLENGED
[DEBUG] Proxy auth state: UNCHALLENGED

Maven version

$ head -n 400 build.logs  | grep Maven
Apache Maven 3.8.5 (Red Hat 3.8.5-6) <-------------------------------------------------------------
Maven home: /usr/share/maven
[DEBUG] http-outgoing-0 >> User-Agent: Apache-Maven/3.8.5 (Java 17.0.14; Linux 6.13.9-200.fc41.x86_64)
[DEBUG] http-outgoing-0 >> "User-Agent: Apache-Maven/3.8.5 (Java 17.0.14; Linux 6.13.9-200.fc41.x86_64)[\r][\n]"
[DEBUG] http-outgoing-1 >> User-Agent: Apache-Maven/3.8.5 (Java 17.0.14; Linux 6.13.9-200.fc41.x86_64)
[DEBUG] http-outgoing-1 >> "User-Agent: Apache-Maven/3.8.5 (Java 17.0.14; Linux 6.13.9-200.fc41.x86_64)[\r][\n]"
[DEBUG] http-outgoing-1 << "    <name>Maven Plugin to provision EAP 8</name>[\n]"
[DEBUG] http-outgoing-1 << "    <description>Maven Plugin to provision EAP 8</description>[\n]"

eap-maven-plugin-1.0.1.Final-redhat-000nn POM file:

[DEBUG] http-outgoing-1 << "-->[\n]"
[DEBUG] http-outgoing-1 << "<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">[\n]"
[DEBUG] http-outgoing-1 << "    <modelVersion>4.0.0</modelVersion>[\n]"
[DEBUG] http-outgoing-1 << "    <parent>[\n]"
[DEBUG] http-outgoing-1 << "        <groupId>org.jboss.eap.plugins</groupId>[\n]"
[DEBUG] http-outgoing-1 << "        <artifactId>eap-maven-plugin-parent</artifactId>[\n]"
[DEBUG] http-outgoing-1 << "        <version>1.0.1.Final-redhat-00022</version>[\n]"
[DEBUG] http-outgoing-1 << "    </parent>[\n]"
[DEBUG] http-outgoing-1 << "    <artifactId>eap-maven-plugin</artifactId>[\n]"
[DEBUG] http-outgoing-1 << "    <packaging>maven-plugin</packaging>[\n]"
[DEBUG] http-outgoing-1 << "    <name>Maven Plugin to provision EAP 8</name>[\n]"
[DEBUG] http-outgoing-1 << "    <description>Maven Plugin to provision EAP 8</description>[\n]"
[DEBUG] http-outgoing-1 << "[\n]"

Diagnostic Steps

For full debug information use:

  1. ENV GALLEON_MAVEN_ARGS="-X -e -Dverbose"
  2. ENV SCRIPT_DEBUG true

This is useful for example:

PurposeSolution
Debugging building such as datasource buildingHow to provision datasource feature packs in EAP 8 image.
Galleon settings.xml detailsEAP 7/8 Galleon settings xml in the building process
Legacy build detailsEAP 8 Galleon legacy vs non-legacy build.
Components
Category
Tags

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.