【发布时间】:2021-09-14 23:08:08
【问题描述】:
我们面临CouldNotLockPageException 如果这个异常发生在我们的生产环境中,我们必须重启tomcat。 当我尝试在本地系统和演示服务器上生成相同的异常时。但它无法重现。为了重现该异常,我们尝试通过增加演示服务器上的负载在下载和上传大文件时点击多个 url,但我仍然无法重现它。 在CouldNotLockPageException的堆栈跟踪下面,在这个异常之后我们必须重新启动tomcat
堆栈跟踪
[WARN] 2021-03-24 04:26:56.355 [http-nio-8080-exec-68] PageAccessSynchronizer - 线程 'http-nio-8080-exec-68' 未能获得对 id 为页面的锁定1',在允许的 1 分钟内尝试了 1 分钟。持有锁的线程名为“http-nio-8080-exec-66”。 [警告] 2021-03-24 04:26:56.357 [http-nio-8080-exec-68] PageAccessSynchronizer -“http-nio-8080-exec-66”守护进程 prio=5 tid=368 state=BLOCKED org.apache.wicket.util.lang.Threads$ThreadDump:空 在 biz.smart360.elastic.app.DefaultAppCache$DefaultUserCache.bizRepository(AppCache.scala:146) ~[elastic-app.jar:?] 在 biz.smart360.biz.repository.BizUserSession.repositoryOperations(BizUserSession.scala:73) ~[smart360.jar:0.1.0-SNAPSHOT] 在 biz.smart360.biz.repository.BizRepositoryOperationsDirectResolver.repositoryOperations(BizRepositoryOperationsDirectResolver.scala:21) ~[smart360.jar:0.1.0-SNAPSHOT] 在 biz.smart360.biz.repository.BizRepositoryOperationsDirectResolver.openedTabularViewpointsMenu(BizRepositoryOperationsDirectResolver.scala:47) ~[smart360.jar:0.1.0-SNAPSHOT] 在 biz.smart360.biz.repository.BizRepositoryOperationsResolverTransientProxyBase.openedTabularViewpointsMenu(BizRepositoryOperationsResolverTransientProxyBase.java:62) ~[smart360.jar:0.1.0-SNAPSHOT] 在 biz.smart360.webapp.ui.component.navigation.RepositoryNavigationActionsPanel.onInitialize(RepositoryNavigationActionsPanel.java:101) ~[smart360.jar:0.1.0-SNAPSHOT] 在 org.apache.wicket.Component.fireInitialize(Component.java:878) ~[wicket-core-7.9.0.jar:7.9.0] 在 org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1070) ~[wicket-core-7.9.0.jar:7.9.0] 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) [catalina.jar:9.0.41] 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) [catalina.jar:9.0.41] 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [catalina.jar:9.0.41] 在 org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) [catalina.jar:9.0.41] 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [catalina.jar:9.0.41] 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [catalina.jar:9.0.41] 在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) [tomcat-coyote.jar:9.0.41] 在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-coyote.jar:9.0.41] 在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) [tomcat-coyote.jar:9.0.41] 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) [tomcat-coyote.jar:9.0.41] 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:9.0.41] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.41] 在 java.lang.Thread.run(Thread.java:834) [?:?] [ERROR] 2021-03-24 04:26:56.359 [http-nio-8080-exec-68] InMemoryErrorReporting - 为用户 jiwon.lim1 注册的 id 为 19bbb439-e89f-40ad-89c3-a05a6805e53e 的错误@yk.co.kr: org.apache.wicket.page.CouldNotLockPageException:无法锁定页面 1。尝试持续了 1 分钟 在 org.apache.wicket.page.PageAccessSynchronizer.lockPage(PageAccessSynchronizer.java:167) 在 org.apache.wicket.page.PageAccessSynchronizer$2.getPage(PageAccessSynchronizer.java:245) 在 org.apache.wicket.DefaultMapperContext.getPageInstance(DefaultMapperContext.java:113) 在 org.apache.wicket.core.request.handler.PageProvider.getStoredPage(PageProvider.java:299) 在 org.apache.wicket.core.request.handler.PageProvider.isNewPageInstance(PageProvider.java:211) 在 org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.checkExpiration(AbstractBookmarkableMapper.java:335) 在 org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.processHybrid(AbstractBookmarkableMapper.java:258) 在 org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.mapRequest(AbstractBookmarkableMapper.java:364) 在 org.apache.wicket.request.mapper.CompoundRequestMapper.mapRequest(CompoundRequestMapper.java:147) 在 org.apache.wicket.protocol.https.HttpsMapper.mapRequest(HttpsMapper.java:101) 在 org.apache.wicket.request.cycle.RequestCycle.resolveRequestHandler(RequestCycle.java:189) 在 org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:219) 在 org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293) 在 org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
【问题讨论】:
-
您应该检查为什么
DefaultUserCache.bizRepository在一分钟内没有返回结果。为什么你'必须重新启动tomcat'?您的所有网络服务器线程是否都停留在调用“bizRepository”中? -
相同的代码库在另一台服务器上运行良好,并且没有此类异常 " org.apache.wicket.page.CouldNotLockPageException:无法锁定页面 1。尝试持续了 1 分钟" 但我已经检查并尝试在我的本地和演示服务器上创建相同的异常,但直到我无法重现它。
标签: java spring apache2 wicket tomcat9