Issues updating to OH 3.2

Hi Sascha

It says:

● openhab.service - openHAB instance, reachable at http://openhabian:8080
     Loaded: loaded (/lib/systemd/system/openhab.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/openhab.service.d
             └─override.conf
     Active: active (running) since Thu 2021-12-30 23:34:14 CET; 8h ago
       Docs: https://www.openhab.org/docs/
             https://community.openhab.org
   Main PID: 3995 (java)
      Tasks: 29 (limit: 2178)
        CPU: 36.337s
     CGroup: /system.slice/openhab.service
             └─3995 /usr/bin/java -XX:-UsePerfData -Dopenhab.home=/usr/share/openhab -Dopenhab.conf=/etc/openhab -Dopenhab.runtime=/usr/share/openhab/runtime -Dopenhab.userdata=/var/lib/openhab -Dopenhab.lo>

With my little understanding i guess that the back-end seems to be running. Also my back-up script produced a new new back-up in the night (as is should). Apparently just web-server and karaf console and maybe other front-end systems are not working…

Unfortunately i did not test if everything is working before i did that restore… I naively assumed that everything should be working…

2021-12-30 23:34:30.462 [ERROR] [ternal.service.BootFeaturesInstaller] - Error installing boot features
org.apache.karaf.features.internal.util.MultiException: Error:
        Error downloading mvn:org.ops4j.pax.logging/pax-logging-api/2.0.12
        Error downloading mvn:org.ops4j.pax.logging/pax-logging-log4j2/2.0.12
        at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader.<init>(MavenDownloadManager.java:91) ~[?:?]
        at org.apache.karaf.features.internal.download.impl.MavenDownloadManager.createDownloader(MavenDownloadManager.java:72) ~[?:?]
        at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:457) ~[?:?]
        at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:452) ~[?:?]
        at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:224) ~[?:?]
        at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:399) ~[?:?]
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069) ~[?:?]
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:829) [?:?]
        Suppressed: java.io.IOException: Error downloading mvn:org.ops4j.pax.logging/pax-logging-api/2.0.12
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:77) ~[?:?]
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
                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:1128) [?:?]
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
                at java.lang.Thread.run(Thread.java:829) [?:?]
        Caused by: java.io.IOException: Error resolving artifact org.ops4j.pax.logging:pax-logging-api:jar:2.0.12: [Could not find artifact org.ops4j.pax.logging:pax-logging-api:jar:2.0.12 in openhab (https>
                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:52) ~[?:?]
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60) ~[?:?]
                ... 6 more
                Suppressed: shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.ops4j.pax.logging:pax-logging-api:jar:2.0.12 in openhab (https://openhab.jfrog.io/openha>
                        at shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:48) ~[?:?]
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:368) ~[?:?]
                        at shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:75) ~[?:?]
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:642) ~[?:?]
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:262) ~[?:?]
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:489) ~[?:?]
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:390) ~[?:?]
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:215) ~[?:?]
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:192) ~[?:?]
                        at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:247) ~[?:?]
                        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:52) ~[?:?]
                        at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60) ~[?:?]
                        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
                        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:1128) [?:?]
                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
                        at java.lang.Thread.run(Thread.java:829) [?:?]
        Caused by: shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Error resolving artifact org.ops4j.pax.logging:pax-logging-api:jar:2.0.12
