Document time unit of async timeout #468

Closed
kutzi opened this Issue Apr 16, 2015 · 39 comments

Comments

Projects
None yet
2 participants
@kutzi

kutzi commented Apr 16, 2015

The documentation says:
"The @async annotation let you configure a timeout. If the timeout is reached, and the result is still not computed, an error result is returned to the client."

But what is that actual unit? Milliseconds? Besides the fact that I would also like to know it ;-), this should also be documented in the documentation and in the annotation.
Maybe also good to be able to specify the timeunit with some sensible default unit

@cescoffier cescoffier added this to the 0.8.1 milestone Apr 16, 2015

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 16, 2015

Member

The default unit in second. Gonna document it right now.

Member

cescoffier commented Apr 16, 2015

The default unit in second. Gonna document it right now.

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 16, 2015

Actually, I'm also not able to get it working as advertised.
I've put .@async(timeout = 2) on a controller method, then stopped at a breakpoint in the method, but the HTTP call never returns.

kutzi commented Apr 16, 2015

Actually, I'm also not able to get it working as advertised.
I've put .@async(timeout = 2) on a controller method, then stopped at a breakpoint in the method, but the HTTP call never returns.

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 17, 2015

Member

Did you try by setting the unit ?
Anyway, gonna have a look.

Member

cescoffier commented Apr 17, 2015

Did you try by setting the unit ?
Anyway, gonna have a look.

@cescoffier cescoffier self-assigned this Apr 17, 2015

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 17, 2015

Tried it with a unit, too. Same result

kutzi commented Apr 17, 2015

Tried it with a unit, too. Same result

@cescoffier cescoffier added the bug label Apr 17, 2015

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 17, 2015

Member

there is definitely a bug, the returned result is not correct (500 instead of the right one).

Member

cescoffier commented Apr 17, 2015

there is definitely a bug, the returned result is not correct (500 instead of the right one).

@cescoffier cescoffier added in progress and removed ready labels Apr 17, 2015

@cescoffier cescoffier removed the in progress label Apr 17, 2015

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 17, 2015

Member

So, I've 1) updated the documentation 2) fix the returned result

Would you be able to try on the SNAPSHOT (either built by yourself or once deployed on Snapshot OSS (may take a couple of hours the time to build and check everything on the CI)).

Member

cescoffier commented Apr 17, 2015

So, I've 1) updated the documentation 2) fix the returned result

Would you be able to try on the SNAPSHOT (either built by yourself or once deployed on Snapshot OSS (may take a couple of hours the time to build and check everything on the CI)).

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 17, 2015

I can have a look at the SNAPSHOT - probably on Monday earliest

I'm not sure if you're talking about the same bug as I did. You fixed something about a 500 return code, but I didn't get a response at all!

kutzi commented Apr 17, 2015

I can have a look at the SNAPSHOT - probably on Monday earliest

I'm not sure if you're talking about the same bug as I did. You fixed something about a 500 return code, but I didn't get a response at all!

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 17, 2015

To describe my problem again:

  • I wrote a Controller with a @Route method with a @Async annotation and timeout.
  • I connect to the wisdom process with a debugger and set a breakpoint in the method
  • I call the corresponding URL with the webbrowser
    -> now I expect that I get a response in the browser after the timeout has expired

However, the page loads 'forever' in the browser until I continue over the breakpoint in the debugger

kutzi commented Apr 17, 2015

To describe my problem again:

  • I wrote a Controller with a @Route method with a @Async annotation and timeout.
  • I connect to the wisdom process with a debugger and set a breakpoint in the method
  • I call the corresponding URL with the webbrowser
    -> now I expect that I get a response in the browser after the timeout has expired

However, the page loads 'forever' in the browser until I continue over the breakpoint in the debugger

@cescoffier cescoffier reopened this Apr 18, 2015

@cescoffier cescoffier added the ready label Apr 18, 2015

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 18, 2015

Member

You are absolutely right. There is something broken. The code call interrupt on the thread processing the timeout, but the thread may not stop. So, all my test with Thread.sleep were actually working (because we interrupt the sleeping time).
Let me change the issue title to be more expressive.

Member

cescoffier commented Apr 18, 2015

You are absolutely right. There is something broken. The code call interrupt on the thread processing the timeout, but the thread may not stop. So, all my test with Thread.sleep were actually working (because we interrupt the sleeping time).
Let me change the issue title to be more expressive.

@cescoffier cescoffier changed the title from Document time unit of async timeout to Async action not interrupted correctly Apr 18, 2015

@cescoffier cescoffier changed the title from Async action not interrupted correctly to Document time unit of async timeout Apr 18, 2015

@cescoffier cescoffier added in progress and removed ready labels Apr 18, 2015

@cescoffier cescoffier removed the in progress label Apr 18, 2015

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 18, 2015

Member

Ok, I've changed how we managed the Async task to use a simpler approach that seems to make your test working (without introducing regressions in mines).

Will let you know when the snapshot will be available.

Member

