Adding a timeout prevents the main thread from hanging for ever.
It's fine, but it somehow hides a bug here.
And remains the question: which value is reasonable?
- half an hour: fine maybe for big apps. What is a big app? Still an
eternity for tests or hello world
- 3s: fine for unit tests, but fail anyway for big apps.

2 situations:
- server not starting: we can easily notice it does not work and with the
kill -3 see where it comes from
- server starting anyway, and exception probably in logs. Best situation,
logs are checked and we can see the issue. Bad situation, we don't see
anything and app can more or less work, etc

Personally, I prefer to see the server to starting so that we know and we
can fix the server. This is true even in the CI and during dev.
The second one is probably better in users eyes, but not in mine cause that
means we have somewhere an unknown and tricky bug to find.

I'd say -1 as well probably.

--
Jean-Louis Monteiro
http://twitter.com/jlouismonteiro
http://www.tomitribe.com


On Fri, Aug 8, 2014 at 2:08 PM, Romain Manni-Bucau <rmannibu...@gmail.com>
wrote:

> Hi
>
> Well I don't manage to comment on jira (proxy issue I guess)
>
> latch.await(timeout, TimeUnit.SECONDS); is wrong IMHO (no timeout
> should be needed otherwise we know we'll be broken for big apps, in
> particular with 30s as default, we could put 30mn if we want to keep
> it).
>
> Personally I thought fixing it more on the long term getting rid of
> async part since we now can't avoid link() and rewriting what is slow
> if it is - depend a lot of the app, I'll try to use a deltaspike +
> spring one to test it. Async impl was mainly a lazy solution when it
> was not mandatory but since JavaEE 6 it is actually mandatory so we
> need to tackle it properly. It should take next week I guess maximum.
>
> wdyt?
>
>
>
>
>
> Romain Manni-Bucau
> Twitter: @rmannibucau
> Blog: http://rmannibucau.wordpress.com/
> LinkedIn: http://fr.linkedin.com/in/rmannibucau
> Github: https://github.com/rmannibucau
>
>
> 2014-08-08 13:48 GMT+02:00 Andy Gumbrecht <agumbre...@tomitribe.com>:
> > Submitted a patch to XBean that fixes the issue:
> > https://issues.apache.org/jira/browse/XBEAN-271
> >
> > Andy.
> >
> >
> > On 07/08/2014 20:52, David Blevins wrote:
> >>
> >> Getting a deadlock on AsynchronousInheritanceAnnotationFinder when the
> >> interface a class implements is not in the jar being scanned.
> >>
> >> "main" #1 prio=5 os_prio=31 tid=0x00007f98ba812000 nid=0x1903 waiting on
> >> condition [0x000000010862c000]
> >>     java.lang.Thread.State: WAITING (parking)
> >>         at sun.misc.Unsafe.park(Native Method)
> >>         - parking to wait for  <0x000000016dd4ffc8> (a
> >> java.util.concurrent.CountDownLatch$Sync)
> >>         at
> >> java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> >>         at
> >>
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
> >>         at
> >>
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
> >>         at
> >>
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
> >>         at
> >> java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
> >>         at
> >>
> org.apache.xbean.finder.AsynchronousInheritanceAnnotationFinder.join(AsynchronousInheritanceAnnotationFinder.java:111)
> >>         at
> >>
> org.apache.xbean.finder.AsynchronousInheritanceAnnotationFinder.findImplementations(AsynchronousInheritanceAnnotationFinder.java:97)
> >>         at
> >>
> org.apache.openejb.config.FinderFactory$ModuleLimitedFinder.findImplementations(FinderFactory.java:275)
> >>         at
> >>
> org.apache.tomee.catalina.OpenEJBContextConfig.processServletContainerInitializers(OpenEJBContextConfig.java:436)
> >>         at
> >>
> org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1265)
> >>         at
> >>
> org.apache.tomee.catalina.OpenEJBContextConfig.webConfig(OpenEJBContextConfig.java:363)
> >>         at
> >>
> org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:873)
> >>         - locked <0x0000000118d204b8> (a
> >> org.apache.tomee.catalina.OpenEJBContextConfig)
> >>         at
> >>
> org.apache.tomee.catalina.OpenEJBContextConfig.configureStart(OpenEJBContextConfig.java:113)
> >>         at
> >>
> org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:371)
> >>         at
> >>
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> >>         at
> >>
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
> >>         at
> >>
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5355)
> >>         - locked <0x0000000118d1f970> (a
> >> org.apache.catalina.core.StandardContext)
> >>         at
> >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> >>         - locked <0x0000000118d1f970> (a
> >> org.apache.catalina.core.StandardContext)
> >>         at
> >>
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
> >>         at
> >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
> >>         at
> >> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
> >>
> >> More importantly, when/why did we start using findImplementations?
> >>
> >>
> >> -David
> >>
> >>
> >>
> >
> > --
> >   Andy Gumbrecht
> >
> >   http://www.tomitribe.com
> >   agumbre...@tomitribe.com
> >   https://twitter.com/AndyGeeDe
> >
> >   TomEE treibt Tomitribe! | http://tomee.apache.org
> >
>

Reply via email to