Zwave and ipcamera issue

No changes on the binding with 100ms delayed start. I think we’ll continue spinning our wheels until the serial bug gets fixed.

It does appear to be this as I am hitting it with the Zigbee binding. 2 cameras it works, any more and the zigbee coordinator will stay at UNKNOWN status and not go online. When this happens if you uninstall and reinstall the zigbee binding, it then will not offer the serial port as a suggested port to use so I am pretty certain this points to the serial library being the root cause and hence why Zigbee and Zwave are both affected.

There was a change merged for the modbus binding here that may be worth looking into for any other affected bindings…

[modbus] Workaround for nrjavaserial issues: do not disconnect serial… · fwolter/openhab-core@ebf3f84 (github.com)

I seem to have fixed this issue (at least on my system with Zigbee binding) by throwing away the netty server and moving to the OH3 8080 servlet. Precompiled jar is here if anyone wants to help test, but there is a breaking change as the serving is now done differently, see github description…

[ipcamera] [WIP] - Move to using port 8080 servlet not Netty. by Skinah · Pull Request #11160 · openhab/openhab-addons (github.com)

1 Like

@matt1
I tried this with my test system and zwave without success. I’m seeing the same behavior with the new SNAPSHOT binding you provided.

Has anyone else tried this with zwave?

@msexton187 Are you sure the newer version is being used? Does the camera now only work on the newer urls mentioned in the github?

I don’t use Zwave but the same issue was happening for me with Zigbee. The zigbee coordinator stick would stay as unknown and would not come online until I paused all cameras except 2, rebooted and then after the zigbee came online I could then unpause the cameras and get everything working.

I did an interesting test where if I uninstalled zigbee, rebooted and got all cameras working and then installed and setup zigbee, the issue was still present and I could not get zigbee working. I don’t believe it is caused by network traffic when the serial port is getting opened, as this test ruled that theory out as the zigbee binding and serial ports were not touched until after the network traffic was zero.

After using this newer jar I can leave all 4 cameras enabled and reboot or restart as many times as I wish and it all stays working.

Since the changes made should not have anything to do with zigbee or serial ports it is not clear why this has made a difference on my system. It also does not make sense why the number of cameras makes a difference.

How many cameras do you have? Do you have more than 4 when you reboot? How fast is your server, is it a PI?

When I tested it I confirmed I was using the latest. Initially I had two versions running, but then I uninstalled both and reinstalled the git-hub jar. The SNAPSHOT version was …828…

I didn’t test the exact scenario that you did. I removed all things for z-wave and ipcamera. Added the serial controller and let it auto detect. Once they all showed up I rebooted. All came back online. Then I added my 3 cameras. All were online. I rebooted and all z-wave things stayed offline. Since this was the same behavior as last time I decided not to test any further.

As for hardware, this is a small server running an i7 and debian 64bit loaded using openHABian. My real system is a Pi4, and it works fine with all cameras and all z-wave things. It’s never had an issue. It’s only been my non-PI system. It blows my mind that crappy Raspberry PI4 performs without issue, but the much beefier server acts up. Presently I’m hanging my hat on version 5.3 of NVSerial, but I’m also skeptical that will help.

Smells like a concurrency issue, where the bigger box doing more things in parallel is is the root cause. The little box plodding along one step at a time gets results in the order it expected.
e.g.
Start process A
Start process B (but not much happens because A has the resource)
A results
B results
all good.
-vs-
Start process A
Start process B (this time we can run freely)
B results
mess up processing B results because A not back yet.

Could be. I seem to recall @matt1 adding the largest startup delay he could to the ipcamera binding, but that didn’t help either. Once the new nvserial library is added I’ll start testing again. At this point I don’t know what else to try.

The startup delay would not have done anything. I can install and setup all zigbee AFTER everything has started and it fails if I use the older binding. New binding and I can no longer reproduce any issues. I took a deeper look into the Netty library and it actually can be used to talk to serial ports so perhaps it is conflicting in some way, but still it is weird that a few cameras work and it only poses a problem when going over a certain number. I think it would be worth updating the Netty library to the latest version on a system to see if that solves the issue.

Not sure if it would work, but download and drop this jar into the addons folder…
https://repo1.maven.org/maven2/io/netty/netty-all/4.1.67.Final/netty-all-4.1.67.Final.jar

Then do a bundle:list in the openHAB console and check that it is only using this version of netty in the list.

I get this error

openhab> bundle:install https://repo1.maven.org/maven2/io/netty/netty-all/4.1.67.Final/netty-all-4.1.67.Final.jar                                                                                                                
Bundle IDs: 
Error executing command: Error installing bundles:
	Unable to install bundle https://repo1.maven.org/maven2/io/netty/netty-all/4.1.67.Final/netty-all-4.1.67.Final.jar: org.osgi.framework.BundleException: OSGi R3 bundle not supported

If installing the all in one jar does not work, then installing just the Jars that is needed will work…

All these are needed, but they are inside the all in one bundle.
netty-buffer
netty-codec
netty-codec-http
netty-common
netty-handler
netty-resolver
netty-transport

You can either download and drop the jar files into the addons folder, OR you can use the console to download and install them. Either way will work but it looks like your syntax is wrong…

bundle:install mvn:<groupId>/<artifactId>/<version>

So for example try this if you don’t want to download the jar manually…

bundle:install mvn:io.netty/netty-buffer/4.1.67.Final

Then do bundle:list and make sure the older version is not also loaded.

Ah, I forgot to mention that I downloaded the jar and placed it in the addon folder. It didn’t install the bundles as I expected. I tried restarting openHAB and rebooting. That’s when I tried to do it manually.

Current status.
4.1.67.Final jar is loaded in the addon folder, but the new bundles aren’t being loaded.

openhab> bundle:list |grep Netty                                                                                                                         
240 x Active x  80 x 4.1.63.Final          x Netty/Buffer
241 x Active x  80 x 4.1.63.Final          x Netty/Codec
242 x Active x  80 x 4.1.63.Final          x Netty/Codec/HTTP
243 x Active x  80 x 4.1.63.Final          x Netty/Codec/Socks
244 x Active x  80 x 4.1.63.Final          x Netty/Common
245 x Active x  80 x 4.1.63.Final          x Netty/Handler
246 x Active x  80 x 4.1.63.Final          x Netty/Handler/Proxy
247 x Active x  80 x 4.1.63.Final          x Netty/Resolver
248 x Active x  80 x 4.1.63.Final          x Netty/Transport
249 x Active x  80 x 4.1.63.Final          x Netty/Transport/Native/Epoll
250 x Active x  80 x 4.1.63.Final          x Netty/Transport/Native/Unix/Common

So I tried the new command as you suggested.

openhab> bundle:install mvn:io.netty/netty-buffer/4.1.67.Final
Bundle IDs: 
Error executing command: Error installing bundles:
	Unable to install bundle mvn:io.netty/netty-buffer/4.1.67.Final: org.osgi.framework.BundleException: Error reading bundle content.

No luck there either.

I started this test with my working production system (with the newer ipcamera jar).
Uninstalled the newer jar and went back to the merged ipcamera binding and it kept working which I expected.
Restarted just openHAB, and it still kept working with all cameras enabled which I did not expect to occur.
Full reboot and also a cache clean, still it keeps working.
I then messed with the Netty libs and broke the mqtt binding in the process as it uses Netty.
Because mqtt did not start, changing the order the bindings start in, the issue now returned to my system.
uninstall and reinstall of MQTT binding, fixed the mqtt not starting, but now the zigbee issue remained on my system.
Uninstalled merged ipcamera binding and reboot fixed the zigbee issue.
Dropped back in the newer ipcamera jar into the addons folder, did a reboot and the issue is fixed again.

Decided I needed to double confirm by breaking and fixing twice.

Uninstalled the MQTT binding.
Now that all bindings that use Netty were uninstalled (addons jars do not count) netty was not getting installed automatically so the ipcamera failed to start.
Installed newer Netty jars in console.
Restarted and I could not reproduce the issue with zigbee, all works.
Installed mqtt binding again and updated the netty libs it used to make sure only 1 version is in use and not a mixture.
Restarted multiple times and zigbee keeps working.
I changed multiple things so the result was different.

Conclusion: Nothing conclusive. Appears to make a difference in which order the bindings get installed in or perhaps the order they show up in when you do a bundle:list I think it is worth upgrading Netty as that will place it last in the bundle:list and perhaps you currently have netty getting loaded before the zwave binding or very close to it? Just a theory.

Commands that worked to upgrade netty AFTER first bundle:uninstall xxx using the number from the first column when you do a bundle:list.

bundle:install https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.67.Final/netty-buffer-4.1.67.Final.jar

bundle:install https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.67.Final/netty-codec-4.1.67.Final.jar

bundle:install https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.67.Final/netty-codec-http-4.1.67.Final.jar

bundle:install https://repo1.maven.org/maven2/io/netty/netty-common/4.1.67.Final/netty-common-4.1.67.Final.jar

bundle:install https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.67.Final/netty-handler-4.1.67.Final.jar

bundle:install https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.67.Final/netty-resolver-4.1.67.Final.jar

bundle:install https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.67.Final/netty-transport-4.1.67.Final.jar

Next ones are for mqtt binding:

bundle:install https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.67.Final/netty-codec-socks-4.1.67.Final.jar

bundle:install https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.67.Final/netty-handler-proxy-4.1.67.Final.jar