cescoffier commented Apr 18, 2015

Ok, I've changed how we managed the Async task to use a simpler approach that seems to make your test working (without introducing regressions in mines).

Will let you know when the snapshot will be available.

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 18, 2015

Member

New snapshot available.

Member

cescoffier commented Apr 18, 2015

New snapshot available.

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 20, 2015

I've updated to 0.8.1-SNAPSHOT (that's the right snapshot?) and still seeing the sames behaviour:
as long as the execution is stopped on the breakpoint the http call doesn't return

kutzi commented Apr 20, 2015

I've updated to 0.8.1-SNAPSHOT (that's the right snapshot?) and still seeing the sames behaviour:
as long as the execution is stopped on the breakpoint the http call doesn't return

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 20, 2015

And even after I resume the execution in the debugger, after I paused there for as long as the timeout is, I get a normal response and not a timeout.

This is not working at all, as I would expect it to do. Maybe you have a different opinion on how async should work?

kutzi commented Apr 20, 2015

And even after I resume the execution in the debugger, after I paused there for as long as the timeout is, I get a normal response and not a timeout.

This is not working at all, as I would expect it to do. Maybe you have a different opinion on how async should work?

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 20, 2015

Member

Let me recheck, because when I tested it, I got the timeout result.

Member

cescoffier commented Apr 20, 2015

Let me recheck, because when I tested it, I got the timeout result.

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 22, 2015

Member

So, I've rechecked, and for me things are working almost as expected:

I've a simple action method:

    @Async(timeout = 2)
    @Route(uri="/test", method = HttpMethod.GET)
    public Result async() {
        return ok("hello");
    }

with a breaking point on the line with the return.

Then, I go the the served url, the debugger pop up and stop the execution, wait the the timeout to be triggered. Then resume the execution and I get a "request timeout".

However, and that's why I've wrote almost, I've a stack trace in the console:

java.lang.IllegalStateException: Response has already been written
    at org.vertx.java.core.http.impl.DefaultHttpServerResponse.checkWritten(DefaultHttpServerResponse.java:455) ~[na:na]
    at org.vertx.java.core.http.impl.DefaultHttpServerResponse.putHeader(DefaultHttpServerResponse.java:131) ~[na:na]
    at org.vertx.java.core.http.impl.DefaultHttpServerResponse.putHeader(DefaultHttpServerResponse.java:39) ~[na:na]
    at org.wisdom.framework.vertx.HttpHandler.finalizeWriteReponse(HttpHandler.java:283) ~[na:na]
    at org.wisdom.framework.vertx.HttpHandler.writeResponse(HttpHandler.java:251) ~[na:na]
    at org.wisdom.framework.vertx.HttpHandler.access$100(HttpHandler.java:51) ~[na:na]
    at org.wisdom.framework.vertx.HttpHandler$3.onFailure(HttpHandler.java:222) ~[na:na]
    at com.google.common.util.concurrent.Futures$6.run(Futures.java:1310) ~[guava-18.0.jar:na]
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457) ~[guava-18.0.jar:na]
    at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) [guava-18.0.jar:na]
    at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) [guava-18.0.jar:na]
    at com.google.common.util.concurrent.ListenableFutureTask.done(ListenableFutureTask.java:91) [guava-18.0.jar:na]
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:384) [na:1.8.0]
    at java.util.concurrent.FutureTask.setException(FutureTask.java:251) [na:1.8.0]
    at java.util.concurrent.FutureTask.run(FutureTask.java:271) [na:1.8.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0]
    at java.lang.Thread.run(Thread.java:744) [na:1.8.0]

I'm looking into it.

Member

cescoffier commented Apr 22, 2015

So, I've rechecked, and for me things are working almost as expected:

I've a simple action method:

    @Async(timeout = 2)
    @Route(uri="/test", method = HttpMethod.GET)
    public Result async() {
        return ok("hello");
    }

with a breaking point on the line with the return.

Then, I go the the served url, the debugger pop up and stop the execution, wait the the timeout to be triggered. Then resume the execution and I get a "request timeout".

However, and that's why I've wrote almost, I've a stack trace in the console:

java.lang.IllegalStateException: Response has already been written
    at org.vertx.java.core.http.impl.DefaultHttpServerResponse.checkWritten(DefaultHttpServerResponse.java:455) ~[na:na]
    at org.vertx.java.core.http.impl.DefaultHttpServerResponse.putHeader(DefaultHttpServerResponse.java:131) ~[na:na]
    at org.vertx.java.core.http.impl.DefaultHttpServerResponse.putHeader(DefaultHttpServerResponse.java:39) ~[na:na]
    at org.wisdom.framework.vertx.HttpHandler.finalizeWriteReponse(HttpHandler.java:283) ~[na:na]
    at org.wisdom.framework.vertx.HttpHandler.writeResponse(HttpHandler.java:251) ~[na:na]
    at org.wisdom.framework.vertx.HttpHandler.access$100(HttpHandler.java:51) ~[na:na]
    at org.wisdom.framework.vertx.HttpHandler$3.onFailure(HttpHandler.java:222) ~[na:na]
    at com.google.common.util.concurrent.Futures$6.run(Futures.java:1310) ~[guava-18.0.jar:na]
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457) ~[guava-18.0.jar:na]
    at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) [guava-18.0.jar:na]
    at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) [guava-18.0.jar:na]
    at com.google.common.util.concurrent.ListenableFutureTask.done(ListenableFutureTask.java:91) [guava-18.0.jar:na]
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:384) [na:1.8.0]
    at java.util.concurrent.FutureTask.setException(FutureTask.java:251) [na:1.8.0]
    at java.util.concurrent.FutureTask.run(FutureTask.java:271) [na:1.8.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0]
    at java.lang.Thread.run(Thread.java:744) [na:1.8.0]