at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:413) ~[?:?]
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:215) ~[?:?]
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:192) ~[?:?]
                at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:247) ~[?:?]
                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:52) ~[?:?]
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60) ~[?:?]
                ... 6 more
        Suppressed: java.io.IOException: Error downloading mvn:org.ops4j.pax.logging/pax-logging-log4j2/2.0.12
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:77) ~[?:?]
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
                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:1128) [?:?]
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
                at java.lang.Thread.run(Thread.java:829) [?:?]
        Caused by: java.io.IOException: Error resolving artifact org.ops4j.pax.logging:pax-logging-log4j2:jar:2.0.12: [Could not find artifact org.ops4j.pax.logging:pax-logging-log4j2:jar:2.0.12 in openhab >
                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:52) ~[?:?]
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60) ~[?:?]
                ... 6 more
                Suppressed: shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.ops4j.pax.logging:pax-logging-log4j2:jar:2.0.12 in openhab (https://openhab.jfrog.io/ope>
                        at shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:48) ~[?:?]
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:368) ~[?:?]
                        at shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:75) ~[?:?]
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:642) ~[?:?]
                        at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:262) ~[?:?]
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:489) ~[?:?]
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:390) ~[?:?]
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:215) ~[?:?]
                        at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:192) ~[?:?]
                        at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:247) ~[?:?]
                        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:52) ~[?:?]
                        at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60) ~[?:?]
                        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
                        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:1128) [?:?]
                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
                        at java.lang.Thread.run(Thread.java:829) [?:?]
        Caused by: shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Error resolving artifact org.ops4j.pax.logging:pax-logging-log4j2:jar:2.0.12
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:413) ~[?:?]
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:215) ~[?:?]
                at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:192) ~[?:?]
at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:247) ~[?:?]
                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:52) ~[?:?]
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60) ~[?:?]
                ... 6 more

and that is what the log file says. Any idea what I could do to fix this issue?

Many thanks in advance for your help.

Have you updated java to version 11? That’s available within openhabian-config tool and if you search the forum with your error message, you find some comments on this

Thanks Matthias

I did not manually install Java 11, I thought this would be done automatically.

In openhabian-config I guess it is in the menu 40 and then 45. But which one to choose: Zulu 11 OpenJDK 32-bit or AdoptOpenJDK 11

Hi Sascha

Ok, I did a fresh install again…and tested if the system was working before restoring… and it did work!

After restoring, karaf console and the web server are not working anymore. So, same behavior as yesterday night. The restoring procedure seems to destroy the system.

Any ideas, how to fix that?

I’d check those threads, since they pop up when you search for your error message

Error downloading mvn:org.ops4j.pax.logging/pax-logging-api/2.0.12

Probably the mentioned files gets overwritten after restoring the backup…

Dear Sascha

After some trying at least I got the web server working. in my case I had to change the org.apache.karaf.features.xml file to:

<?xml version="1.0" encoding="UTF-8"?>
<featuresProcessing xmlns="http://karaf.apache.org/xmlns/features-processing/v1.0.0">

    <bundleReplacements>
        <bundle originalUri="mvn:org.ops4j.pax.logging/pax-logging-api/[0,2.0.13)" replacement="mvn:org.ops4j.pax.logging/pax-logging-api/2.0.13" mode="maven" />
        <bundle originalUri="mvn:org.ops4j.pax.logging/pax-logging-log4j2/[0,2.0.13)" replacement="mvn:org.ops4j.pax.logging/pax-logging-log4j2/2.0.13" mode="maven" />
        <bundle originalUri="mvn:org.ops4j.pax.logging/pax-logging-logback/[0,2.0.13)" replacement="mvn:org.ops4j.pax.logging/pax-logging-logback/2.0.13" mode="maven" />
    </bundleReplacements>

</featuresProcessing>

However, when I want to lo access thekaraf Console i get follwing error message:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
"Some Code XXXXXXXXXXXXXXXXXXXX".
Please contact your system administrator.
Add correct host key in /home/openhabian/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/openhabian/.ssh/known_hosts:1
  remove with:
  ssh-keygen -f "/home/openhabian/.ssh/known_hosts" -R "[localhost]:8101"
RSA host key for [localhost]:8101 has changed and you have requested strict checking.
Host key verification failed.

What do I have to do here?

Not really sure - i’m not doing more than searching the forum for related errors and paste them here for you. So the most recent thread with a similar problem is (strangely i was involved there as well :wink: )

But the error message itself basically tells you what to to:

