Infinispan выбрасывает прерывистое исключение SocketTimeoutException во время GetOperation - PullRequest
2 голосов
/ 15 марта 2019

Крест отправлено с https://developer.jboss.org/message/988346#988346

Использование jboss / infinispan-server: 9.4.0.Final (https://hub.docker.com/r/jboss/infinispan-server) в режиме автономного сервера с репликацией, и клиенты подключаются через hotrod.

Вот из нашего файла Gradle:

infinispan_version = "9.4.0.Final"

...

'infinispan': [

"org.infinispan:infinispan-core:$infinispan_version",

"org.infinispan:infinispan-client-hotrod:$infinispan_version"

],

Вот как каждый клиентский код (java) подключается к кешу через hotrod:

ConfigurationBuilder builder = new ConfigurationBuilder();

builder.forceReturnValues(false).addServer().host("infinispan_hostname").port(11222);

BasicCacheContainer manager = new RemoteCacheManager(builder.build(), true);

BasicCache<Object, Object> ourCache = manager.getCache("OUR_CACHE");

Вот соответствующий xml:

<subsystem xmlns="urn:infinispan:server:core:9.3" default-cache-container="local">

            <cache-container name="local" default-cache="default" statistics="true">        

               <global-state/>



                <local-cache name="OUR_CACHE">

                               <expiration lifespan="-1"/>

                               <locking isolation="SERIALIZABLE" acquire-timeout="30000" concurrency-level="1000" striping="false"/>

                               <file-store relative-to="cachestore.root" path="server" max-entries="-1" purge="false" passivation="false" preload="true" fetch-state="true"/>

                               <memory>

                                     <binary size="100000000" eviction="MEMORY"/>

                               </memory>

                               </local-cache>

           </cache-container>

</subsystem>

Время от времени мы получаем следующее исключение на уровне DEBUG (скажем, каждые 30 минут), но в большинстве случаев оно работает как положено. Кажется, что он синхронно ожидает в методе ourCache.get ("key") до истечения времени ожидания 60 с.

Однако, если мы сразу повторим операцию, она будет работать правильно и ошибки не будет. Я надеялся, что кто-нибудь может помочь мне понять причину.

2019-03-06 07: 15: 47,668 ОШИБКА: ошибка произошла, когда .. "данные нашего приложения сообщение ".: java.net.SocketTimeoutException: GetOperation {OUR_CACHE, key = [B0x033E22742D663039 .. [37], flags = 0} истекло по истечении 60000 мс

org.infinispan.client.hotrod.exceptions.TransportException: java.net.SocketTimeoutException: GetOperation {OUR_CACHE, key = [B0x033E22742D663039 .. [37], flags = 0} истекло по истечении 60000 мс

в org.infinispan.client.hotrod.impl.Util.rewrap (Util.java:54) ~ [Infinispan-клиент-Hotrod-9.4.0.Final.jar: 9.4.0.Final]

в org.infinispan.client.hotrod.impl.Util.await (Util.java:27) ~ [Infinispan-клиент-Hotrod-9.4.0.Final.jar: 9.4.0.Final]

в org.infinispan.client.hotrod.impl.RemoteCacheImpl.get (RemoteCacheImpl.java:418) ~ [Infinispan-клиент-Hotrod-9.4.0.Final.jar: 9.4.0.Final]

at ... трассировка стека нашего приложения jar

at javax.servlet.http.HttpServlet.service (HttpServlet.java:661) [Сервлет-api.jar?]

на javax.servlet.http.HttpServlet.service (HttpServlet.java:742) [Сервлет-api.jar?]

в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:231) [Catalina.jar: 8.5.35]

в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) [Catalina.jar: 8.5.35]

в org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52) [-Websocket.jar кот: 8.5.35]

в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) [Catalina.jar: 8.5.35]

в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) [Catalina.jar: 8.5.35]

at ... трассировка стека нашего приложения jar

в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) [Catalina.jar: 8.5.35]

в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) [Catalina.jar: 8.5.35]

at ... трассировка стека нашего приложения jar

в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) [Catalina.jar: 8.5.35]

в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) [Catalina.jar: 8.5.35]

в org.apache.logging.log4j.web.Log4jServletFilter.doFilter (Log4jServletFilter.java:71) [Log4j-веб-2.10.0.jar: 2.10.0]

в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) [Catalina.jar: 8.5.35]

в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) [Catalina.jar: 8.5.35]

в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:198) [Catalina.jar: 8.5.35]

в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:96) [Catalina.jar: 8.5.35]

вorg.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:493) [Catalina.jar: 8.5.35]

в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:140) [Catalina.jar: 8.5.35]

в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:81) [Catalina.jar: 8.5.35]

в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:87) [Catalina.jar: 8.5.35]

в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:342) [Catalina.jar: 8.5.35]

в org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:800) [-Coyote.jar кот: 8.5.35]

в org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) [-Coyote.jar кот: 8.5.35]

в org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:806) [-Coyote.jar кот: 8.5.35]

в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1498) [-Coyote.jar кот: 8.5.35]

в org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) [-Coyote.jar кот: 8.5.35]

at java.util.concurrent.ThreadPoolExecutor.runWorker (неизвестный источник) [:?]

at java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) [:?]

в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) [-Util.jar кот: 8.5.35]

at java.lang.Thread.run (неизвестный источник) [?:?]

Причина: java.net.SocketTimeoutException: GetOperation {OUR_CACHE, key = [B0x033E22742D663039 .. [37], flags = 0} истекло по истечении 60000 мс

в org.infinispan.client.hotrod.impl.operations.HotRodOperation.run (HotRodOperation.java:172) ~ [Infinispan-клиент-Hotrod-9.4.0.Final.jar: 9.4.0.Final]

в io.netty.util.concurrent.PromiseTask $ RunnableAdapter.call (PromiseTask.java:38) ~ [Нетти-синфазный 4.1.28.Final.jar: 4.1.28.Final]

в io.netty.util.concurrent.ScheduledFutureTask.run (ScheduledFutureTask.java:127) ~ [Нетти-синфазный 4.1.28.Final.jar: 4.1.28.Final]

в io.netty.util.concurrent.AbstractEventExecutor.safeExecute (AbstractEventExecutor.java:163) ~ [Нетти-синфазный 4.1.28.Final.jar: 4.1.28.Final]

в io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks (SingleThreadEventExecutor.java:404) ~ [Нетти-синфазный 4.1.28.Final.jar: 4.1.28.Final]

на io.netty.channel.epoll.EpollEventLoop.run (EpollEventLoop.java:322) ~ [Нетти-транспортно-нативной Epoll-4.1.28.Final-линукс-x86_64.jar: 4.1.28.Final]

в io.netty.util.concurrent.SingleThreadEventExecutor $ 5.run (SingleThreadEventExecutor.java:884) ~ [Нетти-синфазный 4.1.28.Final.jar: 4.1.28.Final]

at java.util.concurrent.ThreadPoolExecutor.runWorker (Неизвестный источник) ~ [:?]

at java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) ~ [:?]

... еще 1

Надеялся, что кто-нибудь мог бы посоветовать, в чем причина и возможное исправление.

Спасибо

_Prateek

...