I'm looking into it.

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 22, 2015

Member

so, fixed the stack trace (my bad. should have read my code before pushing).

Member

cescoffier commented Apr 22, 2015

so, fixed the stack trace (my bad. should have read my code before pushing).

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 22, 2015

Okay thanks.
Will try to find the time to re-test it

kutzi commented Apr 22, 2015

Okay thanks.
Will try to find the time to re-test it

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 25, 2015

Just re-read your previous-to-last comment:

"debugger pop up and stop the execution, wait the the timeout to be triggered. Then resume the execution and I get a "request timeout"

The point is that I would expect a timeout without resuming the execution in the debugger!
Isn't that the point of an async execution that it may be an execution taking much longer and as such shouldn't block the request processing altogether?

kutzi commented Apr 25, 2015

Just re-read your previous-to-last comment:

"debugger pop up and stop the execution, wait the the timeout to be triggered. Then resume the execution and I get a "request timeout"

The point is that I would expect a timeout without resuming the execution in the debugger!
Isn't that the point of an async execution that it may be an execution taking much longer and as such shouldn't block the request processing altogether?

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 25, 2015

FWIW, I've also created a test project:
https://github.com/kutzi/wisdom-test
Unsurprisingly, I still experience the same behaviour, when I put a breakpoint here:
https://github.com/kutzi/wisdom-test/blob/master/src/main/java/sample/WelcomeController.java#L54

kutzi commented Apr 25, 2015

FWIW, I've also created a test project:
https://github.com/kutzi/wisdom-test
Unsurprisingly, I still experience the same behaviour, when I put a breakpoint here:
https://github.com/kutzi/wisdom-test/blob/master/src/main/java/sample/WelcomeController.java#L54

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 25, 2015

I've tried to debug this a bit and looks to me like the callable calling the async action and waiting for the timeout ends up on the same executor thread (wisdom-system-executor-0) as the async callable itself.
Therefore if the async callable doesn't return after the timeout, the other callable also cannot continue.

Maybe you should introduce a separate executor service for calls which can time out?

kutzi commented Apr 25, 2015

I've tried to debug this a bit and looks to me like the callable calling the async action and waiting for the timeout ends up on the same executor thread (wisdom-system-executor-0) as the async callable itself.
Therefore if the async callable doesn't return after the timeout, the other callable also cannot continue.

Maybe you should introduce a separate executor service for calls which can time out?

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 25, 2015

Member

Actually, not, it depends on the policy used by your debugger about threads. For instance intellij suspends all threads, not only the blocked one:

unsafe_class_-wisdom-framework-___projects_wisdom_wisdom-framework

why debugger are you using ?

Member

cescoffier commented Apr 25, 2015

Actually, not, it depends on the policy used by your debugger about threads. For instance intellij suspends all threads, not only the blocked one:

unsafe_class_-wisdom-framework-___projects_wisdom_wisdom-framework

why debugger are you using ?

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 25, 2015

Member

The two threads belong to the same executor but it should be:

  • wisdom-system-executor-0
  • wisdom-system-executor-1
Member

cescoffier commented Apr 25, 2015

The two threads belong to the same executor but it should be:

  • wisdom-system-executor-0
  • wisdom-system-executor-1
@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 25, 2015

Eclipse and I've configured it to only suspend the thread with the breakpoint. Intellij should be configurable to do the same

kutzi commented Apr 25, 2015

Eclipse and I've configured it to only suspend the thread with the breakpoint. Intellij should be configurable to do the same

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 25, 2015

Member

If you are using intellij, you can right-click on a break point to select the thread suspend policy:

samplescontroller_java_-wisdom-framework-___projects_wisdom_wisdom-framework

Member

cescoffier commented Apr 25, 2015

If you are using intellij, you can right-click on a break point to select the thread suspend policy:

samplescontroller_java_-wisdom-framework-___projects_wisdom_wisdom-framework

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 25, 2015

They've both ended up on wisdom-system-executor-0 for me. It's probably a bit of random which executor-thread will be chosen by the executor.

kutzi commented Apr 25, 2015

They've both ended up on wisdom-system-executor-0 for me. It's probably a bit of random which executor-thread will be chosen by the executor.

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 25, 2015

