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)

Reply via email to