Andre Schlegel-Tylla created KARAF-7873:
-------------------------------------------
Summary: 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
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)