You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by Anmol Sarraf <sa...@gmail.com> on 2023/05/29 10:08:40 UTC

Regarding Socket write error

Hi Team,

While uploading a file of 280MB via jmeter, I am getting a socket write
error. I did increase the connection timeout to 10mins but still it gives
an error. What should I do?

Response code:Non HTTP response code: java.net.SocketException Response
message:Non HTTP response message: Software caused connection abort: socket
write error
-----------
java.net.SocketException: Software caused connection abort: socket write
error     at java.net.SocketOutputStream.socketWrite0(Native Method)     at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)     at
java.net.SocketOutputStream.write(SocketOutputStream.java:155)     at
org.apache.http.impl.io.SessionOutputBufferImpl.streamWrite(SessionOutputBufferImpl.java:124)
    at
org.apache.http.impl.io.SessionOutputBufferImpl.flushBuffer(SessionOutputBufferImpl.java:136)
    at
org.apache.http.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:167)
    at
org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:113)
    at
org.apache.http.entity.mime.content.FileBody.writeTo(FileBody.java:121)
at
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$ViewableFileBody.writeTo(HTTPHC4Impl.java:1517)
    at
org.apache.http.entity.mime.AbstractMultipartForm.doWriteTo(AbstractMultipartForm.java:134)
    at
org.apache.http.entity.mime.AbstractMultipartForm.writeTo(AbstractMultipartForm.java:157)
    at
org.apache.http.entity.mime.MultipartFormEntity.writeTo(MultipartFormEntity.java:113)
    at
org.apache.http.impl.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:156)
    at
org.apache.http.impl.conn.CPoolProxy.sendRequestEntity(CPoolProxy.java:152)
    at
org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:238)
    at
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$2.doSendRequest(HTTPHC4Impl.java:462)
    at
org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
    at
org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
    at
org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
    at
org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at
org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
    at
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
    at
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:939)
    at
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:650)
    at
org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:66)
    at
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1301)
    at
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1290)
    at
org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651)
  at
org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570)
    at
org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268)
  at java.lang.Thread.run(Thread.java:750)

Thanks and Regards,
Anmol

Re: Regarding Socket write error

Posted by Adrian Sp <as...@gmail.com>.
Hi,

As the package where the error occurred suggests, this is not a JMeter
issue and the connection was aborted before it could be completed. You
need to check if JMeter is allowed to make such requests and if
everything else was in order with the request you've made.

Cheers,
Adrian

On Mon, May 29, 2023 at 1:09 PM Anmol Sarraf <sa...@gmail.com> wrote:
>
> Hi Team,
>
> While uploading a file of 280MB via jmeter, I am getting a socket write
> error. I did increase the connection timeout to 10mins but still it gives
> an error. What should I do?
>
> Response code:Non HTTP response code: java.net.SocketException Response
> message:Non HTTP response message: Software caused connection abort: socket
> write error
> -----------
> java.net.SocketException: Software caused connection abort: socket write
> error     at java.net.SocketOutputStream.socketWrite0(Native Method)     at
> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)     at
> java.net.SocketOutputStream.write(SocketOutputStream.java:155)     at
> org.apache.http.impl.io.SessionOutputBufferImpl.streamWrite(SessionOutputBufferImpl.java:124)
>     at
> org.apache.http.impl.io.SessionOutputBufferImpl.flushBuffer(SessionOutputBufferImpl.java:136)
>     at
> org.apache.http.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:167)
>     at
> org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:113)
>     at
> org.apache.http.entity.mime.content.FileBody.writeTo(FileBody.java:121)
> at
> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$ViewableFileBody.writeTo(HTTPHC4Impl.java:1517)
>     at
> org.apache.http.entity.mime.AbstractMultipartForm.doWriteTo(AbstractMultipartForm.java:134)
>     at
> org.apache.http.entity.mime.AbstractMultipartForm.writeTo(AbstractMultipartForm.java:157)
>     at
> org.apache.http.entity.mime.MultipartFormEntity.writeTo(MultipartFormEntity.java:113)
>     at
> org.apache.http.impl.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:156)
>     at
> org.apache.http.impl.conn.CPoolProxy.sendRequestEntity(CPoolProxy.java:152)
>     at
> org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:238)
>     at
> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$2.doSendRequest(HTTPHC4Impl.java:462)
>     at
> org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
>     at
> org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
>     at
> org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
>     at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
>     at
> org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
>     at
> org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
>     at
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
>     at
> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:939)
>     at
> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:650)
>     at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:66)
>     at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1301)
>     at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1290)
>     at
> org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651)
>   at
> org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570)
>     at
> org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501)
>     at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268)
>   at java.lang.Thread.run(Thread.java:750)
>
> Thanks and Regards,
> Anmol

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
For additional commands, e-mail: user-help@jmeter.apache.org


