[jboss-jira] [JBoss JIRA] (WFLY-2692) infinite wait in BasicComponent#waitForComponentStart() causes server hang

David Lloyd (JIRA) issues at jboss.org
Thu May 21 12:20:20 EDT 2015


    [ https://issues.jboss.org/browse/WFLY-2692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13070119#comment-13070119 ] 

David Lloyd commented on WFLY-2692:
-----------------------------------

This either needs a timeout (which I don't like because theoretically these cases are detectable, and if we ever fix it properly, the timeout will become vestigial configuration), or a way to cancel if/when the instigating management operation times out.

Needs a volunteer to figure this out.

> infinite wait in BasicComponent#waitForComponentStart() causes server hang
> --------------------------------------------------------------------------
>
>                 Key: WFLY-2692
>                 URL: https://issues.jboss.org/browse/WFLY-2692
>             Project: WildFly
>          Issue Type: Bug
>          Components: EE
>    Affects Versions: 8.0.0.CR1
>            Reporter: Thomas Frühbeck
>              Labels: EE, MSC, hangs
>         Attachments: WFLY-2692_infiniteHang_stacktrace.log
>
>
> some error in deployment may cause infinite wait on BasicComponent#waitForComponentStart():
>      protected void waitForComponentStart() {
>         if (!gate) {
>             // Block until successful start
>             synchronized (this) {
>                while (!gate) {
>                     // TODO: check for failure condition
>                     try {
>                         wait();
>  
> The server life cycle management is completely blocked, no normal redeployment/shutdown will work!
> Please provide some remedy (e.g. timed wait and fail?), IMHO this is really _very_ distressing for a production ready system.
>  
> Sample stack trace:
> "MSC service thread 1-7" prio=10 tid=0x00007f6c60001800 nid=0x7af0 in Object.wait() [0x00007f6cbd785000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x00000000e20a0a20> (a org.jboss.as.ejb3.component.singleton.SingletonComponent)
>         at java.lang.Object.wait(Object.java:503)
>         at org.jboss.as.ee.component.BasicComponent.waitForComponentStart(BasicComponent.java:115)
>         - locked <0x00000000e20a0a20> (a org.jboss.as.ejb3.component.singleton.SingletonComponent)
>         at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:145)
>         at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:133)
>         at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:89)
>         at org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:123)
>         - locked <0x00000000e20bfa10> (a java.lang.Object)
>         at org.jboss.as.ejb3.component.singleton.SingletonComponentInstanceAssociationInterceptor.processInvocation(SingletonComponentInstanceAssociationInterce
> ptor.java:47)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:95)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:325)
>         at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:437)
>         at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:325)
>         at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
>         at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185)
>         at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:182)
>         at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>         at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
>         at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)



More information about the jboss-jira mailing list