openbase / bco.dal

Domotic Abstraction Layer
Other
1 stars 2 forks source link

Deadlock in Action Remote Pipeline. #139

Closed DivineThreepwood closed 5 years ago

DivineThreepwood commented 5 years ago
Found one Java-level deadlock:
=============================
"pool-1-thread-3204":
  waiting to lock monitor 0x0000000002349258 (object 0x00000000c481a600, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-1220"
"pool-1-thread-1220":
  waiting to lock monitor 0x000000000213f798 (object 0x00000000c4819c30, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-810"
"pool-1-thread-810":
  waiting to lock monitor 0x0000000001969228 (object 0x00000000c481a230, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-1175"
"pool-1-thread-1175":
  waiting to lock monitor 0x000000000270d5c8 (object 0x00000000c4819e30, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-879"
"pool-1-thread-879":
  waiting to lock monitor 0x0000000001969228 (object 0x00000000c481a230, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-1175"

Java stack information for the threads listed above:
===================================================
"pool-1-thread-3204":
        at org.openbase.bco.dal.remote.action.RemoteActionPool.execute(RemoteActionPool.java:140)
        - waiting to lock <0x00000000c481a600> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.execute(RemoteActionPool.java:126)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$ActivationStateOperationServiceImpl.setActivationState(SceneControllerImpl.java:283)
        at sun.reflect.GeneratedMethodAccessor1172.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeServiceMethod(Services.java:412)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeServiceMethod(Services.java:407)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeOperationServiceMethod(Services.java:435)
        at org.openbase.bco.dal.control.layer.unit.AbstractUnitController.performOperationService(AbstractUnitController.java:1483)
        at org.openbase.bco.dal.control.layer.unit.AbstractBaseUnitController.performOperationService(AbstractBaseUnitController.java:52)
        at org.openbase.bco.dal.control.action.ActionImpl.lambda$execute$0(ActionImpl.java:193)
        at org.openbase.bco.dal.control.action.ActionImpl$$Lambda$189/1991128739.call(Unknown Source)
        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)
"pool-1-thread-1220":
        at org.openbase.bco.dal.remote.action.RemoteAction.execute(RemoteAction.java:128)
        - waiting to lock <0x00000000c4819c30> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.execute(RemoteActionPool.java:146)
        - locked <0x00000000c481a600> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.execute(RemoteActionPool.java:126)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$ActivationStateOperationServiceImpl.setActivationState(SceneControllerImpl.java:283)
        at sun.reflect.GeneratedMethodAccessor1172.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeServiceMethod(Services.java:412)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeServiceMethod(Services.java:407)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeOperationServiceMethod(Services.java:435)
        at org.openbase.bco.dal.control.layer.unit.AbstractUnitController.performOperationService(AbstractUnitController.java:1483)
        at org.openbase.bco.dal.control.layer.unit.AbstractBaseUnitController.performOperationService(AbstractBaseUnitController.java:52)
        at org.openbase.bco.dal.control.action.ActionImpl.lambda$execute$0(ActionImpl.java:193)
        at org.openbase.bco.dal.control.action.ActionImpl$$Lambda$189/1991128739.call(Unknown Source)
        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)
"pool-1-thread-810":
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:303)
        - waiting to lock <0x00000000c481a230> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:298)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.stop(RemoteActionPool.java:198)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.stop(SceneControllerImpl.java:267)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.access$300(SceneControllerImpl.java:82)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:137)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:131)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c4819d80> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.bco.dal.remote.action.RemoteAction.updateActionDescription(RemoteAction.java:346)
        - locked <0x00000000c4819c30> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.lambda$new$0(RemoteAction.java:78)
        at org.openbase.bco.dal.remote.action.RemoteAction$$Lambda$145/1558924602.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c4838d58> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote.lambda$new$0(AbstractUnitRemote.java:126)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote$$Lambda$127/1982484703.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c4602a10> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyDataUpdate(AbstractRemoteClient.java:1486)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyEventUpdate(AbstractRemoteClient.java:1098)
        - locked <0x00000000c4602a68> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.access$1000(AbstractRemoteClient.java:72)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1819)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1683)
        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)
"pool-1-thread-1175":
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:303)
        - waiting to lock <0x00000000c4819e30> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:298)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.stop(RemoteActionPool.java:198)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.stop(SceneControllerImpl.java:267)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.access$300(SceneControllerImpl.java:82)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:137)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:131)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c481a380> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.bco.dal.remote.action.RemoteAction.updateActionDescription(RemoteAction.java:346)
        - locked <0x00000000c481a230> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.lambda$new$0(RemoteAction.java:78)
        at org.openbase.bco.dal.remote.action.RemoteAction$$Lambda$145/1558924602.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c414cfb0> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote.lambda$new$0(AbstractUnitRemote.java:126)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote$$Lambda$127/1982484703.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c414bf98> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyDataUpdate(AbstractRemoteClient.java:1486)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyEventUpdate(AbstractRemoteClient.java:1098)
        - locked <0x00000000c414bff0> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.access$1000(AbstractRemoteClient.java:72)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1819)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1683)
        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)
"pool-1-thread-879":
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:303)
        - waiting to lock <0x00000000c481a230> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:298)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.stop(RemoteActionPool.java:198)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.stop(SceneControllerImpl.java:267)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.access$300(SceneControllerImpl.java:82)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:137)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:131)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c4819f80> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.bco.dal.remote.action.RemoteAction.updateActionDescription(RemoteAction.java:346)
        - locked <0x00000000c4819e30> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.lambda$new$0(RemoteAction.java:78)
        at org.openbase.bco.dal.remote.action.RemoteAction$$Lambda$145/1558924602.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c4733240> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote.lambda$new$0(AbstractUnitRemote.java:126)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote$$Lambda$127/1982484703.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c4730370> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyDataUpdate(AbstractRemoteClient.java:1486)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyEventUpdate(AbstractRemoteClient.java:1098)
        - locked <0x00000000c47303c8> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.access$1000(AbstractRemoteClient.java:72)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1819)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1683)
        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)

Found one Java-level deadlock:
=============================
"pool-1-thread-1118":
  waiting to lock monitor 0x0000000001569528 (object 0x00000000c479f400, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-192"
"pool-1-thread-192":
  waiting to lock monitor 0x00000000025235f8 (object 0x00000000c4798710, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-212"
"pool-1-thread-212":
  waiting to lock monitor 0x0000000001569528 (object 0x00000000c479f400, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-192"

Java stack information for the threads listed above:
===================================================
"pool-1-thread-1118":
        at org.openbase.bco.dal.remote.action.RemoteAction.execute(RemoteAction.java:128)
        - waiting to lock <0x00000000c479f400> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.execute(RemoteActionPool.java:146)
        - locked <0x00000000c47a3fa8> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.execute(RemoteActionPool.java:126)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$ActivationStateOperationServiceImpl.setActivationState(SceneControllerImpl.java:283)
        at sun.reflect.GeneratedMethodAccessor1172.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeServiceMethod(Services.java:412)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeServiceMethod(Services.java:407)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeOperationServiceMethod(Services.java:435)
        at org.openbase.bco.dal.control.layer.unit.AbstractUnitController.performOperationService(AbstractUnitController.java:1483)
        at org.openbase.bco.dal.control.layer.unit.AbstractBaseUnitController.performOperationService(AbstractBaseUnitController.java:52)
        at org.openbase.bco.dal.control.action.ActionImpl.lambda$execute$0(ActionImpl.java:193)
        at org.openbase.bco.dal.control.action.ActionImpl$$Lambda$189/1991128739.call(Unknown Source)
        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)
"pool-1-thread-192":
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:304)
        - waiting to lock <0x00000000c4798710> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:298)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.stop(RemoteActionPool.java:198)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.stop(SceneControllerImpl.java:267)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.access$300(SceneControllerImpl.java:82)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:137)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:131)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c47a3f28> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.bco.dal.remote.action.RemoteAction.updateActionDescription(RemoteAction.java:346)
        - locked <0x00000000c479f400> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.lambda$new$0(RemoteAction.java:78)
        at org.openbase.bco.dal.remote.action.RemoteAction$$Lambda$145/1558924602.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c47a0bf0> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote.lambda$new$0(AbstractUnitRemote.java:126)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote$$Lambda$127/1982484703.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c479f888> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyDataUpdate(AbstractRemoteClient.java:1486)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyEventUpdate(AbstractRemoteClient.java:1098)
        - locked <0x00000000c479f8e0> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.access$1000(AbstractRemoteClient.java:72)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1819)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1683)
        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)
"pool-1-thread-212":
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:304)
        - waiting to lock <0x00000000c479f400> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:298)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.stop(RemoteActionPool.java:198)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.stop(SceneControllerImpl.java:267)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.access$300(SceneControllerImpl.java:82)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:137)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:131)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c479f350> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.bco.dal.remote.action.RemoteAction.updateActionDescription(RemoteAction.java:346)
        - locked <0x00000000c4798710> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.lambda$new$0(RemoteAction.java:78)
        at org.openbase.bco.dal.remote.action.RemoteAction$$Lambda$145/1558924602.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c479bee8> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote.lambda$new$0(AbstractUnitRemote.java:126)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote$$Lambda$127/1982484703.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c4798b98> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyDataUpdate(AbstractRemoteClient.java:1486)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyEventUpdate(AbstractRemoteClient.java:1098)
        - locked <0x00000000c4798bf0> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.access$1000(AbstractRemoteClient.java:72)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1819)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1683)
        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)

Found 2 deadlocks.

Heap
 PSYoungGen      total 55808K, used 52989K [0x00000000eba00000, 0x00000000fce80000, 0x0000000100000000)
  eden space 52224K, 95% used [0x00000000eba00000,0x00000000eea8f4d8,0x00000000eed00000)
  from space 3584K, 91% used [0x00000000fc780000,0x00000000fcab0120,0x00000000fcb00000)
  to   space 3584K, 0% used [0x00000000fcb00000,0x00000000fcb00000,0x00000000fce80000)
 ParOldGen       total 96256K, used 90963K [0x00000000c2e00000, 0x00000000c8c00000, 0x00000000eba00000)
  object space 96256K, 94% used [0x00000000c2e00000,0x00000000c86d4d40,0x00000000c8c00000)
 Metaspace       used 51041K, capacity 55702K, committed 56064K, reserved 1099776K
  class space    used 5637K, capacity 6346K, committed 6400K, reserved 1048576K

  Found one Java-level deadlock:
=============================
"pool-1-thread-2861":
  waiting to lock monitor 0x000000000411d018 (object 0x00000000c49c32c8, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-2452"
"pool-1-thread-2452":
  waiting to lock monitor 0x000000000383ab18 (object 0x00000000c49c2cf8, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-993"
"pool-1-thread-993":
  waiting to lock monitor 0x000000000388c948 (object 0x00000000c49c28f8, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-960"
"pool-1-thread-960":
  waiting to lock monitor 0x000000000383ab18 (object 0x00000000c49c2cf8, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-993"

Java stack information for the threads listed above:
===================================================
"pool-1-thread-2861":
        at org.openbase.bco.dal.remote.action.RemoteActionPool.execute(RemoteActionPool.java:140)
        - waiting to lock <0x00000000c49c32c8> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.execute(RemoteActionPool.java:126)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$ActivationStateOperationServiceImpl.setActivationState(SceneControllerImpl.java:283)
        at sun.reflect.GeneratedMethodAccessor1208.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeServiceMethod(Services.java:412)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeServiceMethod(Services.java:407)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeOperationServiceMethod(Services.java:435)
        at org.openbase.bco.dal.control.layer.unit.AbstractUnitController.performOperationService(AbstractUnitController.java:1483)
        at org.openbase.bco.dal.control.layer.unit.AbstractBaseUnitController.performOperationService(AbstractBaseUnitController.java:52)
        at org.openbase.bco.dal.control.action.ActionImpl.lambda$execute$0(ActionImpl.java:193)
        at org.openbase.bco.dal.control.action.ActionImpl$$Lambda$161/1807232269.call(Unknown Source)
        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)
"pool-1-thread-2452":
        at org.openbase.bco.dal.remote.action.RemoteAction.execute(RemoteAction.java:128)
        - waiting to lock <0x00000000c49c2cf8> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.execute(RemoteActionPool.java:146)
        - locked <0x00000000c49c32c8> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.execute(RemoteActionPool.java:126)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$ActivationStateOperationServiceImpl.setActivationState(SceneControllerImpl.java:283)
        at sun.reflect.GeneratedMethodAccessor1208.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeServiceMethod(Services.java:412)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeServiceMethod(Services.java:407)
        at org.openbase.bco.dal.lib.layer.service.Services.invokeOperationServiceMethod(Services.java:435)
        at org.openbase.bco.dal.control.layer.unit.AbstractUnitController.performOperationService(AbstractUnitController.java:1483)
        at org.openbase.bco.dal.control.layer.unit.AbstractBaseUnitController.performOperationService(AbstractBaseUnitController.java:52)
        at org.openbase.bco.dal.control.action.ActionImpl.lambda$execute$0(ActionImpl.java:193)
        at org.openbase.bco.dal.control.action.ActionImpl$$Lambda$161/1807232269.call(Unknown Source)
        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)
"pool-1-thread-993":
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:303)
        - waiting to lock <0x00000000c49c28f8> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:298)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.stop(RemoteActionPool.java:198)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.stop(SceneControllerImpl.java:267)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.access$300(SceneControllerImpl.java:82)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:137)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:131)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c49c2e48> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.bco.dal.remote.action.RemoteAction.updateActionDescription(RemoteAction.java:346)
        - locked <0x00000000c49c2cf8> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.lambda$new$0(RemoteAction.java:78)
        at org.openbase.bco.dal.remote.action.RemoteAction$$Lambda$133/1543137411.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c47e32b0> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote.lambda$new$0(AbstractUnitRemote.java:126)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote$$Lambda$125/1310776781.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c47ad4f0> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyDataUpdate(AbstractRemoteClient.java:1486)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyEventUpdate(AbstractRemoteClient.java:1098)
        - locked <0x00000000c47ad548> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.access$1000(AbstractRemoteClient.java:72)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1819)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1683)
        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)
"pool-1-thread-960":
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:303)
        - waiting to lock <0x00000000c49c2cf8> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.cancel(RemoteAction.java:298)
        at org.openbase.bco.dal.remote.action.RemoteActionPool.stop(RemoteActionPool.java:198)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.stop(SceneControllerImpl.java:267)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl.access$300(SceneControllerImpl.java:82)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:137)
        at org.openbase.bco.dal.control.layer.unit.scene.SceneControllerImpl$1.update(SceneControllerImpl.java:131)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c49c2a48> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.bco.dal.remote.action.RemoteAction.updateActionDescription(RemoteAction.java:346)
        - locked <0x00000000c49c28f8> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.bco.dal.remote.action.RemoteAction.lambda$new$0(RemoteAction.java:78)
        at org.openbase.bco.dal.remote.action.RemoteAction$$Lambda$133/1543137411.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c440a8a0> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote.lambda$new$0(AbstractUnitRemote.java:126)
        at org.openbase.bco.dal.remote.layer.unit.AbstractUnitRemote$$Lambda$125/1310776781.update(Unknown Source)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
        - locked <0x00000000c4407f40> (a org.openbase.jul.pattern.AbstractObservable$2)
        at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:189)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyDataUpdate(AbstractRemoteClient.java:1486)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyEventUpdate(AbstractRemoteClient.java:1098)
        - locked <0x00000000c4407f98> (a org.openbase.jul.schedule.SyncObject)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.access$1000(AbstractRemoteClient.java:72)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1819)
        at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1683)
        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)

Found 1 deadlock.
pLeminoq commented 5 years ago

The issue is that updates of several required action from a scene trigger the scene to stop which in turn cancels all required actions. Commit e5ef472b542c61e8ed6355f919b235047e64f9c8 is a first attempt to fix this deadlock by making sure that a scene is only stopped once from an update to a required action and by moving the notification of changes to remote actions outside of the synchronization.

DivineThreepwood commented 5 years ago

commit e5ef472b should fix this issue.

DivineThreepwood commented 5 years ago

Fix confirmed.