You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on May 7, 2020. It is now read-only.
Often during initialization of the LifxLightHandler, the following exception is thrown in my setup:
java.lang.IllegalMonitorStateException
at java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:151)[:1.8.0_101]
at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1261)[:1.8.0_101]
at java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:457)[:1.8.0_101]
at org.eclipse.smarthome.binding.lifx.internal.LifxNetworkThrottler.unlock(LifxNetworkThrottler.java:89)[193:org.eclipse.smarthome.binding.lifx:0.9.0.201607221840]
at org.eclipse.smarthome.binding.lifx.handler.LifxLightHandler.broadcastPacket(LifxLightHandler.java:599)[193:org.eclipse.smarthome.binding.lifx:0.9.0.201607221840]
at org.eclipse.smarthome.binding.lifx.handler.LifxLightHandler.initialize(LifxLightHandler.java:223)[193:org.eclipse.smarthome.binding.lifx:0.9.0.201607221840]
at org.eclipse.smarthome.core.thing.internal.ThingManager$8$1.call(ThingManager.java:739)[102:org.eclipse.smarthome.core.thing:0.9.0.201607221840]
at org.eclipse.smarthome.core.thing.internal.ThingManager$8$1.call(ThingManager.java:1)[102:org.eclipse.smarthome.core.thing:0.9.0.201607221840]
at org.eclipse.smarthome.core.common.SafeMethodCaller$CallableWrapper.call(SafeMethodCaller.java:177)[96:org.eclipse.smarthome.core:0.9.0.201607221840]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_101]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_101]
The LifxNetworkThrottler.unlock() method always tries to release all locks. Even those of other threads. The exception seems to occur when a bulb is added that was not yet available before the LifxLightHandler.broadcastPacket(..) method called LifxNetworkThrottler.lock() .
As a result of this, the whole LIFX binding becomes unusable. The thread in which the exception occurs does not unlock all its locked ReentrantLocks .
Due to my setup this concurrency issue is often reproducible:
34 LIFX bulbs
fast development PC (Skylake i7-6700K)
The text was updated successfully, but these errors were encountered:
Often during initialization of the LifxLightHandler, the following exception is thrown in my setup:
The
LifxNetworkThrottler.unlock()
method always tries to release all locks. Even those of other threads. The exception seems to occur when a bulb is added that was not yet available before theLifxLightHandler.broadcastPacket(..)
method calledLifxNetworkThrottler.lock()
.As a result of this, the whole LIFX binding becomes unusable. The thread in which the exception occurs does not unlock all its locked ReentrantLocks .
Due to my setup this concurrency issue is often reproducible:
The text was updated successfully, but these errors were encountered: