-
Bug
-
Resolution: Done
-
Major
-
4.1.0.BETA2
-
None
When shutting down Hot Rod servers, I sometimes see exceptions like this:
Exception in thread "Thread-1" java.lang.RuntimeException: Exception encountered in shutting down the server
at org.infinispan.server.core.ShutdownHook.run(Main.scala:296)
Caused by: java.util.concurrent.ExecutionException: org.infinispan.util.concurrent.TimeoutException: Replication timeout for ip-10-196-170-80-39595
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at org.infinispan.server.core.ShutdownHook.run(Main.scala:292)
Caused by: org.infinispan.util.concurrent.TimeoutException: Replication timeout for ip-10-196-170-80-39595
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:422)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:100)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:124)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:229)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:216)
at org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:199)
at org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:192)
at org.infinispan.interceptors.ReplicationInterceptor.handleCrudMethod(ReplicationInterceptor.java:114)
at org.infinispan.interceptors.ReplicationInterceptor.visitReplaceCommand(ReplicationInterceptor.java:98)
at org.infinispan.commands.write.ReplaceCommand.acceptVisitor(ReplaceCommand.java:58)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at org.infinispan.interceptors.LockingInterceptor.visitReplaceCommand(LockingInterceptor.java:232)
at org.infinispan.commands.write.ReplaceCommand.acceptVisitor(ReplaceCommand.java:58)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132)
at org.infinispan.commands.AbstractVisitor.visitReplaceCommand(AbstractVisitor.java:65)
at org.infinispan.commands.write.ReplaceCommand.acceptVisitor(ReplaceCommand.java:58)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:183)
at org.infinispan.interceptors.TxInterceptor.visitReplaceCommand(TxInterceptor.java:142)
at org.infinispan.commands.write.ReplaceCommand.acceptVisitor(ReplaceCommand.java:58)
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:58)
at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:39)
at org.infinispan.commands.AbstractVisitor.visitReplaceCommand(AbstractVisitor.java:65)
at org.infinispan.commands.write.ReplaceCommand.acceptVisitor(ReplaceCommand.java:58)
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:271)
at org.infinispan.CacheDelegate.replace(CacheDelegate.java:438)
at org.infinispan.CacheSupport.replace(CacheSupport.java:96)
at org.infinispan.server.hotrod.HotRodServer.removeSelfFromTopologyView(HotRodServer.scala:116)
at org.infinispan.server.hotrod.HotRodServer.stop(HotRodServer.scala:103)
at org.infinispan.server.core.ShutdownHook$$anon$4.call(Main.scala:286)
at org.infinispan.server.core.ShutdownHook$$anon$4.call(Main.scala:284)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Try to find out what's causing it.
One alternative might be to log them silently cos if the view cannot be updated when the server is stopped, the crashed member detector will discover in next view that the server has crashed and will remove it then.