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 |