[ 
https://issues.apache.org/jira/browse/YARN-11823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17966295#comment-17966295
 ] 

ASF GitHub Bot commented on YARN-11823:
---------------------------------------

Hean-Chhinling commented on code in PR #7726:
URL: https://github.com/apache/hadoop/pull/7726#discussion_r2143450213


##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NMWebServices.java:
##########
@@ -271,6 +273,35 @@ public ContainerInfo 
getNodeContainer(@javax.ws.rs.core.Context
 
   }
 
+  @GET
+  @Path("/jstack")

Review Comment:
   Stack and JStack are totally different from each other. JStack is used on 
current running Java process to see what each thread are actually doing while 
Stack is just a list of active methods that have been called.
   
   Here is an example of JStack:
   
   ```
   2025-05-06 14:43:45
   Full thread dump OpenJDK 64-Bit Server VM (25.232-b09 mixed mode):
   
   "Attach Listener" #36 daemon prio=9 os_prio=0 tid=0x00007f8cf6288800 
nid=0x5601e waiting on condition [0x0000000000000000]
      java.lang.Thread.State: RUNNABLE
   
      Locked ownable synchronizers:
        - None
   
   "shuffle-client-4-1" #35 daemon prio=5 os_prio=0 tid=0x00007f8cd86e6800 
nid=0x55f04 runnable [0x00007f8ccfc0e000]
      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 <0x00000000c1402a30> (a 
io.netty.channel.nio.SelectedSelectionKeySet)
        - locked <0x00000000c1402a48> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000000c14029e8> (a sun.nio.ch.EPollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
        at 
   ```
   
   
   Here is an example Stack:
   
   
   ```
   Process Thread Dump: 
   263 active threads
   Thread 5938 (qtp2085713965-5938):
     State: RUNNABLE
     Blocked count: 2
     Waited count: 6
     Stack:
       sun.management.ThreadImpl.getThreadInfo1(Native Method)
       sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:178)
       sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:139)
       
org.apache.hadoop.util.ReflectionUtils.printThreadInfo(ReflectionUtils.java:169)
       
org.apache.hadoop.http.HttpServer2$StackServlet.doGet(HttpServer2.java:1563)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
       org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
       
org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)
       
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)
       
com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:941)
       
com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:875)
       
org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWebAppFilter.doFilter(RMWebAppFilter.java:178)
       
com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:829)
       
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
       
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119)
       com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133)
       com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130)
       com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203)
       com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130)
   Thread 5937 (qtp2085713965-5937):
   ```
   
   
   





> New JStack endpoint for running containers and nodes
> ----------------------------------------------------
>
>                 Key: YARN-11823
>                 URL: https://issues.apache.org/jira/browse/YARN-11823
>             Project: Hadoop YARN
>          Issue Type: New Feature
>          Components: yarn
>            Reporter: chhinlinghean
>            Assignee: chhinlinghean
>            Priority: Major
>              Labels: pull-request-available
>
> Getting jstack for container is not trivial to most people. This new endpoint 
> aims to streamline the process of getting jstack of running containers and 
> nodes. It mainly use in the DiagnosticCollector script.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to