bundle:install https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.67.Final/netty-transport-native-epoll-4.1.67.Final.jar

bundle:install https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.67.Final/netty-transport-native-unix-common-4.1.67.Final.jar

I would be interested to hear your findings as to where the zwave binding is in relation to the Netty libs and the ipcamera binding when you do bundle:list
Then after upgrading Netty and messing with the order of installing bindings if you get a different result.

Netty is listed prior to any bindings with my non-funcioning system.

First I removed all non-jar bindings and bundles mentioned: zwave, netty, and mqtt. Rebooted and confirmed Netty wasn’t loaded. At this point ipcamera jar is loaded and it’s last in the list. I installed the zwave binding and added the controller. It came online. Netty and serial bundles are now last in the list. The zwave things were autodetected as expected. At this point ipcamera binding is loaded, but no things are created. I rebooted and the zwave things came back as I expected. Then I added my three hikvision camera things successfully and rebooted. Interestingly enough everything came back. At this point I was still without MQTT things, so I reinstalled that binding and rebooted. All Zwave things failed to load.
These bundles are now last:

322 │ Active │  80 │ 2.27                  │ Dagger
323 │ Active │  80 │ 1.2.2                 │ hivemq-mqtt-client
324 │ Active │  80 │ 4.1.63.Final          │ Netty/Codec/Socks
325 │ Active │  80 │ 4.1.63.Final          │ Netty/Handler/Proxy
326 │ Active │  80 │ 4.1.63.Final          │ Netty/Transport/Native/Epoll
327 │ Active │  80 │ 4.1.63.Final          │ Netty/Transport/Native/Unix/Common
328 │ Active │  80 │ 2.2.19                │ rxjava
329 │ Active │  80 │ 2.1.2                 │ Java Concurrency Tools Core Library
330 │ Active │  80 │ 3.2.0.202108240413    │ openHAB Add-ons :: Bundles :: MQTT Broker Binding
331 │ Active │  81 │ 3.2.0.202108240502    │ openHAB Add-ons :: Bundles :: MQTT EspMilightHub
332 │ Active │  81 │ 3.2.0.202108240502    │ openHAB Add-ons :: Bundles :: MQTT Things and Channels
333 │ Active │  82 │ 3.2.0.202108240504    │ openHAB Add-ons :: Bundles :: MQTT HomeAssistant Convention
334 │ Active │  82 │ 3.2.0.202108240504    │ openHAB Add-ons :: Bundles :: MQTT Homie Convention
335 │ Active │  80 │ 3.2.0.202108240309    │ openHAB Core :: Bundles :: MQTT Transport
336 │ Active │  80 │ 1.0.3                 │ reactive-streams

I uninstalled the MQTT binding again and rebooted. Zwave items returned as expected. I installed MQTT again and rebooted. Zwave items didn’t load again as expected. I manually uninstalled all the Netty bundles from the console and reinstalled the zwave specific ones with the commands you suggested. At this point those 7 are last in the bundle list. I rebooted and the zwave things loaded properly. Next I installed the remaining netty/mqtt bundles and rebooted. The zwave things failed to load, but the mqtt things loaded properly. At this point the binding order (numerically) is ipcamera, zwave, mqtt, netty-zwave, then netty-mqtt. I removed the 4 netty-mqtt bundles and rebooted. Zwave items returned as expected. I removed the zwave-netty bundles and rebooted. I then loaded the 4 mqtt-netty bundles and rebooted. Oddly all zwave items came back, but the MQTT and ipcameras remained offline. The only bundles missing at this point are the 7 netty-zwave bundles. To confirm the ipcamera version is 3.2.0.202108281202 (I thought this version removed netty from ipcamera). Next I reinstalled the 7 netty-zwave bundles and rebooted. Shockingly the system returned fully functioning. zwave, mqtt, and cameras. The final bundle order is:

openhab> bundle:list
START LEVEL 100 , List Threshold: 50
 ID │ State    │ Lvl │ Version               │ Name
────┼──────────┼─────┼───────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 31 │ Active   │  80 │ 2.12.3                │ Jackson-annotations
 32 │ Active   │  80 │ 2.12.3                │ Jackson-core
 33 │ Active   │  80 │ 2.12.3                │ jackson-databind
 34 │ Active   │  80 │ 2.12.3                │ Jackson-dataformat-YAML
 35 │ Active   │  80 │ 2.12.3                │ Jackson datatype: JSR310
 36 │ Active   │  80 │ 6.2.4                 │ Woodstox
 37 │ Active   │  80 │ 2.8.6                 │ Gson
 38 │ Active   │  80 │ 27.1.0.jre            │ Guava: Google Core Libraries for Java
 39 │ Active   │  80 │ 30.1.0.jre            │ Guava: Google Core Libraries for Java
 40 │ Active   │  80 │ 1.0.1                 │ Guava InternalFutureFailureAccess and InternalFutures
 41 │ Active   │  80 │ 3.0.0.v201312141243   │ Google Guice (No AOP)
 43 │ Active   │  80 │ 4.8.35.v20190528-1517 │ ClassGraph
 44 │ Active   │  80 │ 2.1.9                 │ swagger-annotations
 45 │ Active   │  80 │ 2.1.9                 │ swagger-core
 46 │ Active   │  80 │ 2.1.9                 │ swagger-integration
 47 │ Active   │  80 │ 2.1.9                 │ swagger-jaxrs2
 48 │ Active   │  80 │ 2.1.9                 │ swagger-models
 49 │ Active   │  80 │ 2.0.0                 │ Jakarta Annotations API
 50 │ Active   │  80 │ 2.0.0                 │ Jakarta Dependency Injection
 51 │ Active   │  80 │ 2.0.2                 │ Jakarta Bean Validation API
 53 │ Active   │  80 │ 2.3.3                 │ Jakarta XML Web Services API
 56 │ Active   │  80 │ 3.5.7                 │ JmDNS
 57 │ Active   │  80 │ 2.1.2                 │ Units of Measurement API
 59 │ Active   │  80 │ 0.5.10                │ Jollyday
 60 │ Active   │  80 │ 3.2.0.v201101311130   │ ANTLR Runtime
 61 │ Active   │  80 │ 1.2.2                 │ org.apache.aries.component-dsl.component-dsl
 62 │ Active   │  80 │ 1.0.1                 │ Apache Aries JAX-RS Specification API
 63 │ Active   │  80 │ 2.0.0                 │ Apache Aries JAX-RS Whiteboard
 65 │ Active   │  80 │ 3.12.0                │ Apache Commons Lang
 66 │ Active   │  80 │ 3.4.3                 │ Apache CXF Core
 67 │ Active   │  80 │ 3.4.3                 │ Apache CXF Runtime JAX-RS Frontend
 68 │ Active   │  80 │ 3.4.3                 │ Apache CXF JAX-RS Client
 69 │ Active   │  80 │ 3.4.3                 │ Apache CXF JAX-RS Server-Side Events Support
 70 │ Active   │  80 │ 3.4.3                 │ Apache CXF Runtime Security functionality
 71 │ Active   │  80 │ 3.4.3                 │ Apache CXF Runtime HTTP Transport
 80 │ Active   │  80 │ 4.3.2                 │ Apache Karaf :: OSGi Services :: Event
 91 │ Active   │  80 │ 1.0.0.2               │ Apache ServiceMix :: Bundles :: javax.inject
 99 │ Active   │  80 │ 2.2.5                 │ XmlSchema Core
100 │ Active   │  80 │ 4.19.0                │ Apache XBean :: OSGI Bundle Utilities
101 │ Active   │  80 │ 4.19.0                │ Apache XBean :: Classpath Resource Finder
102 │ Active   │  80 │ 0.7.7                 │ jose4j
103 │ Active   │  80 │ 2.17.0.v20190920-0401 │ EMF Common
104 │ Active   │  80 │ 2.20.0.v20190920-0401 │ EMF Ecore
105 │ Active   │  80 │ 2.14.0.v20190528-0725 │ EMF Change Model
106 │ Active   │  80 │ 2.16.0.v20190528-0725 │ EMF XML/XMI Persistence
107 │ Active   │  80 │ 3.13.0.v20200828-1034 │ Common Eclipse Runtime
136 │ Active   │  80 │ 0.10.0.v20201105-1103 │ org.eclipse.lsp4j
137 │ Active   │  80 │ 0.10.0.v20201105-1103 │ org.eclipse.lsp4j.jsonrpc
138 │ Active   │  80 │ 2.25.0.v20210301-0821 │ Xtend Runtime Library
139 │ Active   │  80 │ 2.25.0.v20210301-0821 │ Xtend Macro Interfaces
140 │ Active   │  80 │ 2.25.0.v20210301-0843 │ Xtext
141 │ Active   │  80 │ 2.25.0.v20210301-0909 │ Xtext Common Types
142 │ Active   │  80 │ 2.25.0.v20210301-0843 │ Xtext IDE Core
143 │ Active   │  80 │ 2.25.0.v20210301-0843 │ Xtext Utility
144 │ Active   │  80 │ 2.25.0.v20210301-0909 │ Xbase Model
145 │ Active   │  80 │ 2.25.0.v20210301-0909 │ Xbase Generic IDE Services
146 │ Active   │  80 │ 2.25.0.v20210301-0821 │ Xbase Runtime Library
150 │ Active   │  80 │ 9.1.0                 │ org.objectweb.asm.commons
151 │ Active   │  80 │ 9.1.0                 │ org.objectweb.asm.tree
152 │ Active   │  80 │ 9.1.0                 │ org.objectweb.asm.tree.analysis
153 │ Active   │  80 │ 9.1.0                 │ org.objectweb.asm.util
154 │ Active   │  80 │ 3.2.0.202108240301    │ openHAB Core :: Bundles :: Core
155 │ Active   │  80 │ 3.2.0.202108240307    │ openHAB Core :: Bundles :: Audio
156 │ Active   │  80 │ 3.2.0.202108240304    │ openHAB Core :: Bundles :: JAAS Authentication
157 │ Active   │  80 │ 3.2.0.202108240306    │ openHAB Core :: Bundles :: OAuth2Client
158 │ Active   │  80 │ 3.2.0.202108240311    │ openHAB Core :: Bundles :: Automation
159 │ Active   │  80 │ 3.2.0.202108240318    │ openHAB Core :: Bundles :: Automation Media Modules
160 │ Active   │  80 │ 3.2.0.202108240314    │ openHAB Core :: Bundles :: Automation Script Modules
161 │ Active   │  80 │ 3.2.0.202108240318    │ openHAB Core :: Bundles :: Automation Script RuleSupport
162 │ Active   │  80 │ 3.2.0.202108240315    │ openHAB Core :: Bundles :: Automation REST API
163 │ Active   │  80 │ 3.2.0.202108240310    │ openHAB Core :: Bundles :: Binding XML
164 │ Active   │  80 │ 3.2.0.202108240306    │ openHAB Core :: Bundles :: Configuration Core
165 │ Active   │  80 │ 3.2.0.202108240310    │ openHAB Core :: Bundles :: Configuration Discovery
166 │ Active   │  80 │ 3.2.0.202108240316    │ openHAB Core :: Bundles :: Configuration mDNS Discovery
167 │ Active   │  80 │ 3.2.0.202108240309    │ openHAB Core :: Bundles :: Configuration Dispatcher
168 │ Active   │  75 │ 3.2.0.202108240307    │ openHAB Core :: Bundles :: Configuration XML
169 │ Active   │  80 │ 3.2.0.202108240307    │ openHAB Core :: Bundles :: Ephemeris
170 │ Active   │  80 │ 3.2.0.202108240307    │ openHAB Core :: Bundles :: ID
171 │ Active   │  80 │ 3.2.0.202108240303    │ openHAB Core :: Bundles :: Console
172 │ Active   │  80 │ 3.2.0.202108240305    │ openHAB Core :: Bundles :: Console for OSGi runtime Karaf
173 │ Active   │  80 │ 3.2.0.202108240301    │ openHAB Core :: Bundles :: HTTP Interface
174 │ Active   │  80 │ 3.2.0.202108240304    │ openHAB Core :: Bundles :: HTTP Interface Authentication
176 │ Active   │  80 │ 3.2.0.202108240314    │ openHAB Core :: Bundles :: Monitor
177 │ Active   │  80 │ 3.2.0.202108240303    │ openHAB Core :: Bundles :: Network I/O
178 │ Active   │  80 │ 3.2.0.202108240303    │ openHAB Core :: Bundles :: REST Interface
179 │ Active   │  80 │ 3.2.0.202108240310    │ openHAB Core :: Bundles :: Audio REST Interface
180 │ Active   │  80 │ 3.2.0.202108240309    │ openHAB Core :: Bundles :: Authentication Support for the REST Interface
181 │ Active   │  80 │ 3.2.0.202108240314    │ openHAB Core :: Bundles :: REST Interface :: Core
182 │ Active   │  80 │ 3.2.0.202108240316    │ openHAB Core :: Bundles :: REST mDNS Announcer
183 │ Active   │  80 │ 3.2.0.202108240319    │ openHAB Core :: Bundles :: Sitemap REST Interface
184 │ Active   │  80 │ 3.2.0.202108240310    │ openHAB Core :: Bundles :: SSE Interface
185 │ Active   │  80 │ 3.2.0.202108240305    │ openHAB Core :: Bundles :: REST Interface :: Swagger 1
186 │ Active   │  80 │ 3.2.0.202108240319    │ openHAB Core :: Bundles :: UI REST Interface
187 │ Active   │  80 │ 3.2.0.202108240313    │ openHAB Core :: Bundles :: Voice REST Interface
188 │ Active   │  80 │ 3.2.0.202108240313    │ openHAB Core :: Bundles :: mDNS Service
189 │ Active   │  80 │ 3.2.0.202108240307    │ openHAB Core :: Bundles :: Karaf Integration
190 │ Active   │  80 │ 3.2.0.202108240309    │ openHAB Core :: Bundles :: Model Core
191 │ Active   │  80 │ 3.2.0.202108240312    │ openHAB Core :: Bundles :: Model Items
192 │ Active   │  80 │ 3.2.0.202108240316    │ openHAB Core :: Bundles :: Model Item IDE
193 │ Active   │  80 │ 3.2.0.202108240316    │ openHAB Core :: Bundles :: Model Items Runtime
194 │ Active   │  80 │ 3.2.0.202108240322    │ openHAB Core :: Bundles :: Language Server
195 │ Active   │  80 │ 3.2.0.202108240313    │ openHAB Core :: Bundles :: Model Persistence
196 │ Active   │  80 │ 3.2.0.202108240315    │ openHAB Core :: Bundles :: Model Persistence IDE
197 │ Active   │  80 │ 3.2.0.202108240315    │ openHAB Core :: Bundles :: Model Persistence Runtime
198 │ Active   │  80 │ 3.2.0.202108240320    │ openHAB Core :: Bundles :: Model Rules
199 │ Active   │  80 │ 3.2.0.202108240321    │ openHAB Core :: Bundles :: Model Rule IDE
200 │ Active   │  80 │ 3.2.0.202108240321    │ openHAB Core :: Bundles :: Model Rules Runtime
201 │ Active   │  80 │ 3.2.0.202108240317    │ openHAB Core :: Bundles :: Model Script
202 │ Active   │  80 │ 3.2.0.202108240320    │ openHAB Core :: Bundles :: Model Script IDE
203 │ Active   │  80 │ 3.2.0.202108240320    │ openHAB Core :: Bundles :: Model Script Runtime
204 │ Active   │  80 │ 3.2.0.202108240313    │ openHAB Core :: Bundles :: Model Sitemap
205 │ Active   │  80 │ 3.2.0.202108240317    │ openHAB Core :: Bundles :: Model Sitemap IDE
206 │ Active   │  80 │ 3.2.0.202108240318    │ openHAB Core :: Bundles :: Model Sitemap Runtime
207 │ Active   │  80 │ 3.2.0.202108240317    │ openHAB Core :: Bundles :: Model Thing
208 │ Active   │  80 │ 3.2.0.202108240318    │ openHAB Core :: Bundles :: Model Thing IDE
209 │ Active   │  80 │ 3.2.0.202108240319    │ openHAB Core :: Bundles :: Model Thing Runtime
210 │ Active   │  80 │ 3.2.0.202108240308    │ openHAB Core :: Bundles :: Persistence
211 │ Active   │  80 │ 3.2.0.202108240304    │ openHAB Core :: Bundles :: Semantics
212 │ Active   │  80 │ 3.2.0.202108240310    │ openHAB Core :: Bundles :: JSON Storage
213 │ Active   │  80 │ 3.2.0.202108240307    │ openHAB Core :: Bundles :: Thing
214 │ Active   │  75 │ 3.2.0.202108240311    │ openHAB Core :: Bundles :: Thing XML
215 │ Active   │  80 │ 3.2.0.202108240308    │ openHAB Core :: Bundles :: Transformation Service
216 │ Active   │  80 │ 3.2.0.202108240317    │ openHAB Core :: Bundles :: UI
217 │ Active   │  80 │ 3.2.0.202108240319    │ openHAB Core :: Bundles :: UI Icon Support
218 │ Active   │  80 │ 3.2.0.202108240310    │ openHAB Core :: Bundles :: Voice
219 │ Active   │  80 │ 3.2.0.202107240911    │ openHAB UI :: Bundles :: Main UI
226 │ Active   │  80 │ 1.0.0.201802012106    │ org.osgi:org.osgi.service.jaxrs
227 │ Active   │  80 │ 1.5.0                 │ ThreeTen-Extra
228 │ Active   │  80 │ 1.27.0                │ SnakeYAML
229 │ Active   │  80 │ 2.0.1                 │ SI Units
230 │ Active   │  80 │ 2.0.1                 │ SI Quantities
231 │ Active   │  80 │ 4.2.1                 │ Stax2 API
232 │ Active   │  80 │ 2.1.2                 │ Units of Measurement Reference Implementation
233 │ Active   │  80 │ 2.1.0                 │ Units of Measurement Common Library for Java
234 │ Active   │  80 │ 1.4.17                │ XStream Core
238 │ Active   │  80 │ 5.5.0                 │ jna
239 │ Active   │  80 │ 5.5.0                 │ jna-platform
252 │ Active   │  80 │ 1.0.0                 │ IO.Socket Engine Client
253 │ Active   │  80 │ 1.0.0                 │ IO.Socket Socket Client
254 │ Active   │  80 │ 20180813.0.0          │ JSON in Java
256 │ Active   │  80 │ 3.7.2                 │ Apache Commons Net
257 │ Active   │  80 │ 3.8.1.1               │ Apache ServiceMix :: Bundles :: okhttp
258 │ Active   │  80 │ 1.13.0.1              │ Apache ServiceMix :: Bundles :: okio
260 │ Active   │  80 │ 2.6.0                 │ JUPnP Library
261 │ Active   │  80 │ 3.2.0.202108240336    │ openHAB Add-ons :: Bundles :: Amazon Echo Control Binding
262 │ Active   │  80 │ 3.2.0.202108240336    │ openHAB Add-ons :: Bundles :: Ambient Weather Binding
263 │ Active   │  80 │ 3.2.0.202108240337    │ openHAB Add-ons :: Bundles :: Astro Binding
264 │ Active   │  80 │ 3.2.0.202108240350    │ openHAB Add-ons :: Bundles :: Exec Binding
265 │ Active   │  80 │ 3.2.0.202108240357    │ openHAB Add-ons :: Bundles :: HTTP Binding
266 │ Active   │  80 │ 3.2.0.202108240359    │ openHAB Add-ons :: Bundles :: iCloud Binding
273 │ Active   │  80 │ 3.2.0.202108240419    │ openHAB Add-ons :: Bundles :: Onkyo Binding
274 │ Active   │  80 │ 3.2.0.202108240425    │ openHAB Add-ons :: Bundles :: Pushover Binding
275 │ Active   │  80 │ 3.2.0.202108240428    │ openHAB Add-ons :: Bundles :: Russound Binding
276 │ Active   │  80 │ 3.2.0.202108240436    │ openHAB Add-ons :: Bundles :: Systeminfo Binding
277 │ Active   │  80 │ 3.2.0.202108240443    │ openHAB Add-ons :: Bundles :: WeatherCompany Binding
279 │ Active   │  80 │ 3.2.0.202108240314    │ openHAB Core :: Bundles :: Configuration UPnP Discovery
287 │ Active   │  80 │ 3.2.0.202108240305    │ openHAB Core :: Bundles :: UPnP Transport
288 │ Active   │  80 │ 3.2.0.202108240447    │ openHAB Add-ons :: Bundles :: IO :: Homekit
289 │ Active   │  80 │ 3.2.0.202108240448    │ openHAB Add-ons :: Bundles :: IO :: openHAB Cloud Connector
290 │ Active   │  80 │ 3.2.0.202108240449    │ openHAB Add-ons :: Bundles :: Persistence Service :: InfluxDB
291 │ Active   │  80 │ 3.2.0.202108240450    │ openHAB Add-ons :: Bundles :: Persistence Service :: MapDB
292 │ Active   │  80 │ 3.2.0.202108240451    │ openHAB Add-ons :: Bundles :: Persistence Service :: RRD4j
293 │ Active   │  75 │ 3.2.0.202108240451    │ openHAB Add-ons :: Bundles :: Transformation Service :: Exec
294 │ Active   │  75 │ 3.2.0.202108240452    │ openHAB Add-ons :: Bundles :: Transformation Service :: JavaScript
295 │ Active   │  75 │ 3.2.0.202108240452    │ openHAB Add-ons :: Bundles :: Transformation Service :: JSonPath
296 │ Active   │  75 │ 3.2.0.202108240353    │ openHAB Add-ons :: Bundles :: Transformation Service :: Map
297 │ Active   │  75 │ 3.2.0.202108240452    │ openHAB Add-ons :: Bundles :: Transformation Service :: RegEx
298 │ Active   │  75 │ 3.2.0.202108240453    │ openHAB Add-ons :: Bundles :: Transformation Service :: Scale
299 │ Active   │  75 │ 3.2.0.202108240453    │ openHAB Add-ons :: Bundles :: Transformation Service :: XPath
300 │ Active   │  75 │ 3.2.0.202108240453    │ openHAB Add-ons :: Bundles :: Transformation Service :: Xslt
301 │ Active   │  80 │ 3.2.0.202107240906    │ openHAB UI :: Bundles :: Basic UI
302 │ Active   │  80 │ 3.2.0.202107240906    │ openHAB UI :: Bundles :: HABPanel UI
303 │ Active   │  80 │ 3.2.0.202107240907    │ openHAB UI :: Bundles :: Icon Set :: Classic
305 │ Active   │  80 │ 3.2.0.202108281202    │ openHAB Add-ons :: Bundles :: IpCamera Binding
314 │ Active   │  80 │ 5.2.1                 │ nrjavaserial
315 │ Active   │  80 │ 3.2.0.202108230349    │ openHAB Add-ons :: Bundles :: ZWave Binding
316 │ Active   │  80 │ 3.2.0.202108240314    │ openHAB Core :: Bundles :: Configuration USB-Serial Discovery
317 │ Active   │  80 │ 3.2.0.202108240318    │ openHAB Core :: Bundles :: Configuration USB-Serial Discovery for Linux using sysfs scanning
318 │ Active   │  80 │ 3.2.0.202108240309    │ openHAB Core :: Bundles :: Configuration Serial
319 │ Active   │  80 │ 3.2.0.202108240305    │ openHAB Core :: Bundles :: Serial Transport
320 │ Active   │  80 │ 3.2.0.202108240306    │ openHAB Core :: Bundles :: Serial Transport for RXTX
321 │ Active   │  80 │ 3.2.0.202108240306    │ openHAB Core :: Bundles :: Serial Transport for RFC2217
337 │ Active   │  80 │ 2.27                  │ Dagger
338 │ Active   │  80 │ 1.2.2                 │ hivemq-mqtt-client
343 │ Active   │  80 │ 2.2.19                │ rxjava
344 │ Active   │  80 │ 2.1.2                 │ Java Concurrency Tools Core Library
345 │ Active   │  80 │ 3.2.0.202108240413    │ openHAB Add-ons :: Bundles :: MQTT Broker Binding
346 │ Active   │  81 │ 3.2.0.202108240502    │ openHAB Add-ons :: Bundles :: MQTT EspMilightHub
347 │ Active   │  81 │ 3.2.0.202108240502    │ openHAB Add-ons :: Bundles :: MQTT Things and Channels
348 │ Active   │  82 │ 3.2.0.202108240504    │ openHAB Add-ons :: Bundles :: MQTT HomeAssistant Convention
349 │ Active   │  82 │ 3.2.0.202108240504    │ openHAB Add-ons :: Bundles :: MQTT Homie Convention
350 │ Active   │  80 │ 3.2.0.202108240309    │ openHAB Core :: Bundles :: MQTT Transport
351 │ Active   │  80 │ 1.0.3                 │ reactive-streams
363 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Codec/Socks
364 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Handler/Proxy
365 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Transport/Native/Epoll
366 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Transport/Native/Unix/Common
367 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Buffer
368 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Codec
369 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Codec/HTTP
370 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Common
371 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Handler
372 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Resolver
373 │ Resolved │  80 │ 4.1.67.Final          │ Netty/Transport

