question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Thread names on client-side : specific pool ?

See original GitHub issue

Hi.

I have a service (webservice soap) sending rpc to a GRPC-server (spring-boot-grpc-starter).

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(java.base@11.0.3/Native Method)
	- parking to wait for  <0x00000000ea55fba0> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.3/LockSupport.java:234)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(java.base@11.0.3/SynchronousQueue.java:462)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(java.base@11.0.3/SynchronousQueue.java:361)
	at java.util.concurrent.SynchronousQueue.poll(java.base@11.0.3/SynchronousQueue.java:937)
	at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.3/ThreadPoolExecutor.java:1053)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.3/ThreadPoolExecutor.java:1114)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.3/ThreadPoolExecutor.java:628)
	at java.lang.Thread.run(java.base@11.0.3/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(java.base@11.0.3/Native Method)
	at sun.nio.ch.EPollSelectorImpl.doSelect(java.base@11.0.3/EPollSelectorImpl.java:120)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@11.0.3/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.

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:7

github_iconTop GitHub Comments

0reactions
chsi13commented, Jul 4, 2019

Yes it is what I though that a special thread pool is used at client side … but I don’t know why because I see that calls on stub are made by http thread… btw calls are made synchronously … you proposed me to ask question to grpc-java project community ? Thanks for you answers

Read more comments on GitHub >

github_iconTop Results From Across the Web

Thread Pools - Ice
For configuration purposes, the names of the client and server thread pools are Ice.ThreadPool.Client and Ice.ThreadPool.Server , respectively.
Read more >
Configuring Thread Pools for Java Web Servers - Baeldung
In this tutorial, we take a look at thread pool configuration for Java web application servers such as Apache Tomcat, Glassfish Server, ...
Read more >
run threads on server side & show progress on client side ...
I want to run a thread pool on server side & want to show threads work progress on client side. Is this possible....
Read more >
Manage concurrent threads - Python Module of the Week
Each Thread instance has a name with a default value that can be changed as the thread is created. Naming threads is useful...
Read more >
Bolt thread pool configuration - Operations Manual - Neo4j
The Bolt connector is backed by a thread pool on the server side. The thread pool is constructed as part of the server...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found