Problema
Ao acessar o servidor Weblogic as chamadas ficam travadas e o servidor não respondem as requisições. Analisando o thread dump vemos stack do seguinte tipo:
“[ACTIVE] ExecuteThread: ‘1’ for queue: ‘weblogic.kernel.Default (self-tuning)'” id=21 idx=0x50 tid=8305 prio=5 alive, in native, daemon
at jrockit/io/FileNativeIO.readBytesPinned(Ljava/io/FileDescriptor;[BII)I(Native Method)
at jrockit/io/FileNativeIO.readBytes(FileNativeIO.java:32)
at java/io/FileInputStream.readBytes([BII)I(FileInputStream.java)
at java/io/FileInputStream.read(FileInputStream.java:220)
at sun/security/provider/NativePRNG$RandomIO.readFully(NativePRNG.java:185)
at sun/security/provider/NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:202)
^– Holding lock: java/lang/Object@0xd33fc478[biased lock]
at sun/security/provider/NativePRNG$RandomIO.access$300(NativePRNG.java:108)
at sun/security/provider/NativePRNG.engineGenerateSeed(NativePRNG.java:102)
at java/security/SecureRandom.generateSeed(SecureRandom.java:495)
at com/bea/security/utils/random/AbstractRandomData.ensureInittedAndSeeded(AbstractRandomData.java:91)
^– Holding lock: com/bea/security/utils/random/SecureRandomData@0xc1d78a28[recursive]
at com/bea/security/utils/random/AbstractRandomData.getRandomBytes(AbstractRandomData.java:105)
^– Holding lock: com/bea/security/utils/random/SecureRandomData@0xc1d78a28[biased lock]
at com/bea/security/utils/random/AbstractRandomData.getRandomBytes(AbstractRandomData.java:100)
at com/bea/console/utils/CSRFUtils.getSecret(CSRFUtils.java:56)
at jsp_servlet/_jsp/_changemgmt/__changemanager._jspService(__changemanager.java:156)
at weblogic/servlet/jsp/JspBase.service(JspBase.java:34)
at weblogic/servlet/internal/StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic/servlet/internal/StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic/servlet/internal/ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic/servlet/internal/ServletStubImpl.onAddToMapException(ServletStubImpl.java:416)
at weblogic/servlet/internal/ServletStubImpl.execute(ServletStubImpl.java:327)
at weblogic/servlet/internal/ServletStubImpl.execute(ServletStubImpl.java:184)
at weblogic/servlet/internal/RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:526)
at weblogic/servlet/internal/RequestDispatcherImpl.include(RequestDispatcherImpl.java:447)
at org/apache/beehive/netui/pageflow/scoping/internal/ScopedRequestDispatcher.include(ScopedRequestDispatcher.java:119)
at com/bea/netuix/servlets/controls/content/JspContent.beginRender(JspContent.java:552)
at com/bea/netuix/servlets/controls/content/NetuiContent.beginRender(NetuiContent.java:365)
at com/bea/netuix/nf/ControlLifecycle$7.visit(ControlLifecycle.java:485)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:518)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walk(ControlTreeWalker.java:220)
at com/bea/netuix/nf/Lifecycle.processLifecycles(Lifecycle.java:395)
at com/bea/netuix/nf/Lifecycle.processLifecycles(Lifecycle.java:361)
at com/bea/netuix/nf/Lifecycle.processLifecycles(Lifecycle.java:352)
at com/bea/netuix/nf/Lifecycle.run(Lifecycle.java:326)
at com/bea/netuix/nf/UIControl.render(UIControl.java:582)
at com/bea/netuix/servlets/controls/PresentationContext.render(PresentationContext.java:486)
at com/bea/netuix/servlets/util/RenderToolkit.renderChild(RenderToolkit.java:146)
at com/bea/netuix/servlets/jsp/taglib/skeleton/Child.doTag(Child.java:63)
at jsp_servlet/_framework/_skeletons/_wlsconsole/__nolayout._jspService(__nolayout.java:119)
at weblogic/servlet/jsp/JspBase.service(JspBase.java:34)
at weblogic/servlet/internal/StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic/servlet/internal/StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic/servlet/internal/ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic/servlet/internal/ServletStubImpl.execute(ServletStubImpl.java:184)
at weblogic/servlet/internal/RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:529)
at weblogic/servlet/internal/RequestDispatcherImpl.include(RequestDispatcherImpl.java:447)
at com/bea/netuix/servlets/controls/application/laf/JspTools.renderJsp(JspTools.java:130)
at com/bea/netuix/servlets/controls/application/laf/JspControlRenderer.beginRender(JspControlRenderer.java:72)
at com/bea/netuix/servlets/controls/application/laf/PresentationControlRenderer.beginRender(PresentationControlRenderer.java:65)
at com/bea/netuix/nf/ControlLifecycle$7.visit(ControlLifecycle.java:481)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:518)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walk(ControlTreeWalker.java:220)
at com/bea/netuix/nf/Lifecycle.processLifecycles(Lifecycle.java:395)
at com/bea/netuix/nf/Lifecycle.processLifecycles(Lifecycle.java:361)
at com/bea/netuix/nf/Lifecycle.processLifecycles(Lifecycle.java:352)
at com/bea/netuix/nf/Lifecycle.run(Lifecycle.java:326)
at com/bea/netuix/nf/UIControl.render(UIControl.java:582)
at com/bea/netuix/servlets/controls/PresentationContext.render(PresentationContext.java:486)
at com/bea/netuix/servlets/util/RenderToolkit.renderChild(RenderToolkit.java:146)
at com/bea/netuix/servlets/jsp/taglib/skeleton/Child.doTag(Child.java:63)
at jsp_servlet/_framework/_skeletons/_wlsconsole/__twocollayout._jspService(__twocollayout.java:246)
at weblogic/servlet/jsp/JspBase.service(JspBase.java:34)
at weblogic/servlet/internal/StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic/servlet/internal/StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic/servlet/internal/ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic/servlet/internal/ServletStubImpl.onAddToMapException(ServletStubImpl.java:416)
at weblogic/servlet/internal/ServletStubImpl.execute(ServletStubImpl.java:327)
at weblogic/servlet/internal/ServletStubImpl.execute(ServletStubImpl.java:184)
at weblogic/servlet/internal/RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:529)
at weblogic/servlet/internal/RequestDispatcherImpl.include(RequestDispatcherImpl.java:447)
at com/bea/netuix/servlets/controls/application/laf/JspTools.renderJsp(JspTools.java:130)
at com/bea/netuix/servlets/controls/application/laf/JspControlRenderer.beginRender(JspControlRenderer.java:72)
at com/bea/netuix/servlets/controls/application/laf/PresentationControlRenderer.beginRender(PresentationControlRenderer.java:65)
at com/bea/netuix/nf/ControlLifecycle$7.visit(ControlLifecycle.java:481)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:518)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
at com/bea/netuix/nf/ControlTreeWalker.walk(ControlTreeWalker.java:220)
at com/bea/netuix/nf/Lifecycle.processLifecycles(Lifecycle.java:395)
at com/bea/netuix/nf/Lifecycle.processLifecycles(Lifecycle.java:361)
at com/bea/netuix/nf/Lifecycle.runOutbound(Lifecycle.java:208)
at com/bea/netuix/nf/Lifecycle.run(Lifecycle.java:162)
at com/bea/netuix/servlets/manager/UIServlet.runLifecycle(UIServlet.java:388)
at com/bea/netuix/servlets/manager/UIServlet.doPost(UIServlet.java:258)
at com/bea/netuix/servlets/manager/UIServlet.doGet(UIServlet.java:211)
at com/bea/netuix/servlets/manager/UIServlet.service(UIServlet.java:196)
at com/bea/netuix/servlets/manager/SingleFileServlet.service(SingleFileServlet.java:251)
at javax/servlet/http/HttpServlet.service(HttpServlet.java:820)
at com/bea/console/utils/MBeanUtilsInitSingleFileServlet.service(MBeanUtilsInitSingleFileServlet.java:64)
at weblogic/servlet/AsyncInitServlet.service(AsyncInitServlet.java:130)
at weblogic/servlet/internal/StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic/servlet/internal/StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic/servlet/internal/ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic/servlet/internal/TailFilter.doFilter(TailFilter.java:26)
at weblogic/servlet/internal/FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic/servlet/internal/RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic/servlet/internal/FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic/servlet/internal/WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
at weblogic/servlet/internal/WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
at weblogic/security/acl/internal/AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic/security/service/SecurityManager.runAs(SecurityManager.java:120)
at weblogic/servlet/internal/WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
at weblogic/servlet/internal/WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic/servlet/internal/ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic/work/ExecuteThread.execute(ExecuteThread.java:256)
at weblogic/work/ExecuteThread.run(ExecuteThread.java:221)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
— end of trace
Solução
Isso ocorre porque o comando random não está conseguindo gerar entropia suficiente, isso deixa as requisições esperando. Para corrigir basta trocar a geração para utilizar urrando, para isso basta passar o seguinte parâmetro para a JVM do servidor:
-Djava.security.egd=file:///dev/urandom
Referência
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6366924
