[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