[jboss-jira] [JBoss JIRA] (WFLY-3962) onComplete for async listeners not always called

John Sanda (JIRA) issues at jboss.org
Mon May 11 13:32:20 EDT 2015


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

John Sanda commented on WFLY-3962:
----------------------------------

I am a bit confused and I think some clarification is needed. I originally reopened this ticket thinking I hit the same issue, but I guess it was a different root cause that just produced similar behavior. The commit I referenced is the one Stuart told me contained the fix, and that is what we really need to track. I had patched a 9.0.0.Beta2 server with that commit so that I could test. Everything looked good from my testing. I tested using only the hawkular-metrics war. We still need to test using the full hawkular server. To do that, we need an updated version of the boms for a version of WildFly that includes that Undertow commit. 

[(commit 2962f45d)|https://github.com/undertow-io/undertow/commit/2962f45dbcb2b5a6af4ccb603fbf507495a7ddeb] fixes a pretty severe issue that results in async requests handling being pretty much unusable. I really hope this makes it into Final.

> onComplete for async listeners not always called
> ------------------------------------------------
>
>                 Key: WFLY-3962
>                 URL: https://issues.jboss.org/browse/WFLY-3962
>             Project: WildFly
>          Issue Type: Bug
>          Components: Web (Undertow)
>    Affects Versions: 8.0.0.Final, 8.1.0.Final
>            Reporter: Heiko Rupp
>            Assignee: Stuart Douglas
>             Fix For: 9.0.0.CR1
>
>
> I have a servlet filter that does 
>            chain.doFilter(requestWrapper, responseWrapper);
>            if (request.isAsyncStarted()) {
>                asyncListener = request.getAsyncContext().createListener(JsonPAsyncListener.class);
>                request.getAsyncContext().addListener(asyncListener, requestWrapper, responseWrapper);
>            }
> And (sometimes) this works well so that the onComplete() method of the listener is called. 
> But this does not happen always. In some (repeatable) condition none of the callback methods in my AsyncListener are called.
> I was first thinking that the servlet (resteasy) behind chain.doFilter() is so fast that it completes
> before I can add the listener.
> But then I tried adding a Thread.sleep() in the RE code which did not change anything.
> Similar when I do a startAsync() and add the listener before calling chain.doFilter()
> This happens both on Wfly 8.0 and 8.1
> Basically it boils down that if the "backend" uses Futures.immediateFuture(result) , onComplete is not called.
> I have created a as small as possible war file + a read me on how to drive that via curl.
> See https://github.com/pilhuhn/misc/tree/master/web-goo
> I just added 2 examples to the readme file that show that if no
> wrapping by the filter is requested, the resteasy code works with
> both Futures.immediate... and Futures.transform(...)



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


More information about the jboss-jira mailing list