Many items stop responding after a while since upgrade to OH 4.3.4

Everything looks fine so far, no hangs or other issues observed! Thanks a lot for your effort! :+1:

1 Like

Unfortunately another hang happened… :confused: there still seems to be something else…?

You will need to give me more information than that.

I re-installed the snapshot binding and stopped/started openHAB again. Since then everything was working fine. Probably something was still active after the first switch to the snapshot…
Sorry for false alert!

1 Like

@AndrewFG I’ve installed your fixed Tado binding using the linked jar file and everything seems to work fine now. Thank you so much for the quick fix!

I’ve recently upgraded to openHAB 4.3.4 and restored from my earlier setup, if that is of interest for further bug searching.

1 Like

Another Tado user here who recently upgraded to 4.3.4 and now OH starts to freeze after a few hours running. Disabling Tado binding and do a restart solves it.

Doing a threaddump when OH hangs gives this result:

root@nuc1:/home/administrator# grep -A 20 "BLOCKED" /tmp/dump3/threads.txt
"OH-thingHandler-1" Id=360 BLOCKED on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513 owned by "OH-thingHandler-2" Id=733
        at org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl.getAccessTokenResponse(OAuthClientServiceImpl.java:336)
        -  blocked on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513
        at org.openhab.binding.tado.internal.auth.OAuthorizerV2.addAuthorization(OAuthorizerV2.java:49)
        at org.openhab.binding.tado.swagger.codegen.api.client.HomeApi.homeState(HomeApi.java:124)
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler.getHomeState(TadoHomeHandler.java:203)
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler.updateHomeState(TadoHomeHandler.java:208)
        at org.openhab.binding.tado.internal.handler.TadoZoneHandler.updateZoneState(TadoZoneHandler.java:316)
        at org.openhab.binding.tado.internal.handler.TadoZoneHandler$1.run(TadoZoneHandler.java:423)
        at java.base@17.0.14/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base@17.0.14/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base@17.0.14/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base@17.0.14/java.lang.Thread.run(Thread.java:840)



"OH-binding-miio-Receiver" Id=361 RUNNABLE (in native)
        at java.base@17.0.14/sun.nio.ch.DatagramChannelImpl.receive0(Native Method)
        at java.base@17.0.14/sun.nio.ch.DatagramChannelImpl.receiveIntoNativeBuffer(DatagramChannelImpl.java:750)
--
"OH-thingHandler-2" Id=733 BLOCKED on org.openhab.binding.tado.internal.handler.TadoHomeHandler@11f972cc owned by "OH-thingHandler-3" Id=734
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler.initializeBridgeStatusAndPropertiesIfOffline(TadoHomeHandler.java:131)
        -  blocked on org.openhab.binding.tado.internal.handler.TadoHomeHandler@11f972cc
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler.onAccessTokenResponse(TadoHomeHandler.java:245)
        at org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl.lambda$0(OAuthClientServiceImpl.java:329)
        at org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl$$Lambda$2199/0x00000007c16b1c08.accept(Unknown Source)
        at java.base@17.0.14/java.util.ArrayList.forEach(ArrayList.java:1511)
        at org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl.refreshToken(OAuthClientServiceImpl.java:329)
        at org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl.getAccessTokenResponse(OAuthClientServiceImpl.java:352)
        at org.openhab.binding.tado.internal.auth.OAuthorizerV2.addAuthorization(OAuthorizerV2.java:49)
        at org.openhab.binding.tado.swagger.codegen.api.client.HomeApi.showHome(HomeApi.java:238)
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler.initializeBridgeStatusAndPropertiesIfOffline(TadoHomeHandler.java:167)
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler$$Lambda$2064/0x00000007c16b8fe0.run(Unknown Source)
        at java.base@17.0.14/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base@17.0.14/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base@17.0.14/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base@17.0.14/java.lang.Thread.run(Thread.java:840)


--
"OH-thingHandler-3" Id=734 BLOCKED on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513 owned by "OH-thingHandler-2" Id=733
        at org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl.getAccessTokenResponse(OAuthClientServiceImpl.java:336)
        -  blocked on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513
        at org.openhab.binding.tado.internal.auth.OAuthorizerV2.addAuthorization(OAuthorizerV2.java:49)
        at org.openhab.binding.tado.swagger.codegen.api.client.HomeApi.showHome(HomeApi.java:238)
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler.initializeBridgeStatusAndPropertiesIfOffline(TadoHomeHandler.java:167)
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler$$Lambda$2064/0x00000007c16b8fe0.run(Unknown Source)
        at java.base@17.0.14/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base@17.0.14/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base@17.0.14/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base@17.0.14/java.lang.Thread.run(Thread.java:840)



"OH-thingHandler-4" Id=735 BLOCKED on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513 owned by "OH-thingHandler-2" Id=733
        at org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl.getAccessTokenResponse(OAuthClientServiceImpl.java:336)
        -  blocked on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513
        at org.openhab.binding.tado.internal.auth.OAuthorizerV2.addAuthorization(OAuthorizerV2.java:49)
        at org.openhab.binding.tado.swagger.codegen.api.client.HomeApi.homeState(HomeApi.java:124)
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler.getHomeState(TadoHomeHandler.java:203)
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler.updateHomeState(TadoHomeHandler.java:208)
        at org.openhab.binding.tado.internal.handler.TadoZoneHandler.updateZoneState(TadoZoneHandler.java:316)
        at org.openhab.binding.tado.internal.handler.TadoZoneHandler$1.run(TadoZoneHandler.java:423)
        at java.base@17.0.14/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base@17.0.14/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base@17.0.14/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base@17.0.14/java.lang.Thread.run(Thread.java:840)



"OH-thingHandler-5" Id=736 BLOCKED on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513 owned by "OH-thingHandler-2" Id=733
        at org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl.getAccessTokenResponse(OAuthClientServiceImpl.java:336)
        -  blocked on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513
        at org.openhab.binding.tado.internal.auth.OAuthorizerV2.addAuthorization(OAuthorizerV2.java:49)
        at org.openhab.binding.tado.swagger.codegen.api.client.HomeApi.homeState(HomeApi.java:124)
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler.getHomeState(TadoHomeHandler.java:203)
        at org.openhab.binding.tado.internal.handler.TadoHomeHandler.updateHomeState(TadoHomeHandler.java:208)
        at org.openhab.binding.tado.internal.handler.TadoZoneHandler.updateZoneState(TadoZoneHandler.java:316)
        at org.openhab.binding.tado.internal.handler.TadoZoneHandler$1.run(TadoZoneHandler.java:423)
        at java.base@17.0.14/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base@17.0.14/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base@17.0.14/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base@17.0.14/java.lang.Thread.run(Thread.java:840)



"OH-eventexecutor-13-1" Id=750 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@7661e77a
        at java.base@17.0.14/jdk.internal.misc.Unsafe.park(Native Method)
        -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@7661e77a
--
"OH-discovery-145" Id=15252 BLOCKED on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513 owned by "OH-thingHandler-2" Id=733
        at org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl.getAccessTokenResponse(OAuthClientServiceImpl.java:336)
        -  blocked on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513
        at org.openhab.binding.tado.internal.auth.OAuthorizerV2.addAuthorization(OAuthorizerV2.java:49)
        at org.openhab.binding.tado.swagger.codegen.api.client.HomeApi.listZones(HomeApi.java:200)
        at org.openhab.binding.tado.internal.discovery.TadoDiscoveryService.discoverZones(TadoDiscoveryService.java:114)
        at org.openhab.binding.tado.internal.discovery.TadoDiscoveryService.startScan(TadoDiscoveryService.java:82)
        at org.openhab.binding.tado.internal.discovery.TadoDiscoveryService$$Lambda$2062/0x00000007c16aad68.run(Unknown Source)
        at java.base@17.0.14/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base@17.0.14/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base@17.0.14/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base@17.0.14/java.lang.Thread.run(Thread.java:840)



"OH-discovery-151" Id=15886 BLOCKED on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513 owned by "OH-thingHandler-2" Id=733
        at org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl.getAccessTokenResponse(OAuthClientServiceImpl.java:336)
        -  blocked on org.openhab.core.auth.oauth2client.internal.OAuthClientServiceImpl@75832513
        at org.openhab.binding.tado.internal.auth.OAuthorizerV2.addAuthorization(OAuthorizerV2.java:49)
        at org.openhab.binding.tado.swagger.codegen.api.client.HomeApi.listZones(HomeApi.java:200)
        at org.openhab.binding.tado.internal.discovery.TadoDiscoveryService.discoverZones(TadoDiscoveryService.java:114)
        at org.openhab.binding.tado.internal.discovery.TadoDiscoveryService.startScan(TadoDiscoveryService.java:82)
        at org.openhab.binding.tado.internal.discovery.TadoDiscoveryService$$Lambda$2062/0x00000007c16aad68.run(Unknown Source)
        at java.base@17.0.14/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base@17.0.14/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base@17.0.14/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base@17.0.14/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base@17.0.14/java.lang.Thread.run(Thread.java:840)



"OH-discovery-152" Id=16024 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@57fd636
        at java.base@17.0.14/jdk.internal.misc.Unsafe.park(Native Method)
        -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@57fd636
        at java.base@17.0.14/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)

Yup. There is a fix in the pipeline.

Very interesting. On my OH 4.3.4 on OpenHABian / RPI4 8Gb I am experiencing similar issues, only without Tado!

A simple reboot may cause all my rule triggers to halt. What follows is usually a day of trial and error - rebooting, clearing the cache, reinstalling the addons and / or OH itself via APT, restart the OH service. After hours, I eventually get lucky to have the triggers back running.

Once in that working state, they are stable as long as the system stays up. No failures with delay or so.

These spooky effects started with the upgrade from OH 4.3.3 to 4.3.4 and some mainstream Raspbian updates. No changes apart from that.

As I mentioned, I do not have anything with Tado. I have Shelly, Homeconnect, Hue, Daikin, Chromecast, Gardena, AVM Fritz, ChatGPT, Ecovacs, Signal and some HTTP bindings.

Question is, what else could it be?

There were not a lot of changes between 4.3.3 and 4.3.4, only 2 changes in core framework related to OAuth. Other changes are about bindings you are not using.

https://github.com/openhab/openhab-distro/releases/tag/4.3.4

@AndrewFG : as you are the author of these 2 changes, do you think possible a link between the problem and your changes ?

Undoubtedly, yes. The introduction of Tado’s new authentication required a quick fix in OH Core #4632 but some users had issues which were resolved via OH Core #4686 but this caused lockups that were finally resolved via OH Core #4699. Note that there is still an unmerged PR for the Tado binding in order to integrate the full functionality of the merged OH Core PRs.

Do any of these bindings use OAuth authentication? I think the answer is yes (at least HomeConnect). The latest fixes to OAuth will be patched in OH v4.3.5…

EDIT: in the meantime turn on log:set TRACE org.openhab.core.auth and let us see what you see…

Interesting, thanks for the quick reply!

Well, and if it is about OAuth, I at least think that this is also used in Signal, and I am using Google TTS as well and for this one I am sure about OAuth.

As long as my system is functional for now, I won’t break it. But as soon as I experience issues again, I’ll trace and share it!

I installed the snapshot jar file and it appears to be working. However, I have 2 Tado bridges with their own accounts. OpenHAB is running on a single RPI. I have selected RFC-8628 with user in the binding settings. For both bridges/accounts I managed to do the initial authentication, but now it shows the set points and values from the one that was authenticated first in both instances. In the Tado app the target temperature for the living room is set at 18 and for the apartment at 13, in OpenHAB it’s 18 for both. And if I change the temperature setting for the apartment within OpenHAB, the living room heating will kick in. (I hope this explanation of what is happening makes sense to someone.)


It sounds like both Bridge Things are using access tokens and refresh tokens from the first account. After doing the authentication for the second account, you must explicitly log out (of the first account) before doing the authentication for the second account. If you do not do that then your browser cookies will keep you logged in the the same first account.


Remember you can check the StorageHandler.For.OAuthClientService.json file, and if necessary delete the second wrong entry. (Make a backup first).

Thanks. I will try that. I have also managed to find a work around by using one bridge with username and the other one without. But that is not how it is supposed to be, so will give your check a go.