vlingo / xoom-http

The VLINGO XOOM platform SDK for Reactive, scalable, high-throughput, and resilient HTTP server supporting RESTful services running on XOOM LATTICE and XOOM ACTORS.
https://vlingo.io
Mozilla Public License 2.0
52 stars 16 forks source link

SocketChannel looping infinitely while handling probe interval #58

Closed danilo-ambrosio closed 4 years ago

danilo-ambrosio commented 4 years ago

The SockeChannelSelectionProcessorActor loops infinitely while trying to perform some Rest operations on the calculator app, which is a recent implemented vlingo-xoom example running on Heroku environment.

The following thread dump was captured from Heroku's jStack when the issue occurred.

"pool-3-thread-11" #29 prio=5 os_prio=0 tid=0x00007f1e68ac3000 nid=0x6a runnable [0x00007f1e381de000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
    at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
    at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
    - locked <0x00000000fe8ac860> (a sun.nio.ch.Util$3)
    - locked <0x00000000fe8ac850> (a java.util.Collections$UnmodifiableSet)
    - locked <0x00000000fe8ac870> (a sun.nio.ch.EPollSelectorImpl)
    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
    at io.vlingo.wire.channel.SocketChannelSelectionProcessorActor.probeChannel(SocketChannelSelectionProcessorActor.java:156)
    at io.vlingo.wire.channel.SocketChannelSelectionProcessorActor.intervalSignal(SocketChannelSelectionProcessorActor.java:105)
    at io.vlingo.common.Scheduled__Proxy.lambda$intervalSignal$0(Scheduled__Proxy.java:31)
    at io.vlingo.common.Scheduled__Proxy$$Lambda$373/1199491717.accept(Unknown Source)
    at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:115)
    at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:47)
    at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:101)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

The app is using Java 8 and running on Ubuntu-based Heroku's OS.

danilo-ambrosio commented 4 years ago

Moved to the vlingo-wire project