代码之家  ›  专栏  ›  技术社区  ›  Youness

Stackify Retrace-AWS弹性豆茎Tomcat-Tomcat冻结

  •  0
  • Youness  · 技术社区  · 6 年前

    系统详细信息;

    • Linux IP-10-0-1-17 4.1.13-19.30.amzn1.x86_64 1 SMP周五12月11日 03:42:10 UTC 2015 x86_u 64 x86_u 64 GNU/Linux
    • openjdk运行时 环境(建筑1.8.0 U 65-B17)
    • Tomcat 8.0.28版
    • 球衣套装

      <dependency>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-servlet</artifactId>
          <version>1.19</version>
      </dependency>
      

    在jvm上设置javaagent(如下)之后,tomcat无法正确启动 javaagent:/usr/local/stackify/stackify-java-apm/stackify-java-apm.jar

    根据我的观察,泽西岛不能正确初始化。

    下面的日志显示了一个正常的tomcat启动;

        19-Oct-2018 00:02:18.979 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.0.28
        19-Oct-2018 00:02:18.981 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Nov 18 2015 23:50:41 UTC
        19-Oct-2018 00:02:18.981 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.0.28.0
        19-Oct-2018 00:02:18.981 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
        19-Oct-2018 00:02:18.981 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            4.1.13-19.30.amzn1.x86_64
        19-Oct-2018 00:02:18.981 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
        19-Oct-2018 00:02:18.981 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.7.amzn1.x86_64/jre
        19-Oct-2018 00:02:18.981 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_65-b17
        19-Oct-2018 00:02:18.982 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
        19-Oct-2018 00:02:18.982 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/share/tomcat8
        19-Oct-2018 00:02:18.982 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/share/tomcat8
        19-Oct-2018 00:02:18.982 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -DIVW_CONFIG_SLACK_LOG_CHANNEL=#exceptions_alpha
        19-Oct-2018 00:02:18.985 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:MaxPermSize=512m
        19-Oct-2018 00:02:18.985 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx3700m
        19-Oct-2018 00:02:18.985 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:-OmitStackTraceInFastThrow
        19-Oct-2018 00:02:18.985 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:+CMSClassUnloadingEnabled
        19-Oct-2018 00:02:18.986 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:+UseConcMarkSweepGC
        19-Oct-2018 00:02:18.986 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:+HeapDumpOnOutOfMemoryError
        19-Oct-2018 00:02:18.986 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:HeapDumpPath=/tmp/logs
        19-Oct-2018 00:02:18.986 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -javaagent:/usr/local/stackify/stackify-java-apm/stackify-java-apm.jar
        19-Oct-2018 00:02:18.986 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms1024m
        19-Oct-2018 00:02:18.986 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/share/tomcat8
        19-Oct-2018 00:02:18.986 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/share/tomcat8
        19-Oct-2018 00:02:18.986 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.awt.headless=true
        19-Oct-2018 00:02:18.987 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.endorsed.dirs=
        19-Oct-2018 00:02:18.987 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/media/ivwStorage/javaTemp/
        19-Oct-2018 00:02:18.987 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/share/tomcat8/conf/logging.properties
        19-Oct-2018 00:02:18.987 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
        19-Oct-2018 00:02:18.987 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
        19-Oct-2018 00:02:19.191 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
        19-Oct-2018 00:02:19.209 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
        19-Oct-2018 00:02:19.254 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
        19-Oct-2018 00:02:19.255 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
        19-Oct-2018 00:02:19.264 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 945 ms
        19-Oct-2018 00:02:19.298 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
        19-Oct-2018 00:02:19.301 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.28
        19-Oct-2018 00:02:19.352 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /var/lib/tomcat8/webapps/ROOT
        19-Oct-2018 00:02:21.167 INFO [localhost-startStop-1] org.apache.catalina.core.StandardContext.checkUnusualURLPattern Suspicious url pattern: "*.css*" in context [] - see sections 12.1 and 12.2 of the Servlet specification
        19-Oct-2018 00:02:21.168 INFO [localhost-startStop-1] org.apache.catalina.core.StandardContext.checkUnusualURLPattern Suspicious url pattern: "*.js*" in context [] - see sections 12.1 and 12.2 of the Servlet specification
        Oct 19, 2018 12:02:21 AM org.apache.jasper.servlet.TldScanner scanJars
        INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
        Oct 19, 2018 12:02:22 AM org.apache.catalina.core.ApplicationContext log
        INFO: Initializing Shiro environment
        Configuration keys:[IVW_CONFIG_DB_USERNAME, IVW_CONFIG_SIMPLE_DB_LOG_DOMAIN, IVW_CONFIG_SLACK_LOG_CHANNEL, IVW_CONFIG_S3_BUCKET_NAME, IVW_CONFIG_DEVELOPMENT_MODE, IVW_CONFIG_EMAIL_WHITE_LIST, IVW_CONFIG_DB_SCONPROP, IVW_CONFIG_CONFIGURATION_CACHE_ENABLED, IVW_CONFIG_DB_NAME, IVW_CONFIG_DB_MAX_CONNECTIONS, IVW_CONFIG_DB_HOST, IVW_CONFIG_DISK_CACHE_DIRECTORY, IVW_CONFIG_WEB_APP_URL, IVW_CONFIG_AWS_ACCESS_KEY, IVW_CONFIG_SERVER_NAME, IVW_CONFIG_NOTIFICATION_WHITE_LIST, IVW_CONFIG_DB_PASSWORD, IVW_CONFIG_TIMING_LOG_ENABLED, IVW_CONFIG_SLACK_LOG_TOKEN, IVW_CONFIG_AWS_SECRET_KEY]
        Oct 19, 2018 12:02:44 AM com.sun.jersey.api.core.PackagesResourceConfig init
        INFO: Scanning for root resource and provider classes in the packages:
        com.***.rest
        Oct 19, 2018 12:02:45 AM com.sun.jersey.api.core.ScanningResourceConfig logClasses
        INFO: Root resource classes found:...
    

    但是,当我添加stackify javaagent时,tomcat启动过程冻结,启动日志在显示以下行之前停止

        com.sun.jersey.api.core.PackagesResourceConfig init
    

    可能是相关的,每次遇到这样的问题后,当我重新启动tomcat时,我也会看到一些可能相关的内存泄漏警告。

        INFO: Cleaning up Shiro Environment
        19-Oct-2018 00:08:11.123 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
        19-Oct-2018 00:08:11.124 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [com.microsoft.sqlserver.jdbc.SQLServerDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
        19-Oct-2018 00:08:11.124 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [Thread-6] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
        sun.misc.Unsafe.park(Native Method)
        java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        java.util.concurrent.DelayQueue.take(DelayQueue.java:211)
        java.util.concurrent.DelayQueue.take(DelayQueue.java:70)
        com.kikini.logging.simpledb.SimpleDBConsumer.run(SimpleDBConsumer.java:45)
        java.lang.Thread.run(Thread.java:745)
        19-Oct-2018 00:08:11.125 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
        java.lang.Object.wait(Native Method)
        java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
        com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:41)
        19-Oct-2018 00:08:11.125 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [TracePostProcessorQueueHandler] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
        java.lang.Thread.sleep(Native Method)
        java.lang.Thread.sleep(Thread.java:340)
        java.util.concurrent.TimeUnit.sleep(TimeUnit.java:386)
        com.stackify.apm.profiler.a.e$2.run(Unknown Source)
        java.lang.Thread.run(Thread.java:745)
        19-Oct-2018 00:08:11.126 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [StackifyTraceLinkCleanupThread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
        java.lang.Thread.sleep(Native Method)
        java.lang.Thread.sleep(Thread.java:340)
        java.util.concurrent.TimeUnit.sleep(TimeUnit.java:386)
        com.stackify.apm.profiler.a.a$4.run(Unknown Source)
        java.lang.Thread.run(Thread.java:745)
        19-Oct-2018 00:08:11.127 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [ROOT] created a ThreadLocal with key of type [org.jsoup.helper.StringUtil$1] (value [org.jsoup.helper.StringUtil$1@f20c726]) and a value of type [java.lang.StringBuilder] ... 
    

    如果这是一个与泽西岛有关的问题,显然datadog和newrelic以前也有过类似的问题;

    我还激活了tomcat上的fine log(添加 .level=好 到/etc/tomcat8/logging.properties)并查看tomcat日志,执行停止在;

        22-Oct-2018 21:49:50.171 FINE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.findResource     findResource(javax/persistence/spi/PersistenceProviderResolverHolder.class)
        22-Oct-2018 21:49:50.171 FINE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.findResource     --> Returning 'jar:file:/var/lib/tomcat8/webapps/ROOT/WEB-INF/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar!/javax/persistence/spi/PersistenceProviderResolverHolder.class'
        22-Oct-2018 21:49:50.172 FINE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.getResource   --> Returning 'jar:file:/var/lib/tomcat8/webapps/ROOT/WEB-INF/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar!/javax/persistence/spi/PersistenceProviderResolverHolder.class'
        22-Oct-2018 21:49:50.172 FINE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream getResourceAsStream(javax/persistence/spi/PersistenceProviderResolverHolder.class)
        22-Oct-2018 21:49:50.172 FINE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream   --> Returning stream from cache
        22-Oct-2018 21:49:50.172 FINE [Thread-8] org.apache.catalina.loader.WebappClassLoaderBase.getResource getResource(java/nio/file/Path.class)
        22-Oct-2018 21:49:50.172 FINE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.loadClass   Loading class from local repository
        22-Oct-2018 21:49:50.172 FINE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.loadClass loadClass(javax.persistence.spi.PersistenceProviderResolver, false)
        22-Oct-2018 21:49:50.173 FINE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.loadClass   Searching local repositories
        22-Oct-2018 21:49:50.173 FINE [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.findClass     findClass(javax.persistence.spi.PersistenceProviderResolver)
    

    然后我分析了内存使用和Java堆大小,但没有发现任何可疑的东西。

    然后我尝试获取线程转储,注意到在retrace中有一个潜在的bug,因为它导致两个线程相互阻塞。下面是FastThread.io的线程转储分析:

        Application is suffering from deadlock. Below are the threads which are causing deadlock
    
    
        Thread-8 is in deadlock with localhost-startStop-1
    
        Thread-8 - priority:5 - threadId:0x00007f589d57c000 - nativeId:0x7b11 - state:BLOCKED
        stackTrace:
        java.lang.Thread.State: BLOCKED (on object monitor)
        at org.apache.catalina.loader.WebappClassLoaderBase.filter(WebappClassLoaderBase.java:2775)
        - waiting to lock <0x00000006e5ad0a48> (a org.apache.catalina.loader.WebappClassLoader)
        at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:1033)
        at com.stackify.bundled.javassist.LoaderClassPath.find(Unknown Source)
        at com.stackify.bundled.javassist.ClassPoolTail.find(Unknown Source)
        at com.stackify.bundled.javassist.ClassPool.find(Unknown Source)
        at com.stackify.bundled.javassist.ClassPool.createCtClass(Unknown Source)
        at com.stackify.bundled.javassist.ClassPool.get0(Unknown Source)
        - locked <0x00000006e55cacd8> (a com.stackify.bundled.javassist.ClassPool)
        at com.stackify.bundled.javassist.ClassPool.get(Unknown Source)
        at com.stackify.bundled.javassist.CtClassType.getInterfaces(Unknown Source)
        at com.stackify.apm.javassist.a.b(Unknown Source)
        at com.stackify.apm.javassist.a.<init>(Unknown Source)
        at com.stackify.apm.javassist.a.<init>(Unknown Source)
        at com.stackify.apm.javassist.e.a(Unknown Source)
        at com.stackify.apm.javassist.f.a(Unknown Source)
        at com.stackify.apm.javassist.c.transform(Unknown Source)
        at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
        at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
        at sun.misc.Unsafe.defineAnonymousClass(Native Method)
        at java.lang.invoke.InnerClassLambdaMetafactory.spinInnerClass(InnerClassLambdaMetafactory.java:326)
        at java.lang.invoke.InnerClassLambdaMetafactory.buildCallSite(InnerClassLambdaMetafactory.java:194)
        at java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:304)
        at java.lang.invoke.LambdaForm$DMH/1287071204.invokeStatic_L6_L(LambdaForm$DMH)
        at java.lang.invoke.LambdaForm$BMH/2100450555.reinvoke(LambdaForm$BMH)
        at java.lang.invoke.LambdaForm$MH/1996378445.invoke_MT(LambdaForm$MH)
        at java.lang.invoke.CallSite.makeSite(CallSite.java:302)
        at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:307)
        at java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:297)
        at com.###.common.data.CustomerFacade.getAllCustomerInternalIdentifiers(CustomerFacade.java:70)
        at com.###.common.ConfigurationHierarchyCacheHandler.getCustomerInternalIds(ConfigurationHierarchyCacheHandler.java:214)
        at com.###.common.ConfigurationHierarchyCacheHandler.getApplicableKeys(ConfigurationHierarchyCacheHandler.java:359)
        at com.###.common.ConfigurationHierarchyCacheHandler.refreshLocalCache(ConfigurationHierarchyCacheHandler.java:202)
        at com.###.common.ConfigurationHierarchyCacheHandler.forceRefreshLocalCacheSync(ConfigurationHierarchyCacheHandler.java:194)
        at com.###.common.ConfigurationHierarchyCacheHandler$$Lambda$166/382627531.run(Unknown Source)
        at com.###.util.MDCRetainingRunnable.run(MDCRetainingRunnable.java:39)
        at com.###.util.MDCRetainingRunnable.run(MDCRetainingRunnable.java:39)
        at java.lang.Thread.run(Thread.java:745)
        Locked ownable synchronizers:
        - None
    
        localhost-startStop-1 - priority:5 - threadId:0x00007f58b800c800 - nativeId:0x7af6 - state:BLOCKED
        stackTrace:
        java.lang.Thread.State: BLOCKED (on object monitor)
        at com.stackify.bundled.javassist.ClassPool.get0(Unknown Source)
        - waiting to lock <0x00000006e55cacd8> (a com.stackify.bundled.javassist.ClassPool)
        at com.stackify.bundled.javassist.ClassPool.get(Unknown Source)
        at com.stackify.bundled.javassist.CtClassType.getInterfaces(Unknown Source)
        at com.stackify.apm.javassist.a.b(Unknown Source)
        at com.stackify.apm.javassist.a.<init>(Unknown Source)
        at com.stackify.apm.javassist.a.<init>(Unknown Source)
        at com.stackify.apm.javassist.e.a(Unknown Source)
        at com.stackify.apm.javassist.f.a(Unknown Source)
        at com.stackify.apm.javassist.c.transform(Unknown Source)
        at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
        at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2496)
        - locked <0x00000006e5ad0a48> (a org.apache.catalina.loader.WebappClassLoader)
        at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:860)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1302)
        - locked <0x00000006e5ad0a48> (a org.apache.catalina.loader.WebappClassLoader)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
        at org.hibernate.jpa.HibernatePersistenceProvider.<clinit>(HibernatePersistenceProvider.java:38)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
        at java.lang.Class.newInstance(Class.java:442)
        at javax.persistence.spi.PersistenceProviderResolverHolder$PersistenceProviderResolverPerClassLoader$CachingPersistenceProviderResolver.getPersistenceProviders(PersistenceProviderResolverHolder.java:177)
        - locked <0x00000006e21cac88> (a java.util.ArrayList)
        at javax.persistence.spi.PersistenceProviderResolverHolder$PersistenceProviderResolverPerClassLoader.getPersistenceProviders(PersistenceProviderResolverHolder.java:84)
        at javax.persistence.Persistence.getProviders(Persistence.java:69)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:53)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
        at com.###.common.MyEntityManagerFactory.createEntityManager(MyEntityManagerFactory.java:30)
        - locked <0x00000006e21caf18> (a java.lang.Class for com.###.common.MyEntityManagerFactory)
        at com.***.forms.data.ConfigurationHierarchyPackageSelector.createEntityManager(ConfigurationHierarchyPackageSelector.java:572)
        at com.***.forms.data.ConfigurationHierarchyPackageSelector.getAllCustomerPackages(ConfigurationHierarchyPackageSelector.java:469)
        at com.***.fieldticketing.data.FieldTicketStartupService.cacheInstalledPackagesLocally(FieldTicketStartupService.java:130)
        at com.***.fieldticketing.data.FieldTicketStartupService.startup(FieldTicketStartupService.java:102)
        at com.***.servlet.IVWServletContextListener.contextInitialized(IVWServletContextListener.java:24)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4738)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5181)
        - locked <0x00000006e48adfb8> (a org.apache.catalina.core.StandardContext)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        - locked <0x00000006e48adfb8> (a org.apache.catalina.core.StandardContext)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1101)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1816)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
        Locked ownable synchronizers:
        - <0x00000006e4a25700> (a java.util.concurrent.ThreadPoolExecutor$Worker)
    

    在Cuffer-Futal.java中:70和CytaseStaleCypGeaseExcel。Java:572,我锁定一个对象 MyEntityManagerFactory类手动创建EntityManagerFactory实例。返回到tomcat日志,tomcat会随机停止一个与持久性相关的类的日志记录。

    那么我的猜测是在回溯中有一个错误,它不能有效地处理锁。

    如有任何反馈,我将不胜感激。

    0 回复  |  直到 6 年前