simopopov
simopopov

Reputation: 852

hornetq fails when we change system time

I have an issue and I hope you can help me a bit. I have to implement fast forwarding time, because I need to test something. I've wrote a python script which increment the system time with 5 seconds for every 1 real second. (5 times faster). Then my jboss fails with some hornetq timeouts. Do you have any ideas how I can fix this?

03/09/18 09:18:00,107 WARN  
[org.hornetq.core.protocol.core.impl.RemotingConnectionImpl] (hornetq- 
failure-check-thread) Connection failure has been detected: Did not 
receive data from invm:0. It is likely the client has exited or crashed 
without closing its connection, or the network between the server and 
client has failed. You also might have configured connection-ttl and 
client-failure-check-period incorrectly. Please check user manual for 
more information. The connection will now be closed. [code=3]

Upvotes: 0

Views: 152

Answers (1)

Justin Bertram
Justin Bertram

Reputation: 35028

The underlying issue is that changing the time breaks the connection-failure-detection algorithm used by the broker. The broker thinks it isn't receiving "ping" packets from clients at the proper time because you're forcing time to pass at 5x the normal rate. There is no way to fix this for remote clients aside from disabling or extending the connection TTL. However, for in-vm connections you could apply the fix from https://issues.jboss.org/browse/HORNETQ-1314 (which is not resolved in the version of HornetQ you are using) to the branch of HornetQ you're currently using and rebuild. If you don't want to rebuild you could upgrade to a version of JBoss AS (or Wildfly) which contains this fix.

Upvotes: 1

Related Questions