Add correct host key in /home/openhabian/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/openhabian/.ssh/known_hosts:1
remove with:
ssh-keygen -f “/home/openhabian/.ssh/known_hosts” -R “[localhost]:8101”

So maybe the known_hosts file is also part of the backup and has been replaced.
But i’m not really an expert in this domain

Run the command shown:

ssh-keygen -f “/home/openhabian/.ssh/known_hosts” -R “[localhost]:8101”

Then try again to connect to the karaf console.

1 Like

Dear Sascha

I didn’t want to appear lazy, I was just scared to mess something up again. Anyway, I followed the steps as proposed and anything seems to work now.

So, thanks a lot for your help and happy new year then!

openHAB has always said downgrading was is not supported. the 3.1 backup should have been restored on 3.1 & then upgraded to get converted to 3.2.

Yes, it was more to nail down the issue, if it is because of the upgrade itself or because of a wrong backup.

hi I have the same problem, but in / home/openhabian I only have the readme.txt file, I don’t have .ssh / known_hosts “-R” [localhost]: 8101 "
how can i solve? thank you

I was also bitten by this but was able to restore from backup anyway!

The heart of the problem is as follows. If you run openhabian and restore a backup from, say 3.1 to a 3.2 install, a lot of files with references to file paths and library versions are overwritten. What you get is a totally broken install.

I think it would be better for the openhabian restore process to check versions and simply prevent a restore if the openhab version is different!

In my case I had no usable 3.1 install to revert to, so I had to somehow save my rather involved configuration. Long story short - if you unpack the openhabian-backup-date.zip, you can selectively restore the configuration files you need.

You should more or less get everything from the “conf” directory and the "jsondb’ directory from “userdata”. Your mileage may vary, but I was able to rescue my configuration this way

2 Likes

That was why I suggested restoring to 3.1 FIRST & THEN upgrading,

No, that’s a user’s own duty.
Restoring a (config) backup taken on a software version A to that software’s version B is a fundamental user mistake.
Devs can easily waste time of theirs adding all sorts of checks but in the end no software can sufficiently prevent users from doing silly things and there is no alternative to understanding the thing right.

BTW your issue and request haven’t anything to do with openHABian.
That just calls openhab-cli script which is part of the openHAB distribution and as such part of every install. If you want that to be enhanced, go code that check and provide it back to the community as a pull request on openhab-distro.

True! If you have something to revert to!

Usually I’m Mr. Backup himself but in this specific case my backups were useless and I could not for the life of me install an older version of openHAB via openhabian. It always automagically upgraded to the current 3.2 version after install.

I am pretty sure this could happen to other people too, so I wanted to document my way out of the situation. This is after all a community resource.

That IS a pain then. Sorry but I am out of ideas.

You know, I also do some software development, and would sometimes even sympathize with your point of view. But in reality, it is rather arrogant!

For example, I was pretty surprised to discover that the backup archive included not only the configuration changes made by the user but lots of specific installation details (like paths etc.) which lead to the described problem. Now, I do not debate this approach itself, since I’m sure there were good reasons for taking it. But I have seen this done differently in other software projects and cross version restores are NOT always a fundamental mistake, but even supported.

As an example, back in openHab 1.x days, the upgrade instructions pretty much went like: “create new install - copy over old config - done”

So I do think it is too easy, even for experienced users to fall into this trap. I do not say openHAB should allow for cross-version backups, but this is NOT documented well enough.

(Later edit: The problem we’re talking about ist not only that cross version restores do not work. If you try to restore a 3.1 backup to a 3.2 install you will break openHAB and have to do a fresh installation!)

Now can I fix it myself and send a pull request. Maybe but to be honest probably not. I unfortunately have too many eggs in my basket already and can easily avoid the problem in the future. Maybe I could add some warnings to the documentation, let’s see.

2 Likes

You don’t need to be sorry. True, it IS a pain, but this is why I documented how to get out of it :wink: