OH2 Z-Wave refactoring and testing... and SECURITY

security
zwave
Tags: #<Tag:0x00007f15d69c1d80> #<Tag:0x00007f15d69c1bc8>

(Dan Cunningham) #3804

I’m running 2.4, but a few weeks old, need to update to a newer build, but for this test I only changed the zwave binding. I’m guessing the lag previously was due to controlling a room which may have 4 or 5 devices that all turn on or off together, this seemed to cause a lot of retires and transactions, now this happens right away.


(Chris Jackson) #3805

Agreed - I don’t necessarily expect that this version should be faster than previous. Mostly I expect that any “slowness” is caused by retries or congestion - but I’m always happy to be shown any logs that show any concrete problems to be solved…

For this version, I’d just be happy if it continues to run without the thread-lock issue! Let’s see :roll_eyes:.


(Dan Cunningham) #3806

Just submitted a ticket with my successful log file, I also pasted a thread dump of two zwave threads that hang around after the binding is stopped. Very excited!


(Chris Jackson) #3807

Got it - thanks.


(Shorty707) #3808

I have groups of all blinds on one floor. sending commands to 8 devices in a group result in quite some delay


(Dan Cunningham) #3809

My Kitchen has 6 lights (3 dimmers and 3 switches), sending a command to the group item results in all turning on under 2 seconds for for me, one of the dimmers seems to take a second longer then the rest.

I do have a somfy zwave device which exposes 5 virtual zwave devices for blinds, these have a more significant delay coordinating the blinds together, but in my case this is due to the somfy radio protocol from the somfy device to the blinds, as the binding sends a command and receives an ack within 2-3 seconds.


(Markus Storm) #3810

I’m using scene switches to toggle scenes to e.g. turn off all lights and lower all the blinds etc at a time.
That’s sometimes resulting in (just guessing, didn’t count) ~20 consecutive zwave commands.
That always has been a bit laggy and I believe still is, but that’s also due to slow OH HW (RPi3).


(Shorty707) #3811

since I am at around 70 zwave devices meanwhile and a whole lot of other stuff in openhab I also consider that my PI2 might be a bootleneck.
Also system health looks fine with low cpu etc. it’s worth a try to just let OH run on my desktop client once to see what the effect would be :slight_smile:


(Dan Cunningham) #3812

I switched to a asus tinker board and am very happy with the performance for the price.


(Dan Cunningham) #3813

@chris , This morning it looks like I have a few stuck threads, maybe the result of a overnight network heal. Let me know if you want a log file for this.

"Thread-6298" Id=36159 in WAITING on lock=java.util.concurrent.FutureTask@1ff95c9
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
    at java.util.concurrent.FutureTask.get(FutureTask.java:191)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager.sendTransaction(ZWaveTransactionManager.java:1131)
    at org.openhab.binding.zwave.internal.protocol.ZWaveController.sendTransaction(ZWaveController.java:520)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:249)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1090)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"pool-59-thread-66" Id=36179 in WAITING on lock=org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter@12e2789
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter.call(ZWaveTransactionManager.java:1059)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter.call(ZWaveTransactionManager.java:1)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

"Thread-6319" Id=36202 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6320" Id=36203 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6321" Id=36204 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6322" Id=36205 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6323" Id=36206 in WAITING on lock=java.util.concurrent.FutureTask@13dba80
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
    at java.util.concurrent.FutureTask.get(FutureTask.java:191)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager.sendTransaction(ZWaveTransactionManager.java:1131)
    at org.openhab.binding.zwave.internal.protocol.ZWaveController.sendTransaction(ZWaveController.java:520)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:249)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6324" Id=36209 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6327" Id=36217 in WAITING on lock=java.util.concurrent.FutureTask@16c53dd
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
    at java.util.concurrent.FutureTask.get(FutureTask.java:191)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager.sendTransaction(ZWaveTransactionManager.java:1131)
    at org.openhab.binding.zwave.internal.protocol.ZWaveController.sendTransaction(ZWaveController.java:520)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:249)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1072)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6328" Id=36218 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6329" Id=36219 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6330" Id=36222 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6331" Id=36223 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6333" Id=36225 in WAITING on lock=java.util.concurrent.FutureTask@1b16cc1
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
    at java.util.concurrent.FutureTask.get(FutureTask.java:191)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager.sendTransaction(ZWaveTransactionManager.java:1131)
    at org.openhab.binding.zwave.internal.protocol.ZWaveController.sendTransaction(ZWaveController.java:520)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:249)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"pool-59-thread-91" Id=36229 in WAITING on lock=org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter@2a8f29
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter.call(ZWaveTransactionManager.java:1059)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter.call(ZWaveTransactionManager.java:1)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

"Thread-6336" Id=36234 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"pool-59-thread-97" Id=36236 in WAITING on lock=org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter@b91f97
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter.call(ZWaveTransactionManager.java:1059)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter.call(ZWaveTransactionManager.java:1)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

"Thread-6339" Id=36239 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6342" Id=36247 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6343" Id=36248 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6344" Id=36249 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6345" Id=36250 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"pool-59-thread-105" Id=36252 in WAITING on lock=org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter@e75d8f
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter.call(ZWaveTransactionManager.java:1059)
    at org.openhab.binding.zwave.internal.protocol.ZWaveTransactionManager$1TransactionWaiter.call(ZWaveTransactionManager.java:1)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

"Thread-6346" Id=36254 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6348" Id=36259 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

"Thread-6349" Id=36260 in TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:276)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.processTransaction(ZWaveNodeInitStageAdvancer.java:222)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.doHealStages(ZWaveNodeInitStageAdvancer.java:1083)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer.access$4(ZWaveNodeInitStageAdvancer.java:1051)
    at org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer$1.run(ZWaveNodeInitStageAdvancer.java:178)

(Chris Jackson) #3814

Thanks - I’ll take a look. From a quick look though, I don’t think this is an issue. The transaction threads are likely fine (unless they stay there indefinitely) as there will be transactions in the queue if things are happening.

Most of these are related to the initialisation / heal - I would have expected these to finish, but battery devices especially may hold this open for a long time. I might name these threads so we can get a better idea of what’s up and make sure there is only one per node.


(Chris Jackson) #3815

Oh, and I guess the fact that there’s no “complaints” is a good sign that (so far) we’ve not seen the Queue Full lock? :sunglasses:


(Dan Cunningham) #3816

They have held constant for at least the last hour, so I’m assuming they are stuck, but I will let it run today and see if they clear. I do have one battery device (lock), the rest are mains devices.


(Dan Cunningham) #3817

I think so! Do you know exactly what the message would be if that happened? I’ll search for it in the logs just to be sure, but so far I have not seen it.


(Chris Jackson) #3818

What do you mean by “stuck”? I don’t think it’s necessarily a problem - for battery devices especially, they might never complete the heal, and so long as there’s only ever 1 heal task per device, it should be ok I think?


(Chris Jackson) #3819

Yes - you get the Queue Full exception and everything stops - I think you’d know as your system would stop working.


(Dan Cunningham) #3820

I do not have this in the log for sure.


(Markus Storm) #3821

Neither do I.

EDIT: still running after 2 days.


(Dan Cunningham) #3822

I admit I’m not familiar with the underlying code, but it seems like these are waiting forever, since I only have one battery device, I’m assuming many of these are for mains devices which I think would have finished by now. How long should a thread hang around in processTransaction for non battery devices?


(Chris Jackson) #3823

Normally, not too long - maybe a few 10s of seconds. But there were only 3 or maybe 4 of these - are they still there if you look again now? (can you provide the dump again)?