grpc-default-executor is grpc's default channel executor, it's used for 
running connection management tasks.
grpc-default-worker-ELG is a netty server's eventloop that grpc chooses as 
default. Epoll.wait could be hearbeat, if it happens two hours after 
connection established.

On Thursday, July 4, 2019 at 1:29:19 PM UTC-7, [email protected] wrote:
>
> Hi.
>
> I have a service (webservice soap) sending rpc to a grpc server).
>
> When I look at the thread dump I see thread names like this : 
> "grpc-default-worker-ELG-13-7"
>
> or "grpc-default-executor-1"... 
>
> What are these threads ?? 
>
> example of stack : 
>
> ```
> "grpc-default-executor-1" #972 daemon prio=5 os_prio=0 cpu=3938.33ms 
> elapsed=306.27s tid=0x00007f410804a800 nid=0x431 waiting on condition 
>  [0x00007f4049fde000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
>         - parking to wait for  <0x00000000ea55fba0> (a 
> java.util.concurrent.SynchronousQueue$TransferStack)
>         at 
> java.util.concurrent.locks.LockSupport.parkNanos([email protected]/LockSupport.java:234)
>         at 
> java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill([email protected]/SynchronousQueue.java:462)
>         at 
> java.util.concurrent.SynchronousQueue$TransferStack.transfer([email protected]/SynchronousQueue.java:361)
>         at 
> java.util.concurrent.SynchronousQueue.poll([email protected]/SynchronousQueue.java:937)
>         at 
> java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1053)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1114)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
>         at java.lang.Thread.run([email protected]/Thread.java:834)
> ```
>
> or 
>
> ```
> "grpc-default-worker-ELG-13-1" #940 daemon prio=5 os_prio=0 cpu=3135.01ms 
> elapsed=345.67s tid=0x00007f40c0039800 nid=0x411 runnable 
>  [0x00007f4046cad000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.EPoll.wait([email protected]/Native Method)
>         at 
> sun.nio.ch.EPollSelectorImpl.doSelect([email protected]/EPollSelectorImpl.java:120)
>         at 
> sun.nio.ch.SelectorImpl.lockAndDoSelect([email protected]/SelectorImpl.java:124)
>         - locked <0x00000000ea568db0> (a 
> io.netty.channel.nio.SelectedSelectionKeySet)
> ```
>
> Epoll.wait ??? poll the grpcserver ? heartbeat ?
>
>
> calls to the service itself are done by http thread like 
> "http-nio-8080-exec-206"..On the other hand this one sounds logic because 
> calls to the service are done synchronously. Thanks !
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/65dbe9ab-add3-4907-ba2c-71cc396b7734%40googlegroups.com.

Reply via email to