I'm using AkkaSystem in a test.
system config has enabled remoting

akka {
  actor {
    creation-timeout = 5s
  }
  remote {
    enabled-transports = ["akka.remote.netty.tcp"]
    netty.tcp {
      hostname = "localhost"
      port = 7337
    }
  }
  cluster {
    auto-join = off
  }
}


I try to shutdown system gracefully (afterAll function in ScalaTest, but it's 
irrelevant):

verride def afterAll = {
  super.afterAll
  if (startCluster) {
    val cluster = Cluster(system)
    cluster leave cluster.selfAddress
    var counter = 200
    while (cluster.isTerminated == false && counter >= 0) {
      Thread.sleep(50)
      counter = counter - 1
    }
  }
  TestKit.shutdownActorSystem(system, verifySystemShutdown = true)
}

This seems to work ok, I get messages in the log:


12:23:45.846 INFO  a.r.RemoteActorRefProvider$RemotingTerminator: Shutting down 
remote daemon.
12:23:45.847 INFO  a.r.RemoteActorRefProvider$RemotingTerminator: Remote daemon 
shut down; proceeding with flushing remote transports.
12:23:45.871 INFO  a.r.RemoteActorRefProvider$RemotingTerminator: Remoting shut 
down.


But unfortunatelly IO threads are strill running

"New I/O server boss #12" #119 prio=5 os_prio=31 tid=0x00007f8abadd5800 
nid=0xb403 runnable [0x0000000146a0e000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
        at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198)
        at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
        - locked <0x000000077e258828> (a sun.nio.ch.Util$2)
        - locked <0x000000077e258818> (a java.util.Collections$UnmodifiableSet)
        - locked <0x000000077e2586f8> (a sun.nio.ch.KQueueSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:101)
        at 
org.jboss.netty.channel.socket.nio.NioServerBoss.select(NioServerBoss.java:163)
        at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:212)
        at 
org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42)
        at 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

I can telnet 7337 port, and other threads are also running too

"sgTestLiftActors-akka.actor.default-dispatcher-19" #126 prio=5 os_prio=31 
tid=0x00007f8abad46800 nid=0xc203 waiting on condition [0x0000000147523000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x000000077d67ab48> (a 
akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinPool)
        at 
scala.concurrent.forkjoin.ForkJoinPool.idleAwaitWork(ForkJoinPool.java:2135)
        at scala.concurrent.forkjoin.ForkJoinPool.scan(ForkJoinPool.java:2067)
        at 
scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at 
scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)


It happens for both akka 2.3.12 and 2.3.13, when I run a single test using sbt 
test-only

Behavior happens only if remoting is actually started in a test. Sometimes it 
is not, and IO thread is not a problem.


-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to