quarkiverse / quarkus-langchain4j

Quarkus Langchain4j extension
https://docs.quarkiverse.io/quarkus-langchain4j/dev/index.html
Apache License 2.0
121 stars 66 forks source link

Building quarkus-langchain4j on MacOS with Podman fails at Antora Container Start InternalServerErrorException: Status 500: {"cause":"permission denied", #493

Closed myfear closed 2 months ago

myfear commented 2 months ago

Trying to build quarkus-langchain4j on my M2 Pro with. Opening this after briefly talking with @maxandersen .

podman version

Client:       Podman Engine
Version:      5.0.1
API Version:  5.0.1
Go Version:   go1.22.1
Git Commit:   946d055df324e4ed6c1e806b561af4740db4fea9
Built:        Mon Apr  1 14:28:31 2024
OS/Arch:      darwin/arm64

Server:       Podman Engine
Version:      5.0.2
API Version:  5.0.2
Go Version:   go1.21.9
Built:        Wed Apr 17 02:00:00 2024
OS/Arch:      linux/arm64

Build Error:

[INFO] Creating container for image: antora/antora:3.0.1
[WARNING] Image name alpine:3.16 was substituted by configuration to registry.access.redhat.com/ubi8/ubi-minimal:8.4. This approach is deprecated and will be removed in the future
[INFO] Using registry.access.redhat.com/ubi8/ubi-minimal:8.4 as a substitute image for alpine:3.16 (using image substitutor: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor'))
[WARNING] Unable to mount a file from test host into a running container. This may be a misconfiguration or limitation of your Docker environment. Some features might not work.
[INFO] Container antora/antora:3.0.1 is starting: 302c8f5f77645f5e0a30a32651f980efa7f0a706d946288ae9b5f1e76b08bafc
[ERROR] Could not start container
com.github.dockerjava.api.exception.InternalServerErrorException: Status 500: {"cause":"permission denied","message":"lsetxattr /Users/meisele/projects/quarkus-langchain4j/.git/objects/pack/pack-986166a4a5358372d0659022dad3ca5673b24945.idx: permission denied","response":500}
    at org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.execute (DefaultInvocationBuilder.java:247)
    at org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.post (DefaultInvocationBuilder.java:102)
    at org.testcontainers.shaded.com.github.dockerjava.core.exec.StartContainerCmdExec.execute (StartContainerCmdExec.java:31)
    at org.testcontainers.shaded.com.github.dockerjava.core.exec.StartContainerCmdExec.execute (StartContainerCmdExec.java:13)
    at org.testcontainers.shaded.com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec (AbstrSyncDockerCmdExec.java:21)
    at org.testcontainers.shaded.com.github.dockerjava.core.command.AbstrDockerCmd.exec (AbstrDockerCmd.java:33)
    at org.testcontainers.shaded.com.github.dockerjava.core.command.StartContainerCmdImpl.exec (StartContainerCmdImpl.java:42)
    at org.testcontainers.containers.GenericContainer.tryStart (GenericContainer.java:452)
    at org.testcontainers.containers.GenericContainer.lambda$doStart$0 (GenericContainer.java:354)
    at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess (Unreliables.java:81)
    at org.testcontainers.containers.GenericContainer.doStart (GenericContainer.java:344)
    at org.testcontainers.containers.GenericContainer.start (GenericContainer.java:330)
    at io.quarkiverse.antora.deployment.AntoraProcessor.buildAntoraSite (AntoraProcessor.java:134)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at io.quarkus.deployment.ExtensionLoader$3.execute (ExtensionLoader.java:849)
    at io.quarkus.builder.BuildContext.run (BuildContext.java:256)
    at org.jboss.threads.ContextHandler$1.runWith (ContextHandler.java:18)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run (EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run (EnhancedQueueExecutor.java:1512)
    at java.lang.Thread.run (Thread.java:1583)
    at org.jboss.threads.JBossThread.run (JBossThread.java:501)
[ERROR] There are no stdout/stderr logs available for the failed container
geoand commented 2 months ago

Right, @maxandersen's proposal was to disable this and I agree.

cc @ppalaga @jmartisk

maxandersen commented 2 months ago

what build command did you run ? as i get another very different error not related to antora when doing mvn install :)

jmartisk commented 2 months ago

I get a (slightly) different error with antora, as is discussed in https://github.com/quarkiverse/quarkus-langchain4j/pull/459#issuecomment-2055941633

myfear commented 2 months ago

I am following the easy rag guide: https://docs.quarkiverse.io/quarkus-langchain4j/dev/easy-rag.html

mvn clean install -DskipTests

maxandersen commented 2 months ago

so i hit the same issue but not immediately. i think you have to have one run first where antora starts - then on follow up runs permissions got mixed up somehow and the second run fails.

ppalaga commented 2 months ago

Could you guys please check whether https://github.com/quarkiverse/quarkus-langchain4j/pull/533 solves all your problems? Podman on Linux works now, but I do not have a Mac to test it there as well. Quarkus Antora now uses the very same tricks to run the Antora container like Quarkus does to run Mandrel. Therefore the chances should be high that it will work for you.

geoand commented 2 months ago

I'll close this as https://github.com/quarkiverse/quarkus-langchain4j/pull/533 was merged. If this problem persists, please comment so we can reopen