64e5710a86b5f412f5733d0e2909220e0aeb57e5
\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 |