[infinispan-dev] simulating connection timeout

Michal Linhard mlinhard at redhat.com
Thu Jan 19 08:27:30 EST 2012


I wanted to test my theory that the hot rod client connection timeout we 
added as part of
https://issues.jboss.org/browse/ISPN-1565
is being ignored
(taking into account https://issues.jboss.org/browse/ISPN-1755)
I configured both socket timeout and connect timeout for 2 min but in 
certain tests I'm getting connection timeuot after cca 20secs.

m.
On 01/19/2012 12:01 PM, Manik Surtani wrote:
> What is this for?  Perhaps just mock up the client to use a mock socket?
>
> On 19 Jan 2012, at 12:57, Bela Ban wrote:
>
>> If this is done in Java code, you could use byteman to change the behavior.
>>
>> Intercepting and changing the data flow in the TCP/IP stack itself gets
>> more tricky; you have to insert a packet filter and then drop/reorder
>> packets. In Java, you might be able to use jnetpcap, which allows you to
>> get access to the individual packets.
>>
>> Maybe iptables will also allow you to do this, but it's rather static.
>>
>> On 1/18/12 10:05 PM, Michal Linhard wrote:
>>> Hi all,
>>>
>>> probably stupid question from the area of java server programming and
>>> networking if anyone's interrested:
>>> (otherwise sorry for spam)
>>>
>>> is there a simple way of creating a server in java that would always
>>> give me connection timeout ? (not connection refused, nor socket timeout
>>> during read)
>>> is it even possible to control establishing tcp connection from java ?
>>>
>>> what layer does control this ?
>>> it seems that once you bind a socket the connections are automatically
>>> established.
>>> probably on some JVM level ?
>>> so when I get
>>>
>>> java.net.ConnectException: Connection timed out
>>> 	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
>>> 	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
>>> 	at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:100)
>>> 	at org.infinispan.client.hotrod.impl.transport.tcp.TcpTransport.<init>(TcpTransport.java:80)
>>>
>>>
>>> this means that server JVM or OS networking layer or whatever was so
>>> stressed that it didn't have time to respond with SYN,ACK flagged packet
>>> to establish the connection ?
>>>
>>> m.
>>>
>>>
>>> ----------- my test code:
>>> public class EchoServer {
>>>      public static void main(String[] args) {
>>>         try {
>>>            ServerSocketChannel serverChannel = ServerSocketChannel.open();
>>>            InetSocketAddress isa = new InetSocketAddress("localhost", 9090);
>>>            serverChannel.socket().bind(isa);
>>>            Thread.sleep(20000);
>>>         } catch (Exception e) {
>>>            e.printStackTrace();
>>>         }
>>>
>>>      }
>>> }
>>>
>>> public class EchoClient {
>>>      public static void main(String[] args) {
>>>         long startTime = System.currentTimeMillis();
>>>         try {
>>>            SocketAddress serverAddress = new
>>> InetSocketAddress("localhost", 9090);
>>>            SocketChannel socketChannel = SocketChannel.open();
>>>            Socket socket = socketChannel.socket();
>>>            socket.connect(serverAddress, 5000);
>>>            socket.setSoTimeout(5000);
>>>            BufferedInputStream socketInputStream = new
>>> BufferedInputStream(socket.getInputStream(), socket.getReceiveBufferSize());
>>>            BufferedOutputStream socketOutputStream = new
>>> BufferedOutputStream(socket.getOutputStream(), socket.getSendBufferSize());
>>>            PrintWriter out = new PrintWriter(socketOutputStream);
>>>            out.println("Hello");
>>>            out.flush();
>>>            BufferedReader in = new BufferedReader(new
>>> InputStreamReader(socketInputStream));
>>>            System.out.println(in.readLine());
>>>         } catch (Exception e) {
>>>            System.out.println("Exception occured after " +
>>> (System.currentTimeMillis() - startTime) + " ms");
>>>            e.printStackTrace();
>>>         }
>>>      }
>>> }
>>>
>> -- 
>> Bela Ban
>> Lead JGroups (http://www.jgroups.org)
>> JBoss / Red Hat
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> --
> Manik Surtani
> manik at jboss.org
> twitter.com/maniksurtani
>
> Lead, Infinispan
> http://www.infinispan.org
>
>
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev


-- 
Michal Linhard
Quality Assurance Engineer
JBoss Enterprise Datagrid

Red Hat Czech s.r.o.
Purkynova 99 612 45 Brno, Czech Republic
phone: +420 532 294 320 ext. 62320
mobile: +420 728 626 363



More information about the infinispan-dev mailing list