Member

It reuses the same thread is the first task has been completed.

Member

cescoffier commented Apr 25, 2015

It reuses the same thread is the first task has been completed.

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 25, 2015

Member

By switching the thread policy to Thread you got the behavior you want.

Member

cescoffier commented Apr 25, 2015

By switching the thread policy to Thread you got the behavior you want.

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 25, 2015

That's what I would intuitively expect myself, but it wasn't. I wish I could show you what it does in my debugger.
Have you tried in Intellij with 'Suspend Thread' setting?

kutzi commented Apr 25, 2015

That's what I would intuitively expect myself, but it wasn't. I wish I could show you what it does in my debugger.
Have you tried in Intellij with 'Suspend Thread' setting?

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 25, 2015

Member

Yes just tried it, and the browser get the 'request timeout' as expected.

So if I summarize the steps:

  1. have a controller with an @Async method:
    @Route(method = HttpMethod.GET, uri= "/asyncTest")
    @Async(timeout = 2)
    public Result async() {
        return ok("Hello");
    }
  1. Launch Wisdom in debug mode
  2. Connect your debugger
  3. Add a breakpoint on the line with the return ok...
  4. Configure the breakpoint to use the Thread Suspend Policy
  5. Open your browser to trigger the breakpoint
  6. Wait 2 seconds, the browser should get the "Request Timeout"

Am I right ? For you the last step does not work.

Member

cescoffier commented Apr 25, 2015

Yes just tried it, and the browser get the 'request timeout' as expected.

So if I summarize the steps:

  1. have a controller with an @Async method:
    @Route(method = HttpMethod.GET, uri= "/asyncTest")
    @Async(timeout = 2)
    public Result async() {
        return ok("Hello");
    }
  1. Launch Wisdom in debug mode
  2. Connect your debugger
  3. Add a breakpoint on the line with the return ok...
  4. Configure the breakpoint to use the Thread Suspend Policy
  5. Open your browser to trigger the breakpoint
  6. Wait 2 seconds, the browser should get the "Request Timeout"

Am I right ? For you the last step does not work.

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 25, 2015

Yes, the browser never receives a response.

I'm using Java 1.8.0_45 and Linux Mint (or previously Redhat), if that makes a difference

kutzi commented Apr 25, 2015

Yes, the browser never receives a response.

I'm using Java 1.8.0_45 and Linux Mint (or previously Redhat), if that makes a difference

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 25, 2015

And if I put an additional breakpoint at AsyncInterceptor at line 81, I can see that it stops there in the same executor thread (last time it was wisdom-system-executor-1 for both callables) after I resume the execution on the breakpoint in the line with return ok

kutzi commented Apr 25, 2015

And if I put an additional breakpoint at AsyncInterceptor at line 81, I can see that it stops there in the same executor thread (last time it was wisdom-system-executor-1 for both callables) after I resume the execution on the breakpoint in the line with return ok

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 25, 2015

Member

Can you do a thread dump while waiting in the breakpoint ? Something is
definitely different.

Sent from my iPhone

On 25 avr. 2015, at 16:05, Christoph Kutzinski notifications@github.com
wrote:

And if I put an additional breakpoint at AsyncInterceptor at line 81, I can
see that it stops there in the same executor thread (last time it was
wisdom-system-executor-1 for both callables) after I resume the execution
on the breakpoint in the line with return ok


Reply to this email directly or view it on GitHub
#468 (comment)
.

Member

cescoffier commented Apr 25, 2015

Can you do a thread dump while waiting in the breakpoint ? Something is
definitely different.

Sent from my iPhone

On 25 avr. 2015, at 16:05, Christoph Kutzinski notifications@github.com
wrote:

And if I put an additional breakpoint at AsyncInterceptor at line 81, I can
see that it stops there in the same executor thread (last time it was
wisdom-system-executor-1 for both callables) after I resume the execution
on the breakpoint in the line with return ok


Reply to this email directly or view it on GitHub
#468 (comment)
.

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 26, 2015

Stack trace:

2015-04-26 11:09:56
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.45-b02 mixed mode):

"Attach Listener" #59 daemon prio=9 os_prio=0 tid=0x00007f3de8001000 nid=0x118e waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"wisdom-system-executor-1" #58 prio=5 os_prio=0 tid=0x00007f3dbc0b9000 nid=0x1021 at breakpoint[0x00007f3db4e22000]
java.lang.Thread.State: RUNNABLE
at sample.WelcomeController.__M_welcome(WelcomeController.java:54)
at sample.WelcomeController.welcome(WelcomeController.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.wisdom.router.RouteDelegate$EndOfChainInvoker.call(RouteDelegate.java:284)
at org.wisdom.api.interception.RequestContext.proceed(RequestContext.java:124)
at org.wisdom.executors.AsyncInterceptor$ResultRetriever.call(AsyncInterceptor.java:75)
at org.wisdom.executors.AsyncInterceptor$ResultRetriever.call(AsyncInterceptor.java:48)
at org.wisdom.executors.Task$EnhancedCallable.call(Task.java:230)
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)

"wisdom-system-executor-0" #57 prio=5 os_prio=0 tid=0x00007f3dbc0b2800 nid=0x1019 waiting on condition [0x00007f3db4f24000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b59a728> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"threadDeathWatcher-2-1" #56 daemon prio=1 os_prio=0 tid=0x00007f3dbc075000 nid=0x1016 waiting on condition [0x00007f3db5025000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at io.netty.util.ThreadDeathWatcher$Watcher.run(ThreadDeathWatcher.java:137)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:745)

"JDWP Command Reader" #55 daemon prio=10 os_prio=0 tid=0x00007f3dec001000 nid=0xff5 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"wisdom-system-scheduler-4" #54 prio=5 os_prio=0 tid=0x00007f3db8032000 nid=0xfef waiting on condition [0x00007f3db5126000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b580d00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"wisdom-system-scheduler-3" #53 prio=5 os_prio=0 tid=0x00007f3dc5adc000 nid=0xfe8 waiting on condition [0x00007f3db6a38000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b580d00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"wisdom-system-scheduler-2" #52 prio=5 os_prio=0 tid=0x00007f3db801d000 nid=0xfe7 waiting on condition [0x00007f3db5227000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b580d00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"wisdom-system-scheduler-1" #51 prio=5 os_prio=0 tid=0x00007f3db802f000 nid=0xfe5 waiting on condition [0x00007f3db5528000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b580d00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"wisdom-system-scheduler-0" #50 prio=5 os_prio=0 tid=0x00007f3dc5106000 nid=0xfe4 waiting on condition [0x00007f3db5629000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b580d00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"vert.x-eventloop-thread-0" #37 daemon prio=5 os_prio=0 tid=0x00007f3dc50bf800 nid=0xfe3 runnable [0x00007f3db592a000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x000000008b66e0b8> (a io.netty.channel.nio.SelectedSelectionKeySet)
- locked <0x000000008b670138> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000008b66e020> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:622)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:310)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at java.lang.Thread.run(Thread.java:745)

"monitor-templates" #48 prio=5 os_prio=0 tid=0x00007f3dc585c800 nid=0xfe1 waiting on condition [0x00007f3db5c2b000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.commons.io.monitor.FileAlterationMonitor.run(FileAlterationMonitor.java:188)
at java.lang.Thread.run(Thread.java:745)

"net.sf.ehcache.CacheManager@59c3cfe" #46 daemon prio=5 os_prio=0 tid=0x00007f3dc57b0000 nid=0xfdf in Object.wait() [0x00007f3db5d2c000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.util.TimerThread.mainLoop(Timer.java:526)
- locked <0x000000008b5edd28> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)

"monitor-conf" #45 prio=5 os_prio=0 tid=0x00007f3dc5756800 nid=0xfde waiting on condition [0x00007f3db5e2d000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.commons.io.monitor.FileAlterationMonitor.run(FileAlterationMonitor.java:188)
at java.lang.Thread.run(Thread.java:745)

"wisdom-system-akka.actor.default-dispatcher-4" #35 prio=5 os_prio=0 tid=0x00007f3da0002000 nid=0xfdb waiting on condition [0x00007f3db6937000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b76d788> (a akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinPool)
at scala.concurrent.forkjoin.ForkJoinPool.scan(ForkJoinPool.java:2075)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

"wisdom-system-scheduler-1" #32 prio=5 os_prio=0 tid=0x00007f3dc540a800 nid=0xfd8 waiting on condition [0x00007f3db6e3a000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at akka.actor.LightArrayRevolverScheduler.waitNanos(Scheduler.scala:226)
at akka.actor.LightArrayRevolverScheduler$$anon$12.nextTick(Scheduler.scala:393)
at akka.actor.LightArrayRevolverScheduler$$anon$12.run(Scheduler.scala:363)
at java.lang.Thread.run(Thread.java:745)

"DestroyJavaVM" #31 prio=5 os_prio=0 tid=0x00007f3e2400c000 nid=0xfb5 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"monitor-application" #19 prio=5 os_prio=0 tid=0x00007f3e245db800 nid=0xfcb waiting on condition [0x00007f3e0824d000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.commons.io.monitor.FileAlterationMonitor.run(FileAlterationMonitor.java:188)
at java.lang.Thread.run(Thread.java:745)

"CM Event Dispatcher" #17 daemon prio=5 os_prio=0 tid=0x00007f3e24593800 nid=0xfca in Object.wait() [0x00007f3e0854e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000008ad118f8> (a java.util.LinkedList)
at java.lang.Object.wait(Object.java:502)
at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:77)
- locked <0x000000008ad118f8> (a java.util.LinkedList)
at java.lang.Thread.run(Thread.java:745)

"CM Configuration Updater" #16 daemon prio=5 os_prio=0 tid=0x00007f3e2459d800 nid=0xfc9 in Object.wait() [0x00007f3e101a0000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000008ad11f48> (a java.util.LinkedList)
at java.lang.Object.wait(Object.java:502)
at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:77)
- locked <0x000000008ad11f48> (a java.util.LinkedList)
at java.lang.Thread.run(Thread.java:745)

"[iPOJO] pool-1-thread-1" #15 prio=5 os_prio=0 tid=0x00007f3e24571000 nid=0xfc8 waiting on condition [0x00007f3e102a1000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008ab74ae8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"FelixStartLevel" #14 daemon prio=5 os_prio=0 tid=0x00007f3e244c7000 nid=0xfc7 in Object.wait() [0x00007f3e103c6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000008acdcd48> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:502)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:279)
- locked <0x000000008acdcd48> (a java.util.ArrayList)
at java.lang.Thread.run(Thread.java:745)

"FelixDispatchQueue" #13 prio=5 os_prio=0 tid=0x00007f3e24478000 nid=0xfc6 in Object.wait() [0x00007f3e106d8000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000008ada6c80> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:502)
at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:1074)
- locked <0x000000008ada6c80> (a java.util.ArrayList)
at org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:55)
at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:102)
at java.lang.Thread.run(Thread.java:745)

"AsyncAppender-Worker-Thread-0" #11 daemon prio=5 os_prio=0 tid=0x00007f3e243a3000 nid=0xfc5 waiting on condition [0x00007f3e109de000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b11f080> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403)
at ch.qos.logback.core.AsyncAppenderBase$Worker.run(AsyncAppenderBase.java:225)

"Service Thread" #10 daemon prio=9 os_prio=0 tid=0x00007f3e24199000 nid=0xfc3 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C1 CompilerThread2" #9 daemon prio=9 os_prio=0 tid=0x00007f3e24193800 nid=0xfc2 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #8 daemon prio=9 os_prio=0 tid=0x00007f3e24191800 nid=0xfc1 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #7 daemon prio=9 os_prio=0 tid=0x00007f3e2418f000 nid=0xfc0 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"JDWP Event Helper Thread" #6 daemon prio=10 os_prio=0 tid=0x00007f3e2418c800 nid=0xfbf runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"JDWP Transport Listener: dt_socket" #5 daemon prio=10 os_prio=0 tid=0x00007f3e24189000 nid=0xfbe runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007f3e2417d000 nid=0xfbd runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f3e24148000 nid=0xfbc in Object.wait() [0x00007f3e11784000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x000000008b4eab88> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007f3e24146000 nid=0xfbb in Object.wait() [0x00007f3e11885000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
- locked <0x000000008b4eabb8> (a java.lang.ref.Reference$Lock)

"VM Thread" os_prio=0 tid=0x00007f3e24141000 nid=0xfba runnable

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f3e24021000 nid=0xfb6 runnable

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f3e24023000 nid=0xfb7 runnable

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f3e24024800 nid=0xfb8 runnable

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f3e24026800 nid=0xfb9 runnable

"VM Periodic Task Thread" os_prio=0 tid=0x00007f3e2419b800 nid=0xfc4 waiting on condition

JNI global references: 17540

kutzi commented Apr 26, 2015

Stack trace:

2015-04-26 11:09:56
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.45-b02 mixed mode):

"Attach Listener" #59 daemon prio=9 os_prio=0 tid=0x00007f3de8001000 nid=0x118e waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"wisdom-system-executor-1" #58 prio=5 os_prio=0 tid=0x00007f3dbc0b9000 nid=0x1021 at breakpoint[0x00007f3db4e22000]
java.lang.Thread.State: RUNNABLE
at sample.WelcomeController.__M_welcome(WelcomeController.java:54)
at sample.WelcomeController.welcome(WelcomeController.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.wisdom.router.RouteDelegate$EndOfChainInvoker.call(RouteDelegate.java:284)
at org.wisdom.api.interception.RequestContext.proceed(RequestContext.java:124)
at org.wisdom.executors.AsyncInterceptor$ResultRetriever.call(AsyncInterceptor.java:75)
at org.wisdom.executors.AsyncInterceptor$ResultRetriever.call(AsyncInterceptor.java:48)
at org.wisdom.executors.Task$EnhancedCallable.call(Task.java:230)
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)

"wisdom-system-executor-0" #57 prio=5 os_prio=0 tid=0x00007f3dbc0b2800 nid=0x1019 waiting on condition [0x00007f3db4f24000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b59a728> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"threadDeathWatcher-2-1" #56 daemon prio=1 os_prio=0 tid=0x00007f3dbc075000 nid=0x1016 waiting on condition [0x00007f3db5025000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at io.netty.util.ThreadDeathWatcher$Watcher.run(ThreadDeathWatcher.java:137)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:745)

"JDWP Command Reader" #55 daemon prio=10 os_prio=0 tid=0x00007f3dec001000 nid=0xff5 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"wisdom-system-scheduler-4" #54 prio=5 os_prio=0 tid=0x00007f3db8032000 nid=0xfef waiting on condition [0x00007f3db5126000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b580d00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"wisdom-system-scheduler-3" #53 prio=5 os_prio=0 tid=0x00007f3dc5adc000 nid=0xfe8 waiting on condition [0x00007f3db6a38000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b580d00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"wisdom-system-scheduler-2" #52 prio=5 os_prio=0 tid=0x00007f3db801d000 nid=0xfe7 waiting on condition [0x00007f3db5227000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b580d00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"wisdom-system-scheduler-1" #51 prio=5 os_prio=0 tid=0x00007f3db802f000 nid=0xfe5 waiting on condition [0x00007f3db5528000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b580d00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"wisdom-system-scheduler-0" #50 prio=5 os_prio=0 tid=0x00007f3dc5106000 nid=0xfe4 waiting on condition [0x00007f3db5629000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b580d00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"vert.x-eventloop-thread-0" #37 daemon prio=5 os_prio=0 tid=0x00007f3dc50bf800 nid=0xfe3 runnable [0x00007f3db592a000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x000000008b66e0b8> (a io.netty.channel.nio.SelectedSelectionKeySet)
- locked <0x000000008b670138> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000008b66e020> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:622)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:310)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at java.lang.Thread.run(Thread.java:745)

"monitor-templates" #48 prio=5 os_prio=0 tid=0x00007f3dc585c800 nid=0xfe1 waiting on condition [0x00007f3db5c2b000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.commons.io.monitor.FileAlterationMonitor.run(FileAlterationMonitor.java:188)
at java.lang.Thread.run(Thread.java:745)

"net.sf.ehcache.CacheManager@59c3cfe" #46 daemon prio=5 os_prio=0 tid=0x00007f3dc57b0000 nid=0xfdf in Object.wait() [0x00007f3db5d2c000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.util.TimerThread.mainLoop(Timer.java:526)
- locked <0x000000008b5edd28> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)

"monitor-conf" #45 prio=5 os_prio=0 tid=0x00007f3dc5756800 nid=0xfde waiting on condition [0x00007f3db5e2d000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.commons.io.monitor.FileAlterationMonitor.run(FileAlterationMonitor.java:188)
at java.lang.Thread.run(Thread.java:745)

"wisdom-system-akka.actor.default-dispatcher-4" #35 prio=5 os_prio=0 tid=0x00007f3da0002000 nid=0xfdb waiting on condition [0x00007f3db6937000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b76d788> (a akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinPool)
at scala.concurrent.forkjoin.ForkJoinPool.scan(ForkJoinPool.java:2075)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

"wisdom-system-scheduler-1" #32 prio=5 os_prio=0 tid=0x00007f3dc540a800 nid=0xfd8 waiting on condition [0x00007f3db6e3a000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at akka.actor.LightArrayRevolverScheduler.waitNanos(Scheduler.scala:226)
at akka.actor.LightArrayRevolverScheduler$$anon$12.nextTick(Scheduler.scala:393)
at akka.actor.LightArrayRevolverScheduler$$anon$12.run(Scheduler.scala:363)
at java.lang.Thread.run(Thread.java:745)

"DestroyJavaVM" #31 prio=5 os_prio=0 tid=0x00007f3e2400c000 nid=0xfb5 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"monitor-application" #19 prio=5 os_prio=0 tid=0x00007f3e245db800 nid=0xfcb waiting on condition [0x00007f3e0824d000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.commons.io.monitor.FileAlterationMonitor.run(FileAlterationMonitor.java:188)
at java.lang.Thread.run(Thread.java:745)

"CM Event Dispatcher" #17 daemon prio=5 os_prio=0 tid=0x00007f3e24593800 nid=0xfca in Object.wait() [0x00007f3e0854e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000008ad118f8> (a java.util.LinkedList)
at java.lang.Object.wait(Object.java:502)
at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:77)
- locked <0x000000008ad118f8> (a java.util.LinkedList)
at java.lang.Thread.run(Thread.java:745)

"CM Configuration Updater" #16 daemon prio=5 os_prio=0 tid=0x00007f3e2459d800 nid=0xfc9 in Object.wait() [0x00007f3e101a0000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000008ad11f48> (a java.util.LinkedList)
at java.lang.Object.wait(Object.java:502)
at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:77)
- locked <0x000000008ad11f48> (a java.util.LinkedList)
at java.lang.Thread.run(Thread.java:745)

"[iPOJO] pool-1-thread-1" #15 prio=5 os_prio=0 tid=0x00007f3e24571000 nid=0xfc8 waiting on condition [0x00007f3e102a1000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008ab74ae8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

"FelixStartLevel" #14 daemon prio=5 os_prio=0 tid=0x00007f3e244c7000 nid=0xfc7 in Object.wait() [0x00007f3e103c6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000008acdcd48> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:502)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:279)
- locked <0x000000008acdcd48> (a java.util.ArrayList)
at java.lang.Thread.run(Thread.java:745)

"FelixDispatchQueue" #13 prio=5 os_prio=0 tid=0x00007f3e24478000 nid=0xfc6 in Object.wait() [0x00007f3e106d8000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000008ada6c80> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:502)
at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:1074)
- locked <0x000000008ada6c80> (a java.util.ArrayList)
at org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:55)
at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:102)
at java.lang.Thread.run(Thread.java:745)

"AsyncAppender-Worker-Thread-0" #11 daemon prio=5 os_prio=0 tid=0x00007f3e243a3000 nid=0xfc5 waiting on condition [0x00007f3e109de000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000008b11f080> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403)
at ch.qos.logback.core.AsyncAppenderBase$Worker.run(AsyncAppenderBase.java:225)

"Service Thread" #10 daemon prio=9 os_prio=0 tid=0x00007f3e24199000 nid=0xfc3 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C1 CompilerThread2" #9 daemon prio=9 os_prio=0 tid=0x00007f3e24193800 nid=0xfc2 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #8 daemon prio=9 os_prio=0 tid=0x00007f3e24191800 nid=0xfc1 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #7 daemon prio=9 os_prio=0 tid=0x00007f3e2418f000 nid=0xfc0 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"JDWP Event Helper Thread" #6 daemon prio=10 os_prio=0 tid=0x00007f3e2418c800 nid=0xfbf runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"JDWP Transport Listener: dt_socket" #5 daemon prio=10 os_prio=0 tid=0x00007f3e24189000 nid=0xfbe runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007f3e2417d000 nid=0xfbd runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f3e24148000 nid=0xfbc in Object.wait() [0x00007f3e11784000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x000000008b4eab88> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007f3e24146000 nid=0xfbb in Object.wait() [0x00007f3e11885000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
- locked <0x000000008b4eabb8> (a java.lang.ref.Reference$Lock)

"VM Thread" os_prio=0 tid=0x00007f3e24141000 nid=0xfba runnable

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f3e24021000 nid=0xfb6 runnable

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f3e24023000 nid=0xfb7 runnable

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f3e24024800 nid=0xfb8 runnable

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f3e24026800 nid=0xfb9 runnable

"VM Periodic Task Thread" os_prio=0 tid=0x00007f3e2419b800 nid=0xfc4 waiting on condition

JNI global references: 17540

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 26, 2015

Member

Thanks,

Im' a bit surprised by the https://github.com/wisdom-framework/wisdom/blob/master/core/wisdom-executors/src/main/java/org/wisdom/executors/AsyncInterceptor.java#L48

there is nothing on this line.

Are you using the last version ?

Member

cescoffier commented Apr 26, 2015

Thanks,

Im' a bit surprised by the https://github.com/wisdom-framework/wisdom/blob/master/core/wisdom-executors/src/main/java/org/wisdom/executors/AsyncInterceptor.java#L48

there is nothing on this line.

Are you using the last version ?

@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 26, 2015

That's the POM I'm using: https://github.com/kutzi/wisdom-test/blob/master/pom.xml
I think that should be the latest, isn't it?

kutzi commented Apr 26, 2015

That's the POM I'm using: https://github.com/kutzi/wisdom-test/blob/master/pom.xml
I think that should be the latest, isn't it?

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 26, 2015

Member

Depends when Maven has checked for the last time.
Last published version is 20150425.195120-38.

Can you try clean up your repository with:

rm -Rf ~/.m2/repository/org/wisdom-framework/**/0.8.1-SNAPSHOT*
Member

cescoffier commented Apr 26, 2015

Depends when Maven has checked for the last time.
Last published version is 20150425.195120-38.

Can you try clean up your repository with:

rm -Rf ~/.m2/repository/org/wisdom-framework/**/0.8.1-SNAPSHOT*
@kutzi

This comment has been minimized.

Show comment
Hide comment
@kutzi

kutzi Apr 26, 2015

I've only started to try this on this computer yesterday - i.e. hadn't any wisdom JARs on it. That should be sufficiently new, shouldn't it?

kutzi commented Apr 26, 2015

I've only started to try this on this computer yesterday - i.e. hadn't any wisdom JARs on it. That should be sufficiently new, shouldn't it?

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier Apr 26, 2015

Member

I would say so, but it would not explain your stack trace. I will try you example directly, but this is a mystery: a thread is missing - the watch dog should be there, and it's not.

Member

cescoffier commented Apr 26, 2015

I would say so, but it would not explain your stack trace. I will try you example directly, but this is a mystery: a thread is missing - the watch dog should be there, and it's not.

@cescoffier

This comment has been minimized.

Show comment
Hide comment
@cescoffier

cescoffier May 5, 2015

Member

I've created #495, as the main topic of this issue is fixed (and will be part of the 0.9.0)

Member

cescoffier commented May 5, 2015

I've created #495, as the main topic of this issue is fixed (and will be part of the 0.9.0)

@cescoffier cescoffier closed this May 5, 2015

@cescoffier cescoffier removed the in progress label May 5, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment