eclipse-archived / neoscada

Eclipse NeoSCADA™
https://eclipse.org/eclipsescada/
Eclipse Public License 1.0
32 stars 20 forks source link

Deadlock between SingleObjectPoolServiceTracker and DataItemTargetFactoryImpl #2

Open CptMauli opened 6 years ago

CptMauli commented 6 years ago
Name: org.eclipse.scada.utils.osgi.pool.ObjectPoolImpl@6b34ac49/1
State: BLOCKED on org.eclipse.scada.da.datasource.item.DataItemTargetImpl@28f854b0 owned by: Configuration Administrator/1
Total blocked: 50  Total waited: 5.512

Stack trace: 
org.eclipse.scada.da.datasource.item.DataItemTargetImpl.setDataSource(DataItemTargetImpl.java:116)
org.eclipse.scada.da.datasource.item.DataItemTargetImpl$1.dataSourceChanged(DataItemTargetImpl.java:68)
org.eclipse.scada.da.datasource.SingleDataSourceTracker.setDataSource(SingleDataSourceTracker.java:60)
org.eclipse.scada.da.datasource.SingleDataSourceTracker$1.serviceChange(SingleDataSourceTracker.java:53)
org.eclipse.scada.da.datasource.SingleDataSourceTracker$1.serviceChange(SingleDataSourceTracker.java:1)
org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.fireServiceChange(SingleObjectPoolServiceTracker.java:117)
org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.setService(SingleObjectPoolServiceTracker.java:109)
   - locked org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker@564e9e3f
org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.update(SingleObjectPoolServiceTracker.java:100)
org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.handleServiceRemoved(SingleObjectPoolServiceTracker.java:81)
   - locked org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker@564e9e3f
org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker$PoolHandler.fireServiceRemoved(AbstractObjectPoolServiceTracker.java:116)
org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker$PoolHandler.serviceRemoved(AbstractObjectPoolServiceTracker.java:110)
org.eclipse.scada.utils.osgi.pool.ObjectPoolImpl$3.run(ObjectPoolImpl.java:197)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)

Name: Configuration Administrator/1
State: BLOCKED on org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker@564e9e3f owned by: org.eclipse.scada.utils.osgi.pool.ObjectPoolImpl@6b34ac49/1
Total blocked: 396  Total waited: 72

Stack trace: 
org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker.handlePoolRemove(AbstractObjectPoolServiceTracker.java:168)
org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker$1.poolRemoved(AbstractObjectPoolServiceTracker.java:130)
org.eclipse.scada.utils.osgi.pool.ObjectPoolTracker.removeListener(ObjectPoolTracker.java:200)
org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker.close(AbstractObjectPoolServiceTracker.java:187)
org.eclipse.scada.da.datasource.SingleDataSourceTracker.close(SingleDataSourceTracker.java:70)
org.eclipse.scada.da.datasource.item.DataItemTargetImpl.dispose(DataItemTargetImpl.java:205)
   - locked org.eclipse.scada.da.datasource.item.DataItemTargetImpl@28f854b0
org.eclipse.scada.da.datasource.item.DataItemTargetFactoryImpl.disposeService(DataItemTargetFactoryImpl.java:80)
org.eclipse.scada.da.datasource.item.DataItemTargetFactoryImpl.disposeService(DataItemTargetFactoryImpl.java:1)
org.eclipse.scada.ca.common.factory.AbstractServiceConfigurationFactory.delete(AbstractServiceConfigurationFactory.java:126)
   - locked org.eclipse.scada.da.datasource.item.DataItemTargetFactoryImpl@1459107c
