[
https://issues.apache.org/jira/browse/CASSANDRA-11713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15348955#comment-15348955
]
Paulo Motta commented on CASSANDRA-11713:
-----------------------------------------
Attaching new patch encapsulating thread dumping capability in {{ThreadDumper}}
class, which registers itself as a {{org.apache.cassandra.utils.ThreadDumper}}
mbean and logs a warn in case it's not able to register the MBean.
Also added a new parameter {{enableThreadDumping}} to {{SEPExecutor}} that is
only enabled by {{RequestThreadPoolExecutor}}. When this parameter is set, a
{{ThreadDumper}} is instantiated and {{ThreadDumper.maybeLogThreadDump}} is
called when there are blocked requests.
Tested patch with jvisualvm (screenshot attached) and checked that it only logs
thread dump once and unsets the flag.
Patch and CI tests below:
||trunk||
|[branch|https://github.com/apache/cassandra/compare/trunk...pauloricardomg:trunk-11713]|
|[testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-trunk-11713-testall/lastCompletedBuild/testReport/]|
|[dtest|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-trunk-11713-dtest/lastCompletedBuild/testReport/]|
> Add ability to log thread dump when NTR pool is blocked
> -------------------------------------------------------
>
> Key: CASSANDRA-11713
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11713
> Project: Cassandra
> Issue Type: Improvement
> Components: Observability
> Reporter: Paulo Motta
> Assignee: Paulo Motta
> Priority: Minor
>
> Thread dumps are very useful for troubleshooting Native-Transport-Requests
> contention issues like CASSANDRA-11363 and CASSANDRA-11529.
> While they could be generated externally with {{jstack}}, sometimes the
> conditions are transient and it's hard to catch the exact moment when they
> happen, so it could be useful to generate and log them upon user request when
> certain internal condition happens.
> I propose adding a {{logThreadDumpOnNextContention}} flag to {{SEPExecutor}}
> that when enabled via JMX generates and logs a single thread dump on the
> system log when the thread pool queue is full.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)