You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jmeter.apache.org by "v-barros (via GitHub)" <gi...@apache.org> on 2023/06/03 16:58:25 UTC
[GitHub] [jmeter] v-barros opened a new issue, #5964: TCP Sampler trying to reuse closed connection
v-barros opened a new issue, #5964:
URL: https://github.com/apache/jmeter/issues/5964
### Expected behavior
JMeter is trying to send a [PSH,ACK] to a previously closed connection, and it's showing this try as a success.
I think the 2nd and 3rd samplers should have the same result, either JMeter should try to reopen the closed connection before sending the data or it should get the same failure for both requests as the connection is closed anyway.
### Actual behavior
server is running on port 1234.
Black marked lines are packets sent from server to JMeter, gray lines are JMeter to server
![image](https://github.com/apache/jmeter/assets/42453088/e8b706fa-a435-4a86-96a9-90a28bbc9fc9)
As we can see, the first packet is a [SYN] sent by JMeter, initiating the connection, followed by an [SYN,ACK] from server.
Then, JMeter sends another [ACK], followed by the actual data packet with [PSH,ACK].
The server sends an [ACK] and waits 5 seconds to close the timed out connection.
The server sends a [FYN] packet to JMeter, asking to close the connection, and JMeter's answer is an [ACK], so I expect JMeter actually knows that the connection is now closed and try to reopen the connection when sending the following sampler, but actually it is sending a [PSH,ACK] as if the connection was still opened.
Not only JMeter is trying to connect to a broken pipe, but it actually shows this unsuccessful sampler as a success, even though the server didn't send anything but a [RST].
![image](https://github.com/apache/jmeter/assets/42453088/e7b72e7b-016a-4b4f-842e-3bb28471ddcb)
Then the 3rd sampler gets a broken pipe exception, different from the second sampler...
![image](https://github.com/apache/jmeter/assets/42453088/4041a472-fd61-4aed-8e4c-132fd42778a0)
### Steps to reproduce the problem
I've been working on a personal project to develop a simple event loop and when using JMeter to test this server I noticed a weird behavior.
I'm using a very simple scenario, its just one single TCP Sampler, configured as below, expecting to receive a "OK\0" as response:
![Screenshot from 2023-06-03 13-10-07](https://github.com/apache/jmeter/assets/42453088/2b932a78-7b4a-4ea0-b53e-cc9c0743a2bd)
I'm using a regular Thread Group with 1 thread, 1 sec ramp up and Loop count 3.
![Screenshot from 2023-06-03 13-16-04](https://github.com/apache/jmeter/assets/42453088/b89df928-a27c-4608-b95b-5191cc26cb40)
There's a constant timer delaying the sampler by 6 seconds.
![image](https://github.com/apache/jmeter/assets/42453088/ec568252-6651-4855-84bd-679b51a2b90a)
My server is set to close timed out connections after 5 seconds.
### JMeter Version
5.5
### Java Version
OpenJDK Runtime Environment (build 17.0.7+7-Ubuntu-0ubuntu122.04.2)
### OS Version
Ubuntu 22.04.02
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@jmeter.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [jmeter] v-barros commented on issue #5964: TCP Sampler trying to reuse closed connection
Posted by "v-barros (via GitHub)" <gi...@apache.org>.
v-barros commented on issue #5964:
URL: https://github.com/apache/jmeter/issues/5964#issuecomment-1605179585
Well, then it's not an issue after all.
Thanks @vlsi.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@jmeter.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [jmeter] vlsi commented on issue #5964: TCP Sampler trying to reuse closed connection
Posted by "vlsi (via GitHub)" <gi...@apache.org>.
vlsi commented on issue #5964:
URL: https://github.com/apache/jmeter/issues/5964#issuecomment-1575697083
See https://docs.oracle.com/javase/8/docs/technotes/guides/net/articles/connection_release.html
> Sending a TCP FIN message means "I am finished sending"
>...
> So what happens, for example, when A attempts an orderly release by closing the socket, but B continues to send data? This is perfectly allowable in the TCP specification, because as far as TCP is concerned only one half of the connection has been closed
In other words, `FIN` from server does not tell the connection is fully closed.
I am afraid there's no reliable way to tell if the connection is workable, and the only way we could detect is to write data.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@jmeter.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [jmeter] v-barros closed issue #5964: TCP Sampler trying to reuse closed connection
Posted by "v-barros (via GitHub)" <gi...@apache.org>.
v-barros closed issue #5964: TCP Sampler trying to reuse closed connection
URL: https://github.com/apache/jmeter/issues/5964
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@jmeter.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org