org.eclipse.scada.ca.common.AbstractConfigurationAdministrator.applyConfiguration(AbstractConfigurationAdministrator.java:336)
org.eclipse.scada.ca.common.AbstractConfigurationAdministrator$3.run(AbstractConfigurationAdministrator.java:299)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)
CptMauli commented 6 years ago
"org.eclipse.scada.utils.osgi.pool.ObjectPoolImpl@36a21232/1" - Thread t@79
   java.lang.Thread.State: BLOCKED
    at org.eclipse.scada.da.datasource.item.DataItemTargetImpl.setDataSource(DataItemTargetImpl.java:116)
    - waiting to lock <8379bff> (a org.eclipse.scada.da.datasource.item.DataItemTargetImpl) owned by "Configuration Administrator/1" t@30
    at org.eclipse.scada.da.datasource.item.DataItemTargetImpl$1.dataSourceChanged(DataItemTargetImpl.java:68)
    at org.eclipse.scada.da.datasource.SingleDataSourceTracker.setDataSource(SingleDataSourceTracker.java:60)
    at org.eclipse.scada.da.datasource.SingleDataSourceTracker$1.serviceChange(SingleDataSourceTracker.java:53)
    at org.eclipse.scada.da.datasource.SingleDataSourceTracker$1.serviceChange(SingleDataSourceTracker.java:1)
    at org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.fireServiceChange(SingleObjectPoolServiceTracker.java:117)
    at org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.setService(SingleObjectPoolServiceTracker.java:109)
    - locked <4a260f40> (a org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker)
    at org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.update(SingleObjectPoolServiceTracker.java:100)
    at org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.handleServiceRemoved(SingleObjectPoolServiceTracker.java:81)
    - locked <4a260f40> (a org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker)
    at org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker$PoolHandler.fireServiceRemoved(AbstractObjectPoolServiceTracker.java:116)
    at org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker$PoolHandler.serviceRemoved(AbstractObjectPoolServiceTracker.java:110)
    at org.eclipse.scada.utils.osgi.pool.ObjectPoolImpl$3.run(ObjectPoolImpl.java:197)
    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)

   Locked ownable synchronizers:
    - locked <75dcc71e> (a java.util.concurrent.ThreadPoolExecutor$Worker)'

"MasterItemFactory/1" - Thread t@77
   java.lang.Thread.State: BLOCKED
    at org.eclipse.scada.da.datasource.item.DataItemTargetImpl.stateChanged(DataItemTargetImpl.java:212)
    - waiting to lock <8379bff> (a org.eclipse.scada.da.datasource.item.DataItemTargetImpl) owned by "Configuration Administrator/1" t@30
    at org.eclipse.scada.da.datasource.base.AbstractDataSource$2.run(AbstractDataSource.java:132)
    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)

   Locked ownable synchronizers:
    - locked <3b3be375> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"Configuration Administrator/1" - Thread t@30
   java.lang.Thread.State: BLOCKED
    at org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker.handlePoolRemove(AbstractObjectPoolServiceTracker.java:168)
    - waiting to lock <4a260f40> (a org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker) owned by "org.eclipse.scada.utils.osgi.pool.ObjectPoolImpl@36a21232/1" t@79
    at org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker$1.poolRemoved(AbstractObjectPoolServiceTracker.java:130)
    at org.eclipse.scada.utils.osgi.pool.ObjectPoolTracker.removeListener(ObjectPoolTracker.java:200)
    at org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker.close(AbstractObjectPoolServiceTracker.java:187)
    at org.eclipse.scada.da.datasource.SingleDataSourceTracker.close(SingleDataSourceTracker.java:70)
    at org.eclipse.scada.da.datasource.item.DataItemTargetImpl.dispose(DataItemTargetImpl.java:205)
    - locked <8379bff> (a org.eclipse.scada.da.datasource.item.DataItemTargetImpl)
    at org.eclipse.scada.da.datasource.item.DataItemTargetFactoryImpl.disposeService(DataItemTargetFactoryImpl.java:80)
    at org.eclipse.scada.da.datasource.item.DataItemTargetFactoryImpl.disposeService(DataItemTargetFactoryImpl.java:1)
    at org.eclipse.scada.ca.common.factory.AbstractServiceConfigurationFactory.delete(AbstractServiceConfigurationFactory.java:126)
    - locked <33dcb6bc> (a org.eclipse.scada.da.datasource.item.DataItemTargetFactoryImpl)
    at org.eclipse.scada.ca.common.AbstractConfigurationAdministrator.applyConfiguration(AbstractConfigurationAdministrator.java:336)
    at org.eclipse.scada.ca.common.AbstractConfigurationAdministrator$3.run(AbstractConfigurationAdministrator.java:299)
    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)

   Locked ownable synchronizers:
    - locked <477ec4f7> (a java.util.concurrent.ThreadPoolExecutor$Worker)
CptMauli commented 6 years ago
"HiveCommon/org.eclipse.scada.da.server.osgi/1" - Thread t@79
   java.lang.Thread.State: BLOCKED
    at org.eclipse.scada.da.server.common.DataItemBase.setListener(DataItemBase.java:53)
    - waiting to lock <6696a4e4> (a org.eclipse.scada.da.datasource.item.DataItemTargetImpl) owned by "Configuration Administrator/1" t@34
    at org.eclipse.scada.da.server.common.impl.DataItemSubscriptionSource$2.run(DataItemSubscriptionSource.java:102)
    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)

   Locked ownable synchronizers:
    - locked <43064325> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"org.eclipse.scada.utils.osgi.pool.ObjectPoolImpl@79d1eb3e/1" - Thread t@75
   java.lang.Thread.State: BLOCKED
    at org.eclipse.scada.da.datasource.item.DataItemTargetImpl.setDataSource(DataItemTargetImpl.java:116)
    - waiting to lock <6696a4e4> (a org.eclipse.scada.da.datasource.item.DataItemTargetImpl) owned by "Configuration Administrator/1" t@34
    at org.eclipse.scada.da.datasource.item.DataItemTargetImpl$1.dataSourceChanged(DataItemTargetImpl.java:68)
    at org.eclipse.scada.da.datasource.SingleDataSourceTracker.setDataSource(SingleDataSourceTracker.java:60)
    at org.eclipse.scada.da.datasource.SingleDataSourceTracker$1.serviceChange(SingleDataSourceTracker.java:53)
    at org.eclipse.scada.da.datasource.SingleDataSourceTracker$1.serviceChange(SingleDataSourceTracker.java:1)
    at org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.fireServiceChange(SingleObjectPoolServiceTracker.java:117)
    at org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.setService(SingleObjectPoolServiceTracker.java:109)
    - locked <759b3059> (a org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker)
    at org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.update(SingleObjectPoolServiceTracker.java:100)
    at org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker.handleServiceRemoved(SingleObjectPoolServiceTracker.java:81)
    - locked <759b3059> (a org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker)
    at org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker$PoolHandler.fireServiceRemoved(AbstractObjectPoolServiceTracker.java:116)
    at org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker$PoolHandler.serviceRemoved(AbstractObjectPoolServiceTracker.java:110)
    at org.eclipse.scada.utils.osgi.pool.ObjectPoolImpl$3.run(ObjectPoolImpl.java:197)
    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)

   Locked ownable synchronizers:
    - locked <4cf0510d> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"Configuration Administrator/1" - Thread t@34
   java.lang.Thread.State: BLOCKED
    at org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker.handlePoolRemove(AbstractObjectPoolServiceTracker.java:168)
    - waiting to lock <759b3059> (a org.eclipse.scada.utils.osgi.pool.SingleObjectPoolServiceTracker) owned by "org.eclipse.scada.utils.osgi.pool.ObjectPoolImpl@79d1eb3e/1" t@75
    at org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker$1.poolRemoved(AbstractObjectPoolServiceTracker.java:130)
    at org.eclipse.scada.utils.osgi.pool.ObjectPoolTracker.removeListener(ObjectPoolTracker.java:200)
    at org.eclipse.scada.utils.osgi.pool.AbstractObjectPoolServiceTracker.close(AbstractObjectPoolServiceTracker.java:187)
    at org.eclipse.scada.da.datasource.SingleDataSourceTracker.close(SingleDataSourceTracker.java:70)
    at org.eclipse.scada.da.datasource.item.DataItemTargetImpl.dispose(DataItemTargetImpl.java:205)
    - locked <6696a4e4> (a org.eclipse.scada.da.datasource.item.DataItemTargetImpl)
    at org.eclipse.scada.da.datasource.item.DataItemTargetFactoryImpl.disposeService(DataItemTargetFactoryImpl.java:80)
    at org.eclipse.scada.da.datasource.item.DataItemTargetFactoryImpl.disposeService(DataItemTargetFactoryImpl.java:1)
    at org.eclipse.scada.ca.common.factory.AbstractServiceConfigurationFactory.delete(AbstractServiceConfigurationFactory.java:126)
    - locked <43dbd3c6> (a org.eclipse.scada.da.datasource.item.DataItemTargetFactoryImpl)
    at org.eclipse.scada.ca.common.AbstractConfigurationAdministrator.applyConfiguration(AbstractConfigurationAdministrator.java:336)
    at org.eclipse.scada.ca.common.AbstractConfigurationAdministrator$3.run(AbstractConfigurationAdministrator.java:299)
    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)

   Locked ownable synchronizers:
    - locked <774bdeaf> (a java.util.concurrent.ThreadPoolExecutor$Worker)