The only thing different that I can is the ipcamera jar, netty version, and binding order. I’ll let this run for a bit and reboot and restart several times. I can’t leave it this way as I’m travelling this weeked, but I can test further on Monday if needed.

Marty

Quick update. When I reboot it comes back normal 50% of the time, but if I restart the openhab.service the zwave items fail to load.

  1. That version is old as I am very busy working on it at the moment, I have uploaded a newer one at the github link. The version contains the date when it was compiled in it.
  2. Netty is still used in the ipcamera binding. Moving forward the Netty is used only for talking back and forth to the camera, the difference is that it is no longer used for serving the files out and is why you need to use new URLS to get anything from the binding after moving to that version.
  3. Netty is used for the ONVIF comms, so if you setup the cameras as generic and supply all the urls manually, then this would halve the amount of lines of code that use Netty. It may cause things to change or it may have no effect. I think this is something worth trying to see the effect as ONVIF is very chatty at startup.
  4. It would be interesting to play with the console command bundle:start-level to change the start level of the netty and ipcamera to 100 to see what happens.

I wont be spending much more time on this as my system is fixed and I did narrow the root of this back to when the serial port is opened. Hopefully an updated serial library will fix this soon, but until then at least we have some potential work arounds.

possible solution?

I’m running the latest SNAPSHOT version plus the ipcamera binding on github without issue. I’m not sure what has change, but it’s working much better now. I’ll continue to test it to see if the issue is truly fixed on my system or not.

1 Like

Thanks for reporting that the snapshots are having better results, that is promising. Also this may explain the problem, see here:

[ipcamera] File descriptor leak · Issue #11301 · openhab/openhab-addons (github.com)

It would be interesting if people posted what the Open file descriptors is reported as being when they do a shell:info command in the openHAB Karaf console, and also what version of the binding they are using.

Upgraded to the nightly snapshot, this looks way better and its the first time in months i have been able to restart and have both the zwave and ipcamera bindings active at the same time (i had to disable ipcamera at reboot to let the zwave serial connection start before). Nice work!

JVM
  Java Virtual Machine        OpenJDK 64-Bit Server VM version 11.0.11+9-LTS
  Version                     11.0.11
  Vendor                      Azul Systems, Inc.
  Pid                         483
  Uptime                      1 hour 5 minutes
  Process CPU time            12 minutes
  Process CPU load            0.00
  System CPU load             0.67
  Open file descriptors       857
  Max file descriptors        1,048,576
  Total compile time          4 minutes