[
https://issues.apache.org/jira/browse/KARAF-7873?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jean-Baptiste Onofré updated KARAF-7873:
----------------------------------------
Target Version/s: 4.5.0, 4.4.7
> Problem when running under a user without a home directory
> ----------------------------------------------------------
>
> Key: KARAF-7873
> URL: https://issues.apache.org/jira/browse/KARAF-7873
> Project: Karaf
> Issue Type: Bug
> Components: karaf
> Affects Versions: 4.4.6
> Environment: ubuntu 20.04.6
> Reporter: Andre Schlegel-Tylla
> Assignee: Jean-Baptiste Onofré
> Priority: Major
>
> When running Karaf with a user who has no home there are several issues with
> different impact.
> We have a service user "svc_is" without a home directory.
> When accessing the console we got:
>
> {code:java}
> 2024-10-08T14:16:44,854 | WARN | Karaf ssh console user virtimo | jline
> | 162 - org.jline - 3.21.0 | Failed to save
> historyjava.nio.file.AccessDeniedException: /home/svc_is at
> sun.nio.fs.UnixException.translateToIOException(UnixException.java:90) ~[?:?]
> at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
> ~[?:?] at
> sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?]
> at
> sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:397)
> ~[?:?] at java.nio.file.Files.createDirectory(Files.java:700) ~[?:?]
> at java.nio.file.Files.createAndCheckIsDirectory(Files.java:807) ~[?:?] at
> java.nio.file.Files.createDirectories(Files.java:793) ~[?:?] at
> org.jline.reader.impl.history.DefaultHistory.internalWrite(DefaultHistory.java:227)
> ~[!/:?] at
> org.jline.reader.impl.history.DefaultHistory.save(DefaultHistory.java:219)
> ~[!/:?] at
> org.jline.reader.impl.history.DefaultHistory.add(DefaultHistory.java:384)
> [!/:?] at
> org.jline.reader.impl.LineReaderImpl.finish(LineReaderImpl.java:1140) [!/:?]
> at
> org.jline.reader.impl.LineReaderImpl.finishBuffer(LineReaderImpl.java:1109)
> [!/:?] at
> org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:689) [!/:?]
> at
> org.apache.karaf.shell.impl.console.ConsoleSessionImpl.readCommand(ConsoleSessionImpl.java:447)
> [!/:4.4.6] at
> org.apache.karaf.shell.impl.console.ConsoleSessionImpl.run(ConsoleSessionImpl.java:405)
> [!/:4.4.6] at java.lang.Thread.run(Thread.java:840) [?:?] {code}
>
>
> In another step we tried to install feature pax-jdbc-postgresql which tries
> to load the driver over maven. In this case a home directory is expected to
> access the local maven repo. This also fails:
>
> {code:java}
> 2024-10-08T14:16:44,863 | INFO | pipe-feature:install pax-jdbc-postgresql |
> FeaturesServiceImpl | 19 - org.apache.karaf.features.core -
> 4.4.6 | Adding features:
> pax-jdbc-postgresql/[1.5.7,1.5.7]2024-10-08T14:16:44,935 | WARN |
> downloader-12-thread-3 | AetherBasedResolver | 3 -
> org.ops4j.pax.url.mvn - 2.6.14 | Error resolving artifact
> org.postgresql:postgresql:jar:42.7.3: [Could not transfer artifact
> org.postgresql:postgresql:jar:42.7.3 from/to central
> (https://repo1.maven.org/maven2/):
> /home/svc_is/.m2/repository/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar.part.lock
> (No such file or directory)]java.io.IOException: Error resolving artifact
> org.postgresql:postgresql:jar:42.7.3: [Could not transfer artifact
> org.postgresql:postgresql:jar:42.7.3 from/to central
> (https://repo1.maven.org/maven2/):
> /home/svc_is/.m2/repository/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar.part.lock
> (No such file or directory)] at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.configureIOException(AetherBasedResolver.java:803)
> [!/:?] at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:774)
> [!/:?] at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:657)
> [!/:?] at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598)
> [!/:?] at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:565)
> [!/:?] at
> org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:49)
> [!/:?] at
> org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
> [!/:?] at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
> at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
> [?:?] at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
> [?:?] at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
> [?:?] at java.lang.Thread.run(Thread.java:840) [?:?] Suppressed:
> shaded.org.eclipse.aether.transfer.ArtifactTransferException: Could not
> transfer artifact org.postgresql:postgresql:jar:42.7.3 from/to central
> (https://repo1.maven.org/maven2/):
> /home/svc_is/.m2/repository/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar.part.lock
> (No such file or directory) at
> shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:52)
> ~[!/:?] at
> shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:401)
> ~[!/:?] at
> shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0(RunnableErrorForwarder.java:73)
> ~[!/:?] at
> shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:669)
> ~[!/:?] at
> shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:290)
> ~[!/:?] at
> shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520)
> ~[!/:?] at
> shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:408)
> ~[!/:?] at
> shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
> ~[!/:?] at
> shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
> ~[!/:?] at
> shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:272)
> ~[!/:?] at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
> [!/:?] at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:657)
> [!/:?] at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598)
> [!/:?] at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:565)
> [!/:?] at
> org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:49)
> [!/:?] at
> org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
> [!/:?] at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
> at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
> [?:?] at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
> [?:?] at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
> [?:?] at java.lang.Thread.run(Thread.java:840) [?:?] Caused by:
> java.io.FileNotFoundException:
> /home/svc_is/.m2/repository/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar.part.lock
> (No such file or directory) at java.io.RandomAccessFile.open0(Native
> Method) ~[?:?] at
> java.io.RandomAccessFile.open(RandomAccessFile.java:344) ~[?:?] at
> java.io.RandomAccessFile.<init>(RandomAccessFile.java:259) ~[?:?] at
> java.io.RandomAccessFile.<init>(RandomAccessFile.java:213) ~[?:?] at
> shaded.org.eclipse.aether.connector.basic.PartialFile$LockFile.tryLock(PartialFile.java:138)
> ~[!/:?] at
> shaded.org.eclipse.aether.connector.basic.PartialFile$LockFile.lock(PartialFile.java:82)
> ~[!/:?] at
> shaded.org.eclipse.aether.connector.basic.PartialFile$LockFile.<init>(PartialFile.java:70)
> ~[!/:?] at
> shaded.org.eclipse.aether.connector.basic.PartialFile$Factory.newInstance(PartialFile.java:268)
> ~[!/:?] at
> shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:481)
> ~[!/:?] at
> shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:396)
> ~[!/:?] ... 20 moreCaused by:
> shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Error
> resolving artifact org.postgresql:postgresql:jar:42.7.3 at
> shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:431)
> ~[?:?] at
> shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
> ~[?:?] at
> shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
> ~[?:?] at
> shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:272)
> ~[?:?] at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
> ~[?:?] ... 11 more {code}
>
> I think in this case ${user.home} should be setz to the Karaf-Home.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)