[JBoss JIRA] (WFLY-4413) Network connection leak in asynchronous servlet
by Stuart Douglas (JIRA)
[ https://issues.jboss.org/browse/WFLY-4413?page=com.atlassian.jira.plugin.... ]
Stuart Douglas commented on WFLY-4413:
--------------------------------------
I just tried this out and the connection hangs around for 30s until the default async timeout is hit, then it goes away as expected. I tested against both 8.2.0.Final and the most recent upstream and the behaviour was the same.
The behaviour is basically the expected behaviour, because nothing catches the IOException thrown on flush the request basically hangs around doing nothing until the async timeout is hit. I could potentially forcibly kill the underling connection if a write fails, but either way the request object will be hanging around until the timeout.
> Network connection leak in asynchronous servlet
> -----------------------------------------------
>
> Key: WFLY-4413
> URL: https://issues.jboss.org/browse/WFLY-4413
> Project: WildFly
> Issue Type: Bug
> Components: Web (Undertow)
> Affects Versions: 8.1.0.Final, 8.2.0.Final
> Environment: Linux
> Reporter: jeremy_lv lv
> Assignee: Stuart Douglas
> Priority: Blocker
> Labels: undertow
>
> {panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
> {panel}
> *Some of the stacktrace are as follows:*
> {panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> 14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
> Caused by: java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
> at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
> at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
> at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
> at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
> at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
> at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
> at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
> at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
> at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
> at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> ... 6 more
> {panel}
> *Here's the test war code you can used to reproduce this phenomenon:*
> {code:title=AsyncDemoServlet.java|borderStyle=solid}
> import java.io.IOException;
> import javax.servlet.AsyncContext;
> import javax.servlet.ServletException;
> import javax.servlet.annotation.WebServlet;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> @WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
> public class AsyncDemoServlet extends HttpServlet {
> private static final long serialVersionUID = 1L;
> protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> response.setContentType("text/html;charset=UTF-8");
> //Execute the business logic in sub-thread.
> AsyncContext ctx = request.startAsync();
> new Thread(new Executor(ctx)).start();
> }
> protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> doGet(request, response);
> }
> public class Executor implements Runnable {
> private AsyncContext ctx = null;
> public Executor(AsyncContext ctx){
> this.ctx = ctx;
> }
> public void run(){
> try {
> ctx.getResponse().getOutputStream().write("aaa".getBytes());
> //wait for 5 seconds to simulate the business logic.
> Thread.sleep(5000);
> ctx.getResponse().getOutputStream().flush();
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 8 months
[JBoss JIRA] (WFLY-4413) Network connection leak in asynchronous servlet
by jeremy_lv lv (JIRA)
[ https://issues.jboss.org/browse/WFLY-4413?page=com.atlassian.jira.plugin.... ]
jeremy_lv lv updated WFLY-4413:
-------------------------------
Description:
{panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
{panel}
*Some of the stacktrace are as follows:*
{panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
Caused by: java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
... 6 more
{panel}
*Here's the test war code you can used to reproduce this phenomenon:*
{code:title=AsyncDemoServlet.java|borderStyle=solid}
import java.io.IOException;
import javax.servlet.AsyncContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
public class AsyncDemoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
//Execute the business logic in sub-thread.
AsyncContext ctx = request.startAsync();
new Thread(new Executor(ctx)).start();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
public class Executor implements Runnable {
private AsyncContext ctx = null;
public Executor(AsyncContext ctx){
this.ctx = ctx;
}
public void run(){
try {
ctx.getResponse().getOutputStream().write("aaa".getBytes());
//wait for 5 seconds to simulate the business logic.
Thread.sleep(5000);
ctx.getResponse().getOutputStream().flush();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
{code}
was:
{panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
{panel}
*Some of the stacktrace are as follows:*
{panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
Caused by: java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
... 6 more
{panel}
*Here's the test war code you can used to reproduce this phenomenon:*
{code:title=AsyncDemoServlet.java|borderStyle=solid}
import java.io.IOException;
import javax.servlet.AsyncContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
public class AsyncDemoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
//Execute the business logic in sub-thread.
AsyncContext ctx = request.startAsync();
new Thread(new Executor(ctx)).start();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
public class Executor implements Runnable {
private AsyncContext ctx = null;
public Executor(AsyncContext ctx){
this.ctx = ctx;
}
public void run(){
try {
ctx.getResponse().getOutputStream().write("aaa".getBytes());
//wait for 5 seconds to simulate the business logic.
Thread.sleep(5000);
ctx.getResponse().getOutputStream().flush();
ctx.complete();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
{code}
> Network connection leak in asynchronous servlet
> -----------------------------------------------
>
> Key: WFLY-4413
> URL: https://issues.jboss.org/browse/WFLY-4413
> Project: WildFly
> Issue Type: Bug
> Components: Web (Undertow)
> Affects Versions: 8.1.0.Final, 8.2.0.Final
> Environment: Linux
> Reporter: jeremy_lv lv
> Assignee: Stuart Douglas
> Priority: Blocker
> Labels: undertow
>
> {panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
> {panel}
> *Some of the stacktrace are as follows:*
> {panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> 14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
> Caused by: java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
> at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
> at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
> at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
> at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
> at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
> at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
> at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
> at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
> at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
> at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> ... 6 more
> {panel}
> *Here's the test war code you can used to reproduce this phenomenon:*
> {code:title=AsyncDemoServlet.java|borderStyle=solid}
> import java.io.IOException;
> import javax.servlet.AsyncContext;
> import javax.servlet.ServletException;
> import javax.servlet.annotation.WebServlet;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> @WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
> public class AsyncDemoServlet extends HttpServlet {
> private static final long serialVersionUID = 1L;
> protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> response.setContentType("text/html;charset=UTF-8");
> //Execute the business logic in sub-thread.
> AsyncContext ctx = request.startAsync();
> new Thread(new Executor(ctx)).start();
> }
> protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> doGet(request, response);
> }
> public class Executor implements Runnable {
> private AsyncContext ctx = null;
> public Executor(AsyncContext ctx){
> this.ctx = ctx;
> }
> public void run(){
> try {
> ctx.getResponse().getOutputStream().write("aaa".getBytes());
> //wait for 5 seconds to simulate the business logic.
> Thread.sleep(5000);
> ctx.getResponse().getOutputStream().flush();
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 8 months
[JBoss JIRA] (WFLY-4413) Network connection leak in asynchronous servlet
by jeremy_lv lv (JIRA)
[ https://issues.jboss.org/browse/WFLY-4413?page=com.atlassian.jira.plugin.... ]
jeremy_lv lv edited comment on WFLY-4413 at 3/11/15 11:41 PM:
--------------------------------------------------------------
Hi, [~swd847]:
I have confirmed the last test code can only be reproduced when the browser is IE and couldn't be reproduced in the other browsers such as firefox and chrome.
Now I have modified some of the code to make sure it can be reproduced both in firefox and chrome. could you please try to reproduced this phenomenon again? I'm sure the phenomenon about the connection leak can be reproduced in your laptop.
Thanks.
was (Author: jeremy_lv):
Hi, [~swd847]:
I have confirmed the last test code can only be reproduced when the browser is IE and couldn't be reproduced in the other browsers such as firefox and chrome.
Now I have modify some of the code to make sure it can be reproduced both in firefox and chrome. could you please try to reproduced this phenomenon again? I'm sure the phenomenon about the connection leak can be reproduced in your laptop.
Thanks.
> Network connection leak in asynchronous servlet
> -----------------------------------------------
>
> Key: WFLY-4413
> URL: https://issues.jboss.org/browse/WFLY-4413
> Project: WildFly
> Issue Type: Bug
> Components: Web (Undertow)
> Affects Versions: 8.1.0.Final, 8.2.0.Final
> Environment: Linux
> Reporter: jeremy_lv lv
> Assignee: Stuart Douglas
> Priority: Blocker
> Labels: undertow
>
> {panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
> {panel}
> *Some of the stacktrace are as follows:*
> {panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> 14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
> Caused by: java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
> at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
> at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
> at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
> at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
> at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
> at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
> at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
> at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
> at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
> at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> ... 6 more
> {panel}
> *Here's the test war code you can used to reproduce this phenomenon:*
> {code:title=AsyncDemoServlet.java|borderStyle=solid}
> import java.io.IOException;
> import javax.servlet.AsyncContext;
> import javax.servlet.ServletException;
> import javax.servlet.annotation.WebServlet;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> @WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
> public class AsyncDemoServlet extends HttpServlet {
> private static final long serialVersionUID = 1L;
> protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> response.setContentType("text/html;charset=UTF-8");
> //Execute the business logic in sub-thread.
> AsyncContext ctx = request.startAsync();
> new Thread(new Executor(ctx)).start();
> }
> protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> doGet(request, response);
> }
> public class Executor implements Runnable {
> private AsyncContext ctx = null;
> public Executor(AsyncContext ctx){
> this.ctx = ctx;
> }
> public void run(){
> try {
> ctx.getResponse().getOutputStream().write("aaa".getBytes());
> //wait for 5 seconds to simulate the business logic.
> Thread.sleep(5000);
> ctx.getResponse().getOutputStream().flush();
> ctx.complete();
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 8 months
[JBoss JIRA] (WFLY-4413) Network connection leak in asynchronous servlet
by jeremy_lv lv (JIRA)
[ https://issues.jboss.org/browse/WFLY-4413?page=com.atlassian.jira.plugin.... ]
jeremy_lv lv edited comment on WFLY-4413 at 3/11/15 11:40 PM:
--------------------------------------------------------------
Hi, [~swd847]:
I have confirmed the last test code can only be reproduced when the browser is IE and can't reproduced in the other browsers such as firefox and chrome.
Now I have modify some of the code to make sure it can be reproduced both in firefox and chrome. could you please try to reproduced this phenomenon again? I'm sure the phenomenon about the connection leak can be reproduced in your laptop.
Thanks.
was (Author: jeremy_lv):
Hi, [~swd847]:
I have confirmed the latest test code can only be reproduced when the browser is IE and can't reproduced in the other browsers such as firefox and chrome.
Now I have modify some of the code to make sure it can be reproduced both in firefox and chrome. could you please try to reproduced this phenomenon again? I'm sure the phenomenon about the connection leak can be reproduced in your laptop.
Thanks.
> Network connection leak in asynchronous servlet
> -----------------------------------------------
>
> Key: WFLY-4413
> URL: https://issues.jboss.org/browse/WFLY-4413
> Project: WildFly
> Issue Type: Bug
> Components: Web (Undertow)
> Affects Versions: 8.1.0.Final, 8.2.0.Final
> Environment: Linux
> Reporter: jeremy_lv lv
> Assignee: Stuart Douglas
> Priority: Blocker
> Labels: undertow
>
> {panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
> {panel}
> *Some of the stacktrace are as follows:*
> {panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> 14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
> Caused by: java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
> at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
> at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
> at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
> at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
> at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
> at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
> at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
> at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
> at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
> at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> ... 6 more
> {panel}
> *Here's the test war code you can used to reproduce this phenomenon:*
> {code:title=AsyncDemoServlet.java|borderStyle=solid}
> import java.io.IOException;
> import javax.servlet.AsyncContext;
> import javax.servlet.ServletException;
> import javax.servlet.annotation.WebServlet;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> @WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
> public class AsyncDemoServlet extends HttpServlet {
> private static final long serialVersionUID = 1L;
> protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> response.setContentType("text/html;charset=UTF-8");
> //Execute the business logic in sub-thread.
> AsyncContext ctx = request.startAsync();
> new Thread(new Executor(ctx)).start();
> }
> protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> doGet(request, response);
> }
> public class Executor implements Runnable {
> private AsyncContext ctx = null;
> public Executor(AsyncContext ctx){
> this.ctx = ctx;
> }
> public void run(){
> try {
> ctx.getResponse().getOutputStream().write("aaa".getBytes());
> //wait for 5 seconds to simulate the business logic.
> Thread.sleep(5000);
> ctx.getResponse().getOutputStream().flush();
> ctx.complete();
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 8 months
[JBoss JIRA] (WFLY-4413) Network connection leak in asynchronous servlet
by jeremy_lv lv (JIRA)
[ https://issues.jboss.org/browse/WFLY-4413?page=com.atlassian.jira.plugin.... ]
jeremy_lv lv edited comment on WFLY-4413 at 3/11/15 11:41 PM:
--------------------------------------------------------------
Hi, [~swd847]:
I have confirmed the last test code can only be reproduced when the browser is IE and couldn't be reproduced in the other browsers such as firefox and chrome.
Now I have modify some of the code to make sure it can be reproduced both in firefox and chrome. could you please try to reproduced this phenomenon again? I'm sure the phenomenon about the connection leak can be reproduced in your laptop.
Thanks.
was (Author: jeremy_lv):
Hi, [~swd847]:
I have confirmed the last test code can only be reproduced when the browser is IE and can't reproduced in the other browsers such as firefox and chrome.
Now I have modify some of the code to make sure it can be reproduced both in firefox and chrome. could you please try to reproduced this phenomenon again? I'm sure the phenomenon about the connection leak can be reproduced in your laptop.
Thanks.
> Network connection leak in asynchronous servlet
> -----------------------------------------------
>
> Key: WFLY-4413
> URL: https://issues.jboss.org/browse/WFLY-4413
> Project: WildFly
> Issue Type: Bug
> Components: Web (Undertow)
> Affects Versions: 8.1.0.Final, 8.2.0.Final
> Environment: Linux
> Reporter: jeremy_lv lv
> Assignee: Stuart Douglas
> Priority: Blocker
> Labels: undertow
>
> {panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
> {panel}
> *Some of the stacktrace are as follows:*
> {panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> 14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
> Caused by: java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
> at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
> at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
> at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
> at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
> at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
> at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
> at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
> at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
> at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
> at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> ... 6 more
> {panel}
> *Here's the test war code you can used to reproduce this phenomenon:*
> {code:title=AsyncDemoServlet.java|borderStyle=solid}
> import java.io.IOException;
> import javax.servlet.AsyncContext;
> import javax.servlet.ServletException;
> import javax.servlet.annotation.WebServlet;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> @WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
> public class AsyncDemoServlet extends HttpServlet {
> private static final long serialVersionUID = 1L;
> protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> response.setContentType("text/html;charset=UTF-8");
> //Execute the business logic in sub-thread.
> AsyncContext ctx = request.startAsync();
> new Thread(new Executor(ctx)).start();
> }
> protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> doGet(request, response);
> }
> public class Executor implements Runnable {
> private AsyncContext ctx = null;
> public Executor(AsyncContext ctx){
> this.ctx = ctx;
> }
> public void run(){
> try {
> ctx.getResponse().getOutputStream().write("aaa".getBytes());
> //wait for 5 seconds to simulate the business logic.
> Thread.sleep(5000);
> ctx.getResponse().getOutputStream().flush();
> ctx.complete();
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 8 months
[JBoss JIRA] (WFLY-4413) Network connection leak in asynchronous servlet
by jeremy_lv lv (JIRA)
[ https://issues.jboss.org/browse/WFLY-4413?page=com.atlassian.jira.plugin.... ]
jeremy_lv lv commented on WFLY-4413:
------------------------------------
Hi, [~swd847]:
I have confirmed the latest test code can only be reproduced when the browser is IE and can't reproduced in the other browsers such as firefox and chrome.
Now I have modify some of the code to make sure it can be reproduced both in firefox and chrome. could you please try to reproduced this phenomenon again? I'm sure the phenomenon about the connection leak can be reproduced in your laptop.
Thanks.
> Network connection leak in asynchronous servlet
> -----------------------------------------------
>
> Key: WFLY-4413
> URL: https://issues.jboss.org/browse/WFLY-4413
> Project: WildFly
> Issue Type: Bug
> Components: Web (Undertow)
> Affects Versions: 8.1.0.Final, 8.2.0.Final
> Environment: Linux
> Reporter: jeremy_lv lv
> Assignee: Stuart Douglas
> Priority: Blocker
> Labels: undertow
>
> {panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
> {panel}
> *Some of the stacktrace are as follows:*
> {panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> 14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
> Caused by: java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
> at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
> at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
> at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
> at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
> at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
> at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
> at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
> at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
> at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
> at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> ... 6 more
> {panel}
> *Here's the test war code you can used to reproduce this phenomenon:*
> {code:title=AsyncDemoServlet.java|borderStyle=solid}
> import java.io.IOException;
> import javax.servlet.AsyncContext;
> import javax.servlet.ServletException;
> import javax.servlet.annotation.WebServlet;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> @WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
> public class AsyncDemoServlet extends HttpServlet {
> private static final long serialVersionUID = 1L;
> protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> response.setContentType("text/html;charset=UTF-8");
> //Execute the business logic in sub-thread.
> AsyncContext ctx = request.startAsync();
> new Thread(new Executor(ctx)).start();
> }
> protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> doGet(request, response);
> }
> public class Executor implements Runnable {
> private AsyncContext ctx = null;
> public Executor(AsyncContext ctx){
> this.ctx = ctx;
> }
> public void run(){
> try {
> ctx.getResponse().getOutputStream().write("aaa".getBytes());
> //wait for 5 seconds to simulate the business logic.
> Thread.sleep(5000);
> ctx.getResponse().getOutputStream().flush();
> ctx.complete();
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 8 months
[JBoss JIRA] (WFLY-4413) Network connection leak in asynchronous servlet
by jeremy_lv lv (JIRA)
[ https://issues.jboss.org/browse/WFLY-4413?page=com.atlassian.jira.plugin.... ]
jeremy_lv lv updated WFLY-4413:
-------------------------------
Description:
{panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
{panel}
*Some of the stacktrace are as follows:*
{panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
Caused by: java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
... 6 more
{panel}
*Here's the test war code you can used to reproduce this phenomenon:*
{code:title=AsyncDemoServlet.java|borderStyle=solid}
import java.io.IOException;
import javax.servlet.AsyncContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
public class AsyncDemoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
//Execute the business logic in sub-thread.
AsyncContext ctx = request.startAsync();
new Thread(new Executor(ctx)).start();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
public class Executor implements Runnable {
private AsyncContext ctx = null;
public Executor(AsyncContext ctx){
this.ctx = ctx;
}
public void run(){
try {
ctx.getResponse().getOutputStream().write("aaa".getBytes());
//wait for 5 seconds to simulate the business logic.
Thread.sleep(5000);
ctx.getResponse().getOutputStream().flush();
ctx.complete();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
{code}
was:
{panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
{panel}
*Some of the stacktrace are as follows:*
{panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
Caused by: java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
... 6 more
{panel}
*Here's the test war code you can used to reproduce this phenomenon:*
{code:title=AsyncDemoServlet.java|borderStyle=solid}
import java.io.IOException;
import javax.servlet.AsyncContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
public class AsyncDemoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
//Execute the business logic in sub-thread.
AsyncContext ctx = request.startAsync();
new Thread(new Executor(ctx)).start();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
public class Executor implements Runnable {
private AsyncContext ctx = null;
public Executor(AsyncContext ctx){
this.ctx = ctx;
}
public void run(){
try {
//wait for 5 seconds to simulate the business logic.
Thread.sleep(5000);
ctx.complete();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
{code}
> Network connection leak in asynchronous servlet
> -----------------------------------------------
>
> Key: WFLY-4413
> URL: https://issues.jboss.org/browse/WFLY-4413
> Project: WildFly
> Issue Type: Bug
> Components: Web (Undertow)
> Affects Versions: 8.1.0.Final, 8.2.0.Final
> Environment: Linux
> Reporter: jeremy_lv lv
> Assignee: Stuart Douglas
> Priority: Blocker
> Labels: undertow
>
> {panel:title=Phenomenon|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> When the connection is suddenly terminated during the period we access the asynchronous servlet application, the connection will be leaked. However, the connection won't be leak when we access the synchronous servlet application.
> {panel}
> *Some of the stacktrace are as follows:*
> {panel:title=Stacktrace|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE}
> 14:34:23,751 ERROR [io.undertow.request] (default task-22) Blocking request fail
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java
> at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(As
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
> Caused by: java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) [rt.jar:1.7.0
> at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_25]
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [rt.ja
> at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150)
> at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(Htt
> at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpRespon
> at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(Abstr
> at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkCha
> at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStre
> at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
> at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputS
> at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter
> at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpSer
> ... 6 more
> {panel}
> *Here's the test war code you can used to reproduce this phenomenon:*
> {code:title=AsyncDemoServlet.java|borderStyle=solid}
> import java.io.IOException;
> import javax.servlet.AsyncContext;
> import javax.servlet.ServletException;
> import javax.servlet.annotation.WebServlet;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> @WebServlet(urlPatterns="/asyncDemoServlet",asyncSupported=true)
> public class AsyncDemoServlet extends HttpServlet {
> private static final long serialVersionUID = 1L;
> protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> response.setContentType("text/html;charset=UTF-8");
> //Execute the business logic in sub-thread.
> AsyncContext ctx = request.startAsync();
> new Thread(new Executor(ctx)).start();
> }
> protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> doGet(request, response);
> }
> public class Executor implements Runnable {
> private AsyncContext ctx = null;
> public Executor(AsyncContext ctx){
> this.ctx = ctx;
> }
> public void run(){
> try {
> ctx.getResponse().getOutputStream().write("aaa".getBytes());
> //wait for 5 seconds to simulate the business logic.
> Thread.sleep(5000);
> ctx.getResponse().getOutputStream().flush();
> ctx.complete();
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 8 months
[JBoss JIRA] (JGRP-1907) ENCRYPT: asymmetric encryption fails on merge
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/JGRP-1907?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration commented on JGRP-1907:
-----------------------------------------------
Dave Stahl <dstahl(a)redhat.com> changed the Status of [bug 1187193|https://bugzilla.redhat.com/show_bug.cgi?id=1187193] from MODIFIED to ON_QA
> ENCRYPT: asymmetric encryption fails on merge
> ---------------------------------------------
>
> Key: JGRP-1907
> URL: https://issues.jboss.org/browse/JGRP-1907
> Project: JGroups
> Issue Type: Bug
> Reporter: Bela Ban
> Assignee: Bela Ban
> Fix For: 3.6.2
>
> Attachments: encrypt.xml, EncryptKeyStore.xml
>
>
> {{ENCRYPT}} fails to communicate after a network split and subsequent merge with asymmetric encryption. This works with symmetric encryption.
> To reproduce:
> * Members A and B
> * Add {{<DISCARD use_gui="true"/>}} on top of {{UDP}}
> * Form cluster {{(A,B)}}
> * Create a network split: {{(A)}} and {{(B)}}
> * Remove the network split
> * Observe that with both symmetric and asymmetric encryption, the merge forms cluster {{(A,B)}}
> * However, with asymmetric encryption, {{ENCRYPT}} fails to process any messages and rejects all messages, whereas with symmetric encryption, this works.
> * Symmetric encryption: {{EncryptKeyStore.xml}}
> * Asymmetric encryption: {{encrypt.xml}}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 8 months
[JBoss JIRA] (WFLY-2999) AJP connector request body stream is wrong mixed
by Stuart Douglas (JIRA)
[ https://issues.jboss.org/browse/WFLY-2999?page=com.atlassian.jira.plugin.... ]
Stuart Douglas commented on WFLY-2999:
--------------------------------------
It should be in 8.2, what exactly are you seeing?
> AJP connector request body stream is wrong mixed
> ------------------------------------------------
>
> Key: WFLY-2999
> URL: https://issues.jboss.org/browse/WFLY-2999
> Project: WildFly
> Issue Type: Bug
> Components: Web (Undertow)
> Affects Versions: 8.0.0.Final
> Environment: Apahce HTTPD 2.2.23 + MOD_CLUSTER 1.3 Final + WildFly 8 Final
> Reporter: JuYeon Yu
> Assignee: Stuart Douglas
> Fix For: 9.0.0.Alpha1
>
>
> Seem to have a problem with the AJP Connector.
> When client(Browser) send request has many parameter, sometime received content is different.
> ex)
> Request Body is:
> dataJson={"crfpage_type":["CRF"],"qst_rowno":["7148#0#0","7141#0#0","7143#0#0","7144#0#0","7145#0#0","7146#0#0","7147#0#0","7123#0#0","7125#0#0","7126#0#0","7127#0#0","7128#0#0","7129#0#0","7130#0#0","7131#0#0","7132#0#0","7133#0#0","7134#0#0","7135#0#0","7136#0#0","7137#0#0","7138#0#0","7139#0#0","7140#0#0","7117#0#0","7119#0#0","7120#0#0","7121#0#0","7122#0#0"],"item_7148_16445_0_0":[""],"_item_7141_16466_0_0":[""],"item_7143_16462_0_0":["RBC"],"item_7143_16463_0_0":[""],"item_7143_16464_0_0":[""],"item_7143_16464_0_0_r":[""],"item_7143_16465_0_0":[""],"item_7144_16458_0_0":["Hemoglobin"],"item_7144_16459_0_0":[""],"item_7144_16460_0_0":[""],"item_7144_16460_0_0_r":[""],"item_7144_16461_0_0":[""],"item_7145_16454_0_0":["Hematocrit"],"item_7145_16455_0_0":[""],"item_7145_16456_0_0":[""],"item_7145_16456_0_0_r":[""],"item_7145_16457_0_0":[""],"item_7146_16450_0_0":["Platelet"],"item_7146_16451_0_0":[""],"item_7146_16452_0_0":[""],"item_7146_16452_0_0_r":[""],"item_7146_16453_0_0":[""],"item_7147_16446_0_0":["WBC"],"item_7147_16447_0_0":[""],"item_7147_16448_0_0":[""],"item_7147_16448_0_0_r":[""],"item_7147_16449_0_0":[""],"_item_7123_16531_0_0":[""],"item_7125_16527_0_0":["Calcium"],"item_7125_16528_0_0":[""],"item_7125_16529_0_0":[""],"item_7125_16529_0_0_r":[""],"item_7125_16530_0_0":[""],"item_7126_16523_0_0":["Sodium"],"item_7126_16524_0_0":[""],"item_7126_16525_0_0":[""],"item_7126_16525_0_0_r":[""],"item_7126_16526_0_0":[""],"item_7127_16519_0_0":["Potassium"],"item_7127_16520_0_0":[""],"item_7127_16521_0_0":[""],"item_7127_16521_0_0_r":[""],"item_7127_16522_0_0":[""],"item_7128_16515_0_0":["Chloride"],"item_7128_16516_0_0":[""],"item_7128_16517_0_0":[""],"item_7128_16517_0_0_r":[""],"item_7128_16518_0_0":[""],"item_7129_16511_0_0":["Creatinine"],"item_7129_16512_0_0":[""],"item_7129_16513_0_0":[""],"item_7129_16513_0_0_r":[""],"item_7129_16514_0_0":[""],"item_7130_16507_0_0":["BUN"],"item_7130_16508_0rl=/cs8635_sit_11_01/crf-submit/S4Z068/3015 , dataJson={"crfpage_type":["CRF"],"qst_rowno":["7148#0#0","7141#0#0","7143#0#0","7144#0#0","7145#0#0","7146#0#0","7147#0#0","7123#0#0","7125#0#0","7126#0#0","7127#0#0","7128#0#0","7129#0#0","7130#0#0","7131#0#0","7132#0#0","7133#0#0","7134#0#0","7135#0#0","7136#0#0","7137#0#0","7138#0#0","7139#0#0","7140#0#0","7117#0#0","7119#0#0","7120#0#0","7121#0#0","7122#0#0"],"item_7148_16445_0_0":[""],"_item_7141_16466_0_0":[""],"item_7143_16462_0_0":["RBC"],"item_7143_16463_0_0":[""],"item_7143_16464_0_0":[""],"item_7143_16464_0_0_r":[""],"item_7143_16465_0_0":[""],"item_7144_16458_0_0":["Hemoglobin"],"item_7144_16459_0_0":[""],"item_7144_16460_0_0":[""],"item_7144_16460_0_0_r":[""],"item_7144_16461_0_0":[""],"item_7145_16454_0_0":["Hematocrit"],"item_7145_16455_0_0":[""],"item_7145_16456_0_0":[""],"item_7145_16456_0_0_r":[""],"item_7145_16457_0_0":[""],"item_7146_16450_0_0":["Platelet"],"item_7146_16451_0_0":[""],"item_7146_16452_0_0":[""],"item_7146_16452_0_0_r":[""],"item_7146_16453_0_0":[""],"item_7147_16446_0_0":["WBC"],"item_7147_16447_0_0":[""],"item_7147_16448_0_0":[""],"item_7147_16448_0_0_r":[""],"item_7147_16449_0_0":[""],"_item_7123_16531_0_0":[""],"item_7125_16527_0_0":["Calcium"],"item_7125_16528_0_0":[""],"item_7125_16529_0_0":[""],"item_7125_16529_0_0_r":[""],"item_7125_16530_0_0":[""],"item_7126_16523_0_0":["Sodium"],"item_7126_16524_0_0":[""],"item_7126_16525_0_0":[""],"item_7126_16525_0_0_r":[""],"item_7126_16526_0_0":[""],"item_7127_16519_0_0":["Potassium"],"item_7127_16520_0_0":[""],"item_7127_16521_0_0":[""],"item_7127_16521_0_0_r":[""],"item_7127_16522_0_0":[""],"item_7128_16515_0_0":["Chloride"],"item_7128_16516_0_0":[""],"item_7128_16517_0_0":[""],"item_7128_16517_0_0_r":[""],"item_7128_16518_0_0":[""],"item_7129_16511_0_0":["Creatinine"],"item_7129_16512_0_0":[""],"item_7129_16513_0_0":[""],"item_7129_16513_0_0_r":[""],"item_7129_16514_0_0":[""],"item_7130_16507_0_0":["BUN"],"item_7130_16508_0rl=/cs8635_sit_11_01/crf-submit/S4Z068/3015 , dataJson={"crfpage_type":["CRF"],"qst_rowno":["7148#0#0","7141#0#0","7143#0#0","7144#0#0","7145#0#0","7146#0#0","7147#0#0","7123#0#0","7125#0#0","7126#0#0","7127#0#0","7128#0#0","7129#0#0","7130#0#0","7131#0#0","7132#0#0","7133#0#0","7134#0#0","7135#0#0","7136#0#0","7137#0#0","7138#0#0","7139#0#0","7140#0#0","7117#0#0","7119#0#0","7120#0#0","7121#0#0","7122#0#0"],"item_7148_16445_0_0":[""],"_item_7141_16466_0_0":[""],"item_7143_16462_0_0":["RBC"],"item_7143_16463_0_0":[""],"item_7143_16464_0_0":[""],"item_7143_16464_0_0_r":[""],"item_7143_16465_0_0":[""],"item_7144_16458_0_0":["Hemoglobin"],"item_7144_16459_0_0":[""],"item_7144_16460_0_0":[""],"item_7144_16460_0_0_r":[""],"item_7144_16461_0_0":[""],"item_7145_16454_0_0":["Hematocrit"],"item_7145_16455_0_0":[""],"item_7145_16456_0_0":[""],"item_7145_16456_0_0_r":[""],"item_7145_16457_0_0":[""],"item_7146_16450_0_0":["Platelet"],"item_7146_16451_0_0":[""],"item_7146_16452_0_0":[""],"item_7146_16452_0_0_r":[""],"item_7146_16453_0_0":[""],"item_7147_16446_0_0":["WBC"],"item_7147_16447_0_0":[""],"item_7147_16448_0_0":[""],"item_7147_16448_0_0_r":[""],"item_7147_16449_0_0":[""],"_item_7123_16531_0_0":[""],"item_7125_16527_0_0":["Calcium"],"item_7125_16528_0_0":[""],"item_7125_16529_0_0":[""],"item_7125_16529_0_0_r":[""],"item_7125_16530_0_0":[""],"item_7126_16523_0_0":["Sodium"],"item_7126_16524_0_0":[""],"item_7126_16525_0_0":[""],"item_7126_16525_0_0_r":[""],"item_7126_16526_0_0":[""],"item_7127_16519_0_0":["Potassium"],"item_7127_16520_0_0":[""],"item_7127_16521_0_0":[""],"item_7127_16521_0_0_r":[""],"item_7127_16522_0_0":[""],"item_7128_16515_0_0":["Chloride"],"item_7128_16516_0_0":[""],"item_7128_16517_0_0":[""],"item_7128_16517_0_0_r":[""],"item_7128_16518_0_0":[""],"item_7129_16511_0_0":["Creatinine"],"item_7129_16512_0_0":[""],"item_7129_16513_0_0":[""],"item_7129_16513_0_0_r":[""],"item_7129_16514_0_0":[""],"item_7130_16507_0_0":["BUN"],"item_7130_16508_03A[""],"item_7121_16536_0_0":["Protein"],"item_7121_16537_0_0":[""],"item_7121_16539_0_0":[""],"item_7122_16532_0_0":["Glucose"],"item_7122_16533_0_0":[""],"item_7122_16535_0_0":[""]}
> Received is:
> dataJson={"crfpage_type":["CRF"],"qst_rowno":["7148#0#0","7141#0#0","7143#0#0","7144#0#0","7145#0#0","7146#0#0","7147#0#0","7123#0#0","7125#0#0","7126#0#0","7127#0#0","7128#0#0","7129#0#0","7130#0#0","7131#0#0","7132#0#0","7133#0#0","7134#0#0","7135#0#0","7136#0#0","7137#0#0","7138#0#0","7139#0#0","7140#0#0","7117#0#0","7119#0#0","7120#0#0","7121#0#0","7122#0#0"],"item_7148_16445_0_0":[""],"_item_7141_16466_0_0":[""],"item_7143_16462_0_0":["RBC"],"item_7143_16463_0_0":[""],"item_7143_16464_0_0":[""],"item_7143_16464_0_0_r":[""],"item_7143_16465_0_0":[""],"item_7144_16458_0_0":["Hemoglobin"],"item_7144_16459_0_0":[""],"item_7144_16460_0_0":[""],"item_7144_16460_0_0_r":[""],"item_7144_16461_0_0":[""],"item_7145_16454_0_0":["Hematocrit"],"item_7145_16455_0_0":[""],"item_7145_16456_0_0":[""],"item_7145_16456_0_0_r":[""],"item_7145_16457_0_0":[""],"item_7146_16450_0_0":["Platelet"],"item_7146_16451_0_0":[""],"item_7146_16452_0_0":[""],"item_7146_16452_0_0_r":[""],"item_7146_16453_0_0":[""],"item_7147_16446_0_0":["WBC"],"item_7147_16447_0_0":[""],"item_7147_16448_0_0":[""],"item_7147_16448_0_0_r":[""],"item_7147_16449_0_0":[""],"_item_7123_16531_0_0":[""],"item_7125_16527_0_0":["Calcium"],"item_7125_16528_0_0":[""],"item_7125_16529_0_0":[""],"item_7125_16529_0_0_r":[""],"item_7125_16530_0_0":[""],"item_7126_16523_0_0":["Sodium"],"item_7126_16524_0_0":[""],"item_7126_16525_0_0":[""],"item_7126_16525_0_0_r":[""],"item_7126_16526_0_0":[""],"item_7127_16519_0_0":["Potassium"],"item_7127_16520_0_0":[""],"item_7127_16521_0_0":[""],"item_7127_16521_0_0_r":[""],"item_7127_16522_0_0":[""],"item_7128_16515_0_0":["Chloride"],"item_7128_16516_0_0":[""],"item_7128_16517_0_0":[""],"item_7128_16517_0_0_r":[""],"item_7128_16518_0_0":[""],"item_7129_16511_0_0":["Creatinine"],"item_7129_16512_0_0":[""],"item_7129_16513_0_0":[""],"item_7129_16513_0_0_r":[""],"item_7129_16514_0_0":[""],"item_7130_16507_0_0":["BUN"],"item_7130_16508_0rl=/cs8635_sit_11_01/crf-submit/S4Z068/3015 , dataJson={"crfpage_type":["CRF"],"qst_rowno":["7148#0#0","7141#0#0","7143#0#0","7144#0#0","7145#0#0","7146#0#0","7147#0#0","7123#0#0","7125#0#0","7126#0#0","7127#0#0","7128#0#0","7129#0#0","7130#0#0","7131#0#0","7132#0#0","7133#0#0","7134#0#0","7135#0#0","7136#0#0","7137#0#0","7138#0#0","7139#0#0","7140#0#0","7117#0#0","7119#0#0","7120#0#0","7121#0#0","7122#0#0"],"item_7148_16445_0_0":[""],"_item_7141_16466_0_0":[""],"item_7143_16462_0_0":["RBC"],"item_7143_16463_0_ataJson={"crfpage_type":["CRF"],"qst_rowno":["7148#0#0","7141#0#0","7143#0#0","7144#0#0","7145#0#0","7146#0#0","7147#0#0","7123#0#0","7125#0#0","7126#0#0","7127#0#0","7128#0#0","7129#0#0","7130#0#0","7131#0#0","7132#0#0","7133#0#0","7134#0#0","7135#0#0","7136#0#0","7137#0#0","7138#0#0","7139#0#0","7140#0#0","7117#0#0","7119#0#0","7120#0#0","7121#0#0","7122#0#0"],"item_7148_16445_0_0":[""],"_item_7141_16466_0_0":[""],"item_7143_16462_0_0":["RBC"],"item_7143_16463_0_0":[""],"item_7143_16464_0_0":[""],"item_7143_16464_0_0_r":[""],"item_7143_16465_0_0":[""],"item_7144_16458_0_0":["Hemoglobin"],"item_7144_16459_0_0":[""],"item_7144_16460_0_0":[""],"item_7144_16460_0_0_r":[""],"item_7144_16461_0_0":[""],"item_7145_16454_0_0":["Hematocrit"],"item_7145_16455_0_0":[""],"item_7145_16456_0_0":[""],"item_7145_16456_0_0_r":[""],"item_7145_16457_0_0":[""],"item_7146_16450_0_0":["Platelet"],"item_7146_16451_0_0":[""],"item_7146_16452_0_0":[""],"item_7146_16452_0_0_r":[""],"item_7146_16453_0_0":[""],"item_7147_16446_0_0":["WBC"],"item_7147_16447_0_0":[""],"item_7147_16448_0_0":[""],"item_7147_16448_0_0_r":[""],"item_7147_16449_0_0":[""],"_item_7123_16531_0_0":[""],"item_7125_16527_0_0":["Calcium"],"item_7125_16528_0_0":[""],"item_7125_16529_0_0":[""],"item_7125_16529_0_0_r":[""],"item_7125_16530_0_0":[""],"item_7126_16523_0_0":["Sodium"],"item_7126_16524_0_0":[""],"item_7126_16525_0_0":[""],"item_7126_16525_0_0_r":[""],"item_7126_16526_0_0":[""],"item_7127_16519_0_0":["Potassium"],"item_7127_16520_0_0":[""],"item_7127_16521_0_0":[""],"item_7127_16521_0_0_r":[""],"item_7127_16522_0_0":[""],"item_7128_16515_0_0":["Chloride"],"item_7128_16516_0_0":[""],"item_7128_16517_0_0":[""],"item_7128_16517_0_0_r":[""],"item_7128_16518_0_0":[""],"item_7129_16511_0_0":["Creatinine"],"item_7129_16512_0_0":[""],"item_7129_16513_0_0":[""],"item_7129_16513_0_0_r":[""],"item_7129_16514_0_0":[""],"item_7130_16507_0_0":["BUN"],"item_7130_16508_0rl=/cs8635_sit_11_01/crf-submit/S4Z068/3015 , dataJson={"crfpage_type":["CRF"],"qst_rowno":["7148#0#0","7141#0#0","7143#0#0","7144#0#0","7145#0#0","7146#0#0","7147#0#0","7123#0#0","7125#0#0","7126#0#0","7127#0#0","7128#0#0","7129#0#0","7130#0#0","7131#0#0","7132#0#0","7133#0#0","7134#0#0","7135#0#0","7136#0#0","7137#0#0","7138#0#0","7139#0#0","7140#0#0","7117#0#0","7119#0#0","7120#0#0","7121#0#0","7122#0#0"],"item_7148_16445_0_0":[""],"_item_7141_16466_0_0":[""],"item_7143_16462_0_0":["RBC"],"item_7143_16463_0_
> I test use HTTP Connector same case, but it is normal(request and received is same)
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 8 months
[JBoss JIRA] (WFLY-4420) Need Hot fix for WildFly 8.2 : Expose connector metric values such as requestCount , maxTime, bytesReceived, etc
by Stuart Douglas (JIRA)
[ https://issues.jboss.org/browse/WFLY-4420?page=com.atlassian.jira.plugin.... ]
Stuart Douglas resolved WFLY-4420.
----------------------------------
Resolution: Out of Date
This is already present upstream
> Need Hot fix for WildFly 8.2 : Expose connector metric values such as requestCount , maxTime, bytesReceived, etc
> ----------------------------------------------------------------------------------------------------------------
>
> Key: WFLY-4420
> URL: https://issues.jboss.org/browse/WFLY-4420
> Project: WildFly
> Issue Type: Feature Request
> Components: Web (Undertow)
> Affects Versions: 8.0.0.Final, 8.1.0.Final, 8.2.0.Final
> Reporter: bk lau
> Assignee: Stuart Douglas
> Priority: Blocker
> Fix For: 9.0.0.Beta1
>
>
> while using jboss 7.2.0 we were able to fetch above values from the cli command as
> {noformat}
> [domain@test.com:9999 subsystem=web] ls
> configuration valve default-virtual-server=default-host native=false
> connector virtual-server instance-id=${jboss.node.name}
> [domain@test.com:9999 connector] ls
> ajp http
> [domain@test.com:9999 connector] cd http
> [domain@test.com:9999 connector] pwd
> /profile=ha/subsystem=web/connector=http
> [domain@test.com:9999 connector=http] ls
> configuration max-connections=undefined proxy-port=undefined
> ssl max-post-size=2097152 redirect-port=443
> bytesReceived= max-save-post-size=4096 requestCount=
> bytesSent= maxTime= scheme=http
> enable-lookups=false name=http secure=false
> enabled=true processingTime= socket-binding=http
> errorCount= protocol=HTTP/1.1 virtual-server=undefined
> executor=undefined proxy-name=undefined
> {noformat}
>
> Now we have moved to wildfly8 and trying to look for the same values in underetow( as there is no "web" subsystem in wildfly8)
> as below
> {noformat}
> [domain@test2.com:9990 subsystem=undertow] ls
> buffer-cache server default-servlet-container=default statistics-enabled=false (Here there is no connector attribute available as this was in jboss 7.2.0 )
> configuration servlet-container default-virtual-host=default-host
> error-page default-server=default-server instance-id=${jboss.node.name}
> {noformat}
>
> but the listners(HTTP, AJP and HTTPS ) are defined in the server attribute...hence going into server attribute we get the below as
> {noformat}
> [domain@test2.com:9990 server=default-server] ls
> ajp-listener host http-listener https-listener default-host=default-host servlet-container=default
> {noformat}
> after getting into http-listener we get the below
> {noformat}
> [domain@test2.com:9990 http-listener=default] ls
> allow-encoded-slash=false certificate-forwarding=false max-cookies=200 max-post-size=10485760 socket-binding=http
> always-set-keep-alive=true decode-url=true max-header-size=51200 proxy-address-forwarding=false url-charset=UTF-8
> buffer-pipelined-data=true enabled=true max-headers=200 record-request-start-time=false worker=default
> buffer-pool=default max-buffered-request-size=16384 max-parameters=1000 redirect-socket=https
> {noformat}
>
> Can someone please look into it ..?
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
9 years, 8 months