-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Ecobee] Thread issues with discovery services #9496
Comments
I'm a little lost here. Of the 3 threads shown above, the 2 calls to The call to However, I don't understand why all 3 of these threads are stuck on the synchronized block at the start of |
Yes, I have two. One per floor in the house. The main floor has 7 sensors, the second has 2. |
@mhilbush You are right, it is not ecobee itself that causes the blocking, that is done by a bug in the SamsungTV binding in @morph166955's case. But ecobee then causes the thing handler pool to get blocked, because it itself is blocked by discovery, which should not happen. Note that all discovery activity should be triggered by discovery services ONLY. A thing handler must not do this. Also, the method |
Ok, thanks. I'll rework the binding to prevent the bridge handlers from doing the actual discovery. But I still have a couple questions.
I understand that. But maybe I don't fully understand what the Samsung binding is doing. Won't all the discovery services eventually become blocked when they call
By "it", you're referring to the bridge/thing handler, correct? |
Yes, indeed. As I said, the root cause is the SamsungTV binding as it registers as a discovery listener and blocks this thread, so that discovery services cannot announce any discovered things anymore. But ecobee now not only causes discovery to not work anymore, but also to block the thing handlers.
No, the |
Opening as per @kaikreuzer from openhab/openhab-core#1998
The EcobeeThermostatBridgeHandler does nasty stuff by starting discovery services itself (and not returning immediately, what would be anyhow expected from startBackgroundDiscovery()). This causes multiple discoveries running in parallel and blocking the 3 remaining threads of the thread pool:
The text was updated successfully, but these errors were encountered: