\345\270\270\350\247\201\351\227\256\351\242\230/\345\272\224\347\224\250\345\270\202\345\234\272\345\256\211\350\243\205app\345\274\202\345\270\270\346\216\222\346\237\245.md
... ...
@@ -30,6 +30,54 @@
30 30
AppLifecycleFacade.loadFileSeed(meta, allInstallAppList);
31 31
```
32 32
33
+除了锁表或者死锁等原因以外,可能还存在获取数据conn阻塞,导致安装流程卡死。执行 `jstack -l 1` 结果如下:
34
+
35
+```
36
+"http-nio-8060-exec-3" #131 daemon prio=5 os_prio=0 tid=0x00007f15d4009800 nid=0x8a waiting on condition [0x00007f161dbe2000]
37
+ java.lang.Thread.State: WAITING (parking)
38
+ at sun.misc.Unsafe.park(Native Method)
39
+ - parking to wait for <0x00000005d1424370> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
40
+ at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
41
+ at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
42
+ at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
43
+ at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:146)
44
+ at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
45
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
46
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
47
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
48
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
49
+--
50
+ at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:726)
51
+ at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:5055)
52
+ at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1407)
53
+ at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1399)
54
+ at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:100)
55
+ at com.sie.snest.engine.db.relationdb.RelationDBAccessor.<init>(RelationDBAccessor.java:183)
56
+ at com.sie.snest.engine.a.a.getNewAccessorFromDataSource(AbstractDataSourceStrategy.java:125)
57
+ at com.sie.snest.engine.a.a.getDbAccessor(AbstractDataSourceStrategy.java:108)
58
+ at com.sie.snest.engine.a.f.getRelationDBAccessor(DbDataSourceStrategy.java:18)
59
+ at com.sie.snest.engine.data.access.BussModelDataAccess.getRelationDBAccessor(BussModelDataAccess.java:125)
60
+ at com.sie.snest.engine.container.Meta.getRelationDBAccessor(Meta.java:135)
61
+ at com.sie.snest.engine.model.loaders.SeedLoader.a(SeedLoader.java:2036)
62
+ at com.sie.snest.engine.model.loaders.SeedLoader$$Lambda$1535/1824031629.accept(Unknown Source)
63
+ at java.util.HashMap.forEach(HashMap.java:1289)
64
+ at com.sie.snest.engine.model.loaders.SeedLoader.update(SeedLoader.java:308)
65
+ at com.sie.snest.engine.model.loaders.AppDataInfo.updateSeedData(AppDataInfo.java:921)
66
+ at com.sie.iidp.appstore.utils.SeedUtils.loadSeedData(SeedUtils.java:68)
67
+ at com.sie.iidp.appstore.handler.service.FinalModelHandler.doComputeMeta(FinalModelHandler.java:141)
68
+ at com.sie.iidp.appstore.handler.service.FinalModelHandler.handle(FinalModelHandler.java:60)
69
+ at com.sie.iidp.appstore.handler.InstallStateMachine.execute(InstallStateMachine.java:26)
70
+ at com.sie.iidp.appstore.appstore.DistributedAppLoaderV2.updateApps(DistributedAppLoaderV2.java:405)
71
+ at com.sie.iidp.appstore.meta.MetaApp.updateApp(MetaApp.java:749)
72
+ at com.sie.iidp.appstore.meta.MetaApp$$EnhancerByCGLIB$$9b7d6ddd.CGLIB$updateApp$6(<generated>)
73
+ at com.sie.iidp.appstore.meta.MetaApp$$EnhancerByCGLIB$$9b7d6ddd$$FastClassByCGLIB$$f7fc717f.invoke(<generated>)
74
+ at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
75
+ at com.sie.snest.engine.model.ModelInterceptor.intercept(ModelInterceptor.java:84)
76
+ at com.sie.iidp.appstore.meta.MetaApp$$EnhancerByCGLIB$$9b7d6ddd.updateApp(<generated>)
77
+--
78
+```
79
+可以发现整个线程卡死在 `com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:726)` ,一直等待连接。
80
+
33 81
34 82
##### 2,调用distribute安装接口异常
35 83