From ae7512023d5863b8ccc8222c27bb818472491bc8 Mon Sep 17 00:00:00 2001
From: Christophe Sovant <christophe.sovant@forgerock.com>
Date: Thu, 05 Dec 2013 22:48:08 +0000
Subject: [PATCH] If the server hangs, dump stack trace of the server process before kill it

---
 opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml |   27 ++++++++++++++++++++++++---
 1 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml b/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
index 4879b04..dc9156c 100755
--- a/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
+++ b/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
@@ -2187,7 +2187,7 @@
         pidPath = '%s/logs/server.pid' % dsPath
         _args = '%s' % pidPath
       </script>
-
+      
       <call function="'runSTAFCommand'">
         { 'name'      :  'Read server pid file',
           'location'  :  location,
@@ -2196,14 +2196,35 @@
           'arguments' :  _args
         }
       </call>
+                   
+      <script>
+          pidSTAXResult = STAXResult
+          pid = STAXResult[:-1]
+      
+          cmd = '%s/bin/jstack' % JAVA_HOME
+          env = ['JAVA_HOME=%s' % JAVA_HOME]
+          cmdOptions = '-l %s' % pid
+          
+          outputPath = '%s/..' % (dsPath)
+      </script>
+      
+      <call function="'runCommand'" >
+        { 
+        'name'       : 'Run jstack' ,
+        'command'    : cmd ,
+        'arguments'  : cmdOptions ,
+        'location'   : location ,
+        'outputFile' : '%s/jstack.txt' % outputPath ,
+        'envCmd'     : env
+        }
+      </call>
                                 
       <script>
         if is_windows_platform(location):
           _cmd = 'tskill'
-          _args = STAXResult
+          _args = pidSTAXResult
         else:
           _cmd = '/bin/kill'
-          pid = STAXResult[:-1]
           _args = '-9 %s' % pid
       </script>
       <if expr="os.path.exists(os.path.join(dsPath,'lib','emma.jar')) == False">

--
Gitblit v1.10.0