Skip to content

build fails for linux/arm/v7 on eclipse temurin resolute #13

Description

@peterstadler

Logs look like:

2026-05-13T06:57:20.7644530Z #32 113.2 [ Starting processing ]
2026-05-13T06:57:20.7645202Z #32 113.2 Starting process Setting data dir... (1/2)
2026-05-13T06:57:27.4953945Z #32 120.0 Starting process Setting admin password... (2/2)
2026-05-13T06:57:36.4242012Z #32 129.0 eXist version 6.3.0 (f040b832284f81f095e89c06fe9e30a78654dd9b), Copyright (C) 2001-2026 The eXist-db Project
2026-05-13T06:57:36.6092779Z #32 129.0 eXist-db comes with ABSOLUTELY NO WARRANTY.
2026-05-13T06:57:36.6095400Z #32 129.0 This is free software, and you are welcome to redistribute it
2026-05-13T06:57:36.6096714Z #32 129.0 under certain conditions; for details read the license file.
2026-05-13T06:57:36.6097497Z #32 129.0 
2026-05-13T06:57:36.6097969Z #32 129.0 Connecting to database...
2026-05-13T06:57:45.4200475Z #32 138.0 Connection to database failed; message: configuration error: java.nio.file.FileSystemException: /opt/exist/data: Value too large for defined data type
2026-05-13T06:57:45.5904835Z #32 138.0 org.xmldb.api.base.XMLDBException: configuration error: java.nio.file.FileSystemException: /opt/exist/data: Value too large for defined data type
2026-05-13T06:57:45.5907851Z #32 138.0 	at org.exist.xmldb.DatabaseImpl.configure(DatabaseImpl.java:131)
2026-05-13T06:57:45.5908972Z #32 138.0 	at org.exist.xmldb.DatabaseImpl.getLocalCollection(DatabaseImpl.java:194)
2026-05-13T06:57:45.5910036Z #32 138.0 	at org.exist.xmldb.DatabaseImpl.getCollection(DatabaseImpl.java:180)
2026-05-13T06:57:45.5911047Z #32 138.0 	at org.exist.xmldb.DatabaseImpl.getCollection(DatabaseImpl.java:171)
2026-05-13T06:57:45.5912452Z #32 138.0 	at org.xmldb.api.DatabaseManager.getCollection(DatabaseManager.java:235)
2026-05-13T06:57:45.5913513Z #32 138.0 	at org.exist.client.InteractiveClient.connect(InteractiveClient.java:316)
2026-05-13T06:57:45.5914695Z #32 138.0 	at org.exist.client.InteractiveClient.connectToDatabase(InteractiveClient.java:2153)
2026-05-13T06:57:45.5915861Z #32 138.0 	at org.exist.client.InteractiveClient.run(InteractiveClient.java:2255)
2026-05-13T06:57:45.5917197Z #32 138.0 	at org.exist.client.InteractiveClient.main(InteractiveClient.java:253)
2026-05-13T06:57:45.5918324Z #32 138.0 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2026-05-13T06:57:45.5919539Z #32 138.0 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2026-05-13T06:57:45.5920758Z #32 138.0 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2026-05-13T06:57:45.5921841Z #32 138.0 	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
2026-05-13T06:57:45.5922760Z #32 138.0 	at org.exist.start.Main.invokeMain(Main.java:153)
2026-05-13T06:57:45.5923523Z #32 138.0 	at org.exist.start.Main.runEx(Main.java:292)
2026-05-13T06:57:45.5924248Z #32 138.0 	at org.exist.start.Main.run(Main.java:158)
2026-05-13T06:57:45.5924962Z #32 138.0 	at org.exist.start.Main.main(Main.java:95)
2026-05-13T06:57:45.5925855Z #32 138.0 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2026-05-13T06:57:45.5927245Z #32 138.0 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2026-05-13T06:57:45.5928494Z #32 138.0 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2026-05-13T06:57:45.5929571Z #32 138.0 	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
2026-05-13T06:57:45.5930918Z #32 138.0 	at org.codehaus.mojo.appassembler.booter.AppassemblerBooter.executeMain(AppassemblerBooter.java:257)
2026-05-13T06:57:45.5932972Z #32 138.0 	at org.codehaus.mojo.appassembler.booter.AppassemblerBooter.main(AppassemblerBooter.java:77)
2026-05-13T06:57:45.5934520Z #32 138.0 Caused by: org.exist.EXistException: java.nio.file.FileSystemException: /opt/exist/data: Value too large for defined data type
2026-05-13T06:57:45.5936306Z #32 138.0 	at org.exist.storage.BrokerPool._initialize(BrokerPool.java:721)
2026-05-13T06:57:45.5937262Z #32 138.0 	at org.exist.storage.BrokerPool.initialize(BrokerPool.java:451)
2026-05-13T06:57:45.5938221Z #32 138.0 	at org.exist.storage.BrokerPools.configure(BrokerPools.java:177)
2026-05-13T06:57:45.5939156Z #32 138.0 	at org.exist.storage.BrokerPools.configure(BrokerPools.java:131)
2026-05-13T06:57:45.5940094Z #32 138.0 	at org.exist.xmldb.DatabaseImpl.configure(DatabaseImpl.java:125)
2026-05-13T06:57:45.5940853Z #32 138.0 	... 22 more
2026-05-13T06:57:45.5941984Z #32 138.0 Caused by: java.io.UncheckedIOException: java.nio.file.FileSystemException: /opt/exist/data: Value too large for defined data type
2026-05-13T06:57:45.5943397Z #32 138.0 	at java.base/java.nio.file.FileTreeIterator.fetchNextIfNeeded(Unknown Source)
2026-05-13T06:57:45.5944457Z #32 138.0 	at java.base/java.nio.file.FileTreeIterator.hasNext(Unknown Source)
2026-05-13T06:57:45.5945410Z #32 138.0 	at java.base/java.util.Iterator.forEachRemaining(Unknown Source)
2026-05-13T06:57:45.5946714Z #32 138.0 	at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
2026-05-13T06:57:45.5947875Z #32 138.0 	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
2026-05-13T06:57:45.5948966Z #32 138.0 	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
2026-05-13T06:57:45.5950114Z #32 138.0 	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
2026-05-13T06:57:45.5951213Z #32 138.0 	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
2026-05-13T06:57:45.5952234Z #32 138.0 	at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
2026-05-13T06:57:45.5953785Z #32 138.0 	at org.exist.storage.recovery.RecoveryManager.recover(RecoveryManager.java:88)
2026-05-13T06:57:45.5955250Z #32 138.0 	at org.exist.storage.BrokerPool.runRecovery(BrokerPool.java:808)
2026-05-13T06:57:45.5957041Z #32 138.0 	at org.exist.storage.BrokerPool._initialize(BrokerPool.java:591)
2026-05-13T06:57:45.5957803Z #32 138.0 	... 26 more
2026-05-13T06:57:45.5958686Z #32 138.0 Caused by: java.nio.file.FileSystemException: /opt/exist/data: Value too large for defined data type
2026-05-13T06:57:45.5959904Z #32 138.0 	at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
2026-05-13T06:57:45.5960895Z #32 138.0 	at java.base/sun.nio.fs.UnixException.asIOException(Unknown Source)
2026-05-13T06:57:45.5962062Z #32 138.0 	at java.base/sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.readNextEntry(Unknown Source)
2026-05-13T06:57:45.5963371Z #32 138.0 	at java.base/sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.hasNext(Unknown Source)
2026-05-13T06:57:45.5964457Z #32 138.0 	at java.base/java.nio.file.FileTreeWalker.next(Unknown Source)
2026-05-13T06:57:45.5965203Z #32 138.0 	... 38 more
2026-05-13T06:57:45.7726211Z #32 138.2 ------------------------
2026-05-13T06:57:45.7727004Z #32 138.2 Process execution failed
2026-05-13T06:57:45.7727904Z #32 138.2 
2026-05-13T06:57:45.7728259Z #32 138.2 Continue anyway?
2026-05-13T06:57:45.7728629Z #32 138.2 ------------------------
2026-05-13T06:57:45.7729029Z #32 138.2 Enter Y for Yes, N for No: 
2026-05-13T06:57:45.7729459Z #32 138.3 [ Console installation FAILED! ]
2026-05-13T06:57:45.9279358Z #32 138.3 WARNING: Cannot invoke "java.util.List.iterator()" because "this.files" is null
2026-05-13T06:57:46.2420599Z #32 138.7 chown: cannot read directory '/opt/exist/bin': Value too large for defined data type
2026-05-13T06:57:46.2424004Z #32 138.7 chown: cannot read directory '/opt/exist/logs': Value too large for defined data type
2026-05-13T06:57:46.2425195Z #32 138.7 chown: cannot read directory '/opt/exist/etc': Value too large for defined data type
2026-05-13T06:57:46.2426528Z #32 138.7 chown: cannot read directory '/opt/exist/data': Value too large for defined data type
2026-05-13T06:57:46.2432215Z #32 ERROR: process "/bin/sh -c apt-get update     && apt-get dist-upgrade -y     && apt-get install -y --no-install-recommends curl pwgen zip patch     && echo \"INSTALL_PATH=${EXIST_HOME}\" > \"/tmp/options.txt\"     && echo \"MAX_MEMORY=${MAX_MEMORY}\" >> \"/tmp/options.txt\"     && echo \"dataDir=${EXIST_DATA_DIR}\" >> \"/tmp/options.txt\"     && curl -sL ${EXIST_URL} -o /tmp/exist.jar     && java -jar \"/tmp/exist.jar\" -options \"/tmp/options.txt\" || true     && rm -fr \"/tmp/exist.jar\" \"/tmp/options.txt\" ${EXIST_DATA_DIR}/*     && sed -i 's/^${JAVA_RUN/exec ${JAVA_RUN/'  ${EXIST_HOME}/bin/startup.sh     && rm -rf /var/lib/apt/lists/*     && rm -Rf ${EXIST_HOME}/etc/jetty/webapps/portal     && chown -R wegajetty:wegajetty ${EXIST_HOME}     && chmod 755 ${EXIST_HOME}/entrypoint.sh     && find ${EXIST_HOME} -name log4j-core-*.jar -exec zip -q -d {} org/apache/logging/log4j/core/lookup/JndiLookup.class \\;" did not complete successfully: exit code: 1
2026-05-13T06:57:46.2438027Z 
2026-05-13T06:57:46.2444260Z #35 [linux/arm64 9/9] RUN apt-get update     && apt-get dist-upgrade -y     && apt-get install -y --no-install-recommends curl pwgen zip patch     && echo "INSTALL_PATH=/opt/exist" > "/tmp/options.txt"     && echo "MAX_MEMORY=2048" >> "/tmp/options.txt"     && echo "dataDir=/opt/exist/data" >> "/tmp/options.txt"     && curl -sL https://github.com/eXist-db/exist/releases/download/eXist-6.3.0/exist-installer-6.3.0.jar -o /tmp/exist.jar     && java -jar "/tmp/exist.jar" -options "/tmp/options.txt" || true     && rm -fr "/tmp/exist.jar" "/tmp/options.txt" /opt/exist/data/*     && sed -i 's/^${JAVA_RUN/exec ${JAVA_RUN/'  /opt/exist/bin/startup.sh     && rm -rf /var/lib/apt/lists/*     && rm -Rf /opt/exist/etc/jetty/webapps/portal     && chown -R wegajetty:wegajetty /opt/exist     && chmod 755 /opt/exist/entrypoint.sh     && find /opt/exist -name log4j-core-*.jar -exec zip -q -d {} org/apache/logging/log4j/core/lookup/JndiLookup.class ;
2026-05-13T06:57:46.2837375Z #35 CANCELED
2026-05-13T06:57:46.2837868Z ------
2026-05-13T06:57:46.2845545Z  > [linux/arm/v7 9/9] RUN apt-get update     && apt-get dist-upgrade -y     && apt-get install -y --no-install-recommends curl pwgen zip patch     && echo "INSTALL_PATH=/opt/exist" > "/tmp/options.txt"     && echo "MAX_MEMORY=2048" >> "/tmp/options.txt"     && echo "dataDir=/opt/exist/data" >> "/tmp/options.txt"     && curl -sL https://github.com/eXist-db/exist/releases/download/eXist-6.3.0/exist-installer-6.3.0.jar -o /tmp/exist.jar     && java -jar "/tmp/exist.jar" -options "/tmp/options.txt" || true     && rm -fr "/tmp/exist.jar" "/tmp/options.txt" /opt/exist/data/*     && sed -i 's/^${JAVA_RUN/exec ${JAVA_RUN/'  /opt/exist/bin/startup.sh     && rm -rf /var/lib/apt/lists/*     && rm -Rf /opt/exist/etc/jetty/webapps/portal     && chown -R wegajetty:wegajetty /opt/exist     && chmod 755 /opt/exist/entrypoint.sh     && find /opt/exist -name log4j-core-*.jar -exec zip -q -d {} org/apache/logging/log4j/core/lookup/JndiLookup.class ;:
2026-05-13T06:57:46.2851352Z 138.2 
2026-05-13T06:57:46.2851755Z 138.2 Continue anyway?
2026-05-13T06:57:46.2852210Z 138.2 ------------------------
2026-05-13T06:57:46.2852608Z 138.2 Enter Y for Yes, N for No: 
2026-05-13T06:57:46.2853005Z 138.3 [ Console installation FAILED! ]
2026-05-13T06:57:46.2853615Z 138.3 WARNING: Cannot invoke "java.util.List.iterator()" because "this.files" is null
2026-05-13T06:57:46.2854347Z : cannot read directory '/opt/exist/bin': Value too large for defined data type
2026-05-13T06:57:46.2855089Z 138.7 chown: cannot read directory '/opt/exist/logs': Value too large for defined data type
2026-05-13T06:57:46.2855829Z 138.7 chown: cannot read directory '/opt/exist/etc': Value too large for defined data type
2026-05-13T06:57:46.2856803Z 138.7 chown: cannot read directory '/opt/exist/data': Value too large for defined data type
2026-05-13T06:57:46.2857291Z ------
2026-05-13T06:57:46.2857594Z Dockerfile:52
2026-05-13T06:57:46.2857800Z --------------------
2026-05-13T06:57:46.2858222Z   51 |     # main installation put into one RUN to squeeze image size
2026-05-13T06:57:46.2858661Z   52 | >>> RUN apt-get update \
2026-05-13T06:57:46.2859267Z   53 | >>>     && apt-get dist-upgrade -y \
2026-05-13T06:57:46.2859823Z   54 | >>>     && apt-get install -y --no-install-recommends curl pwgen zip patch \
2026-05-13T06:57:46.2860460Z   55 | >>>     && echo "INSTALL_PATH=${EXIST_HOME}" > "/tmp/options.txt" \
2026-05-13T06:57:46.2861066Z   56 | >>>     && echo "MAX_MEMORY=${MAX_MEMORY}" >> "/tmp/options.txt" \
2026-05-13T06:57:46.2862466Z   57 | >>>     && echo "dataDir=${EXIST_DATA_DIR}" >> "/tmp/options.txt" \
2026-05-13T06:57:46.2864834Z   58 | >>>     # install eXist-db
2026-05-13T06:57:46.2865488Z   59 | >>>     # ending with true because java somehow returns with a non-zero after succesfull installing
2026-05-13T06:57:46.2866379Z   60 | >>>     && curl -sL ${EXIST_URL} -o /tmp/exist.jar \
2026-05-13T06:57:46.2866981Z   61 | >>>     && java -jar "/tmp/exist.jar" -options "/tmp/options.txt" || true \ 
2026-05-13T06:57:46.2867663Z   62 | >>>     && rm -fr "/tmp/exist.jar" "/tmp/options.txt" ${EXIST_DATA_DIR}/* \
2026-05-13T06:57:46.2868474Z   63 | >>>     # prefix java command with exec to force java being process 1 and receiving docker signals
2026-05-13T06:57:46.2869280Z   64 | >>>     && sed -i 's/^${JAVA_RUN/exec ${JAVA_RUN/'  ${EXIST_HOME}/bin/startup.sh \
2026-05-13T06:57:46.2869833Z   65 | >>>     # clean up apt cache 
2026-05-13T06:57:46.2870232Z   66 | >>>     && rm -rf /var/lib/apt/lists/* \
2026-05-13T06:57:46.2870650Z   67 | >>>     # remove portal webapp
2026-05-13T06:57:46.2871091Z   68 | >>>     && rm -Rf ${EXIST_HOME}/etc/jetty/webapps/portal \
2026-05-13T06:57:46.2871573Z   69 | >>>     # set permissions for the wegajetty user
2026-05-13T06:57:46.2872106Z   70 | >>>     && chown -R wegajetty:wegajetty ${EXIST_HOME} \
2026-05-13T06:57:46.2872587Z   71 | >>>     && chmod 755 ${EXIST_HOME}/entrypoint.sh \
2026-05-13T06:57:46.2873383Z   72 | >>>     # remove JndiLookup class due to Log4Shell CVE-2021-44228 vulnerability
2026-05-13T06:57:46.2874350Z   73 | >>>     && find ${EXIST_HOME} -name log4j-core-*.jar -exec zip -q -d {} org/apache/logging/log4j/core/lookup/JndiLookup.class \;
2026-05-13T06:57:46.2875162Z   74 |     
2026-05-13T06:57:46.2875424Z --------------------

There's some discussion around "Value too large for defined data type" (see e.g. docker/buildx#395) but I couldn't find a proper fix.
Sticking with noble 6bc5ac8 fixes the issue for now but the goal should be to update to noble at some point …

For reference, this is how you can build an linux/arm/v7 image on your local machine:

docker buildx create --use 
docker buildx build --platform linux/arm/v7 -t existdb:arm7  --build-arg BASE_IMAGE=eclipse-temurin:8-jre-noble . 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions