openbase / bco.dal

Domotic Abstraction Layer
Other
1 stars 2 forks source link

Unit Controller deadlock #142

Closed DivineThreepwood closed 5 years ago

DivineThreepwood commented 5 years ago
Found one Java-level deadlock:
=============================
"main":
  waiting to lock monitor 0x00007fed171b9100 (object 0x000000078703b528, a org.openbase.jul.schedule.SyncObject),
  which is held by "pool-1-thread-113"
"pool-1-thread-113":
  waiting for ownable synchronizer 0x0000000787076a50, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
  which is held by "main"
Java stack information for the threads listed above:
===================================================
"main":
    at org.openbase.jul.extension.rsb.com.AbstractConfigurableController.getConfig(AbstractConfigurableController.java:187)
    - waiting to lock <0x000000078703b528> (a org.openbase.jul.schedule.SyncObject)
    at org.openbase.jul.extension.rsb.com.AbstractConfigurableController.getConfig(AbstractConfigurableController.java:45)
    at org.openbase.bco.dal.lib.layer.unit.Unit.getSupportedServiceTypes(Unit.java:170)
    at org.openbase.bco.dal.control.layer.unit.AbstractAggregatedBaseUnitController.updateUnitData(AbstractAggregatedBaseUnitController.java:132)
    at org.openbase.bco.dal.control.layer.unit.AbstractAggregatedBaseUnitController.activate(AbstractAggregatedBaseUnitController.java:120)
    at org.openbase.bco.dal.control.layer.unit.location.LocationControllerImpl.activate(LocationControllerImpl.java:150)
    at org.openbase.jul.storage.registry.ActivatableEntryRegistrySynchronizer.register(ActivatableEntryRegistrySynchronizer.java:61)
    at org.openbase.jul.storage.registry.RegistrySynchronizer.register(RegistrySynchronizer.java:96)
    at org.openbase.jul.storage.registry.RegistrySynchronizer.register(RegistrySynchronizer.java:44)
    at org.openbase.jul.storage.registry.AbstractSynchronizer.registerInternal(AbstractSynchronizer.java:273)
    at org.openbase.jul.storage.registry.AbstractSynchronizer.internalSync(AbstractSynchronizer.java:185)
    - locked <0x000000078703b838> (a org.openbase.jul.schedule.SyncObject)
    at org.openbase.jul.storage.registry.AbstractSynchronizer.activate(AbstractSynchronizer.java:116)
    at org.openbase.jul.storage.registry.ActivatableEntryRegistrySynchronizer.activate(ActivatableEntryRegistrySynchronizer.java:90)
    at org.openbase.bco.dal.control.layer.unit.location.LocationManagerImpl.activate(LocationManagerImpl.java:98)
    at org.openbase.jul.pattern.launch.AbstractLauncher.launch(AbstractLauncher.java:193)
    - locked <0x000000078703b8e8> (a org.openbase.jul.schedule.SyncObject)
    at org.openbase.bco.dal.test.layer.unit.scene.SceneRemoteTest.setUpClass(SceneRemoteTest.java:134)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@11.0.1/Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@11.0.1/NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@11.0.1/DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(java.base@11.0.1/Method.java:566)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@11.0.1/Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@11.0.1/NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@11.0.1/DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(java.base@11.0.1/Method.java:566)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
"pool-1-thread-113":
    at jdk.internal.misc.Unsafe.park(java.base@11.0.1/Native Method)
    - parking to wait for  <0x0000000787076a50> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
    at java.util.concurrent.locks.LockSupport.park(java.base@11.0.1/LockSupport.java:194)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(java.base@11.0.1/AbstractQueuedSynchronizer.java:885)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(java.base@11.0.1/AbstractQueuedSynchronizer.java:917)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@11.0.1/AbstractQueuedSynchronizer.java:1240)
    at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(java.base@11.0.1/ReentrantReadWriteLock.java:959)
    at org.openbase.jul.extension.rsb.com.AbstractControllerServer.setDataField(AbstractControllerServer.java:716)
    at org.openbase.jul.extension.rsb.com.AbstractConfigurableController.applyConfigUpdate(AbstractConfigurableController.java:101)
    - locked <0x000000078703b528> (a org.openbase.jul.schedule.SyncObject)
    at org.openbase.bco.dal.control.layer.unit.AbstractUnitController.applyConfigUpdate(AbstractUnitController.java:429)
    at org.openbase.bco.dal.control.layer.unit.AbstractAggregatedBaseUnitController.applyConfigUpdate(AbstractAggregatedBaseUnitController.java:101)
    - locked <0x000000078703b538> (a org.openbase.bco.dal.control.layer.unit.location.LocationControllerImpl)
    at org.openbase.bco.dal.control.layer.unit.AbstractUnitController$1.update(AbstractUnitController.java:191)
    at org.openbase.bco.dal.control.layer.unit.AbstractUnitController$1.update(AbstractUnitController.java:185)
    at org.openbase.jul.pattern.AbstractObservable.notifyObservers(AbstractObservable.java:257)
    - locked <0x000000078708f2a8> (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:1471)
    at org.openbase.jul.extension.rsb.com.AbstractRemoteClient.applyEventUpdate(AbstractRemoteClient.java:1098)
    - locked <0x000000078708f300> (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:1795)
    at org.openbase.jul.extension.rsb.com.AbstractRemoteClient$SyncTaskCallable.call(AbstractRemoteClient.java:1668)
    at java.util.concurrent.FutureTask.run(java.base@11.0.1/FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.1/ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.1/ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(java.base@11.0.1/Thread.java:834)
Found 1 deadlock.
Heap
 garbage-first heap   total 273408K, used 90235K [0x0000000780000000, 0x0000000800000000)
  region size 1024K, 37 young (37888K), 6 survivors (6144K)
 Metaspace       used 53137K, capacity 56295K, committed 56396K, reserved 1099776K
  class space    used 5342K, capacity 6413K, committed 6476K, reserved 1048576K