Re: Regarding Socket write error

Posted by Dmitri T <gl...@live.com>.
Anmol Sarraf wrote:
> Hi Team,
>
> While uploading a file of 280MB via jmeter, I am getting a socket write
> error. I did increase the connection timeout to 10mins but still it gives
> an error. What should I do?
>
> Response code:Non HTTP response code: java.net.SocketException Response
> message:Non HTTP response message: Software caused connection abort: socket
> write error
> -----------
> java.net.SocketException: Software caused connection abort: socket write
> error     at java.net.SocketOutputStream.socketWrite0(Native Method)     at
> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)     at
> java.net.SocketOutputStream.write(SocketOutputStream.java:155)     at
> org.apache.http.impl.io.SessionOutputBufferImpl.streamWrite(SessionOutputBufferImpl.java:124)
>      at
> org.apache.http.impl.io.SessionOutputBufferImpl.flushBuffer(SessionOutputBufferImpl.java:136)
>      at
> org.apache.http.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:167)
>      at
> org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:113)
>      at
> org.apache.http.entity.mime.content.FileBody.writeTo(FileBody.java:121)
> at
> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$ViewableFileBody.writeTo(HTTPHC4Impl.java:1517)
>      at
> org.apache.http.entity.mime.AbstractMultipartForm.doWriteTo(AbstractMultipartForm.java:134)
>      at
> org.apache.http.entity.mime.AbstractMultipartForm.writeTo(AbstractMultipartForm.java:157)
>      at
> org.apache.http.entity.mime.MultipartFormEntity.writeTo(MultipartFormEntity.java:113)
>      at
> org.apache.http.impl.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:156)
>      at
> org.apache.http.impl.conn.CPoolProxy.sendRequestEntity(CPoolProxy.java:152)
>      at
> org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:238)
>      at
> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$2.doSendRequest(HTTPHC4Impl.java:462)
>      at
> org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
>      at
> org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
>      at
> org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
>      at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
>      at
> org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
>      at
> org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
>      at
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
>      at
> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:939)
>      at
> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:650)
>      at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:66)
>      at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1301)
>      at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1290)
>      at
> org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651)
>    at
> org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570)
>      at
> org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501)
>      at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268)
>    at java.lang.Thread.run(Thread.java:750)
>
> Thanks and Regards,
> Anmol
>
Take a look at WSAECONNABORTED - An understandable explanation. 
<http://www.chilkatsoft.com/p/p_299.asp>

My guess is that your request gets malformed somehow (invalid 
content-length, too large, whatever) hence the system under test doesn't 
accept it. JMeter either retries the request or tries to finish it using 
the socket connection which doesn't exist anymore.

So I would recommend
1. using a sniffer tool like Wireshark <https://www.wireshark.org/> to 
see what exactly breaks the connection, what are the TCP flags, how does 
request look like, etc.
2. making sure you're following JMeter Best Practices 
<https://www.blazemeter.com/blog/jmeter-memory-profiling> and it has 
enough headroom in terms of CPU, RAM, etc.
3. If you're uploading lots of 300MB files concurrently you can consider 
switching to HTTP Raw Request sampler 
<https://jmeter-plugins.org/wiki/RawRequest/> which has a feature of 
directly streaming the file to the system under test 
<https://groups.google.com/g/jmeter-plugins/c/VDqXDNDCr6w> without 
loading it into memory first
4. As a workaround you can also try switching Implementation of the 
request to Java and see if it helps

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
For additional commands, e-mail: user-help@jmeter.apache.org