Snapshot 1595: Errors right at startup

I really used the last week to try to set up my production system with a recent snapshot in order to HELP to report bugs and issues so that OH can eventually advance again. I faced several frustrations (which I partially also posted here) and tonight I installed the freshest snapshot 1595 just to verify if some of the errors I was to report were perhaps already resolved.
That is what happens right at startup of OH 2.5 Build 1595 (now bindings installed, no rules, no config, nothing, just start the downloaded files):

Launching the openHAB runtime...

                          __  _____    ____
  ____  ____  ___  ____  / / / /   |  / __ )
 / __ \/ __ \/ _ \/ __ \/ /_/ / /| | / __  |
/ /_/ / /_/ /  __/ / / / __  / ___ |/ /_/ /
\____/ .___/\___/_/ /_/_/ /_/_/  |_/_____/
    /_/                        2.5.0-SNAPSHOT
                               Build #1595

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown openHAB.

openhab> org.apache.karaf.features.internal.util.MultiException: Error restarting bundles:
        Error starting module.
        at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:1005)
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1058)
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:994)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
        Suppressed: org.osgi.framework.BundleException: Error starting module.
                at org.eclipse.osgi.container.Module.doStart(Module.java:590)
                at org.eclipse.osgi.container.Module.start(Module.java:449)
                at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383)
                at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:402)
                at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.startBundle(BundleInstallSupportImpl.java:161)
                at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1149)
                at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:997)
                ... 6 more
        Caused by: java.lang.NoClassDefFoundError: org/bouncycastle/operator/OperatorCreationException
                at java.lang.Class.getDeclaredConstructors0(Native Method)
                at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
                at java.lang.Class.getConstructor0(Unknown Source)
                at java.lang.Class.newInstance(Unknown Source)
                at org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:763)
                at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:716)
                at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:933)
                at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
                at org.eclipse.osgi.container.Module.doStart(Module.java:581)
                ... 12 more
        Caused by: java.lang.ClassNotFoundException: org.bouncycastle.operator.OperatorCreationException cannot be found by org.openhab.core.io.jetty.certificate_2.5.0.201905172343
                at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
                at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
                at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
                at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
                at java.lang.ClassLoader.loadClass(Unknown Source)
                ... 21 more
org.apache.karaf.features.internal.util.MultiException: Error restarting bundles:
        Error starting module.
        at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:1005)
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1058)
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:994)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
        Suppressed: org.osgi.framework.BundleException: Error starting module.
                at org.eclipse.osgi.container.Module.doStart(Module.java:590)
                at org.eclipse.osgi.container.Module.start(Module.java:449)
                at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383)
                at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:402)
                at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.startBundle(BundleInstallSupportImpl.java:161)
                at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1149)
                at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:997)
                ... 6 more
        Caused by: java.lang.NoClassDefFoundError: org/bouncycastle/operator/OperatorCreationException
                at java.lang.Class.getDeclaredConstructors0(Native Method)
                at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
                at java.lang.Class.getConstructor0(Unknown Source)
                at java.lang.Class.newInstance(Unknown Source)
                at org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:763)
                at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:716)
                at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:933)
                at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
                at org.eclipse.osgi.container.Module.doStart(Module.java:581)
                ... 12 more
        Caused by: java.lang.ClassNotFoundException: org.bouncycastle.operator.OperatorCreationException cannot be found by org.openhab.core.io.jetty.certificate_2.5.0.201905172343
                at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
                at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
                at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
                at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
                at java.lang.ClassLoader.loadClass(Unknown Source)
                ... 21 more

Sorry, but should not any developer discover these problems by himself? If even the VERY FIRST startup is blown up with execeptions like hell? I am really willing to test and help but why do we have to see a mess like this?
Don’t get me wrong, I love OH, I am paticipating since more than 4 years, but the recent snapshots are the worst kind of shit I have ever seen.
So I should report now. But why does nobody of the developers care of these messages? I am definetely not the first person to see this, or am I? Then OH IS REALLY DEAD: Otherwise I would ask the developers to improve the code before asking the community to report bugs. Because at the moment you get tons of megabytes of error logs and can’t even tell which one is to report first.

The problem here is: the system is very complex. If e.g. something in openhab-core is changed, probably this component works fine. Problems with these changes that are in openhab2-addons will not show up before this change is merged to openhab-Core. The developer who made that change might not even use openhab-distro (which is the product you are using when installing snapshots) but some other product which is not affected of this error.

Snapshots are build automatically, no manual checks are performed.

Edit: I‘m using S1592 im my production system, I don‘t see these issues. So it has been introduced probably yesterday. No need to yell at the people trying to step forward.

1 Like

I don’t really have much new to add to Jan’s answer but maybe seeing it expressed in a different way would help.

OH is very very complex. It’s split between a dozen or so main GitHub repositories and each repository has it’s own set of developers and maintainers.

I have full confidence that no developer checks in something they know to be broken. The maintainers of a given repo will not merge a change they know to break things.

But the first time that changes from all the different repos come together is in the nightly builds. So it’s too be expected that there will be bugs that made it through the individual repos and unit testing.

Detecting these sorts of errors is the purpose of the SNAPSHOT builds. It’s to detect integration errors.

So the developers are not being lazy or careless. They simply are not in a position to detect these errors. Those users who run the snapshot builds are serving the function that we call in my industry “SwIT”: Software Integration and Test.

1 Like

Remember what you are calling openHAB is a system of systems, probably no single person will have the same setup as others nor will any single developer be able to oversee all dependencies. However we ALL depend on each and every developer to create the core, bundles etc…

See openhab-core#827 and openhab-core#828.