IBM Support

DataStage: パラレルジョブがハングしたときのスタックトレースの取得方法

Question & Answer


Question

パラレルジョブが稀にハングするときがあります。再現条件が明確でないので、事前にデバッグオプションを設定することもできません。どのようにすれば実際の業務に影響がなく、ハング時の情報を取得することができますか?

Answer

事前準備
 事前に、下記の環境変数を、アドミニストレータークライアントを使用して、プロジェクトレベルで有効になるように設定してください。設定直後に有効になり、サービスの再起動もジョブの再コンパイルも不要です。
  • APT_PM_SHOW_PIDS: ステージごとのプロセスIDをジョブログに記録します。
  • APT_DUMP_SCORE: ステージとノードの関係をジョブログに記録します。
 いずれも、ジョブの初期化時に追加情報をジョブログに記録するものです。ジョブのアルゴリズムを変更したり、ジョブ本体の実行時間に影響するものではありません。
ハング発生時
(1) ps -ef | grep osh を実行し osh のプロセス一覧を取得
$ps -ef | grep osh
dsadm    62165 62148  0 12:27 ?        00:00:00 ...
dsadm    62166 62165  2 12:27 ?        00:00:00 ...
dsadm    62167 62166 27 12:27 ?        00:00:05 ...
dsadm    62185     1  5 12:27 ?        00:00:01 ...
dsadm    62186     1  6 12:27 ?        00:00:01 ...
dsadm    62187 62186  4 12:27 ?        00:00:00 ...
dsadm    62188 62186 35 12:27 ?        00:00:07 ...
dsadm    62189 62185 33 12:27 ?        00:00:07 ...
dsadm    62196 62189  0 12:27 ?        00:00:00 ...
dsadm    62197 62189  0 12:27 ?        00:00:00 ...
dsadm    62198 62188  0 12:27 ?        00:00:00 ...
dsadm    62199 62188  0 12:27 ?        00:00:00 ...
...
(2) すべての osh プロセスに対して pstack PID を実行し、スタックトレースを取得 (Linux では pstack, AIX では procstack を実行)
$ pstack 62199
#0  0x00007f654e5ac6fd in read () from /lib64/libpthread.so.0
#1  0x00007f654f912b20 in APT_UNIX_read(int, void*, unsigned int) () from /opt/IBM/InformationServer/Server/PXEngine/lib/liborchcorex86_64.so
#2  0x00007f65433ed0d7 in APT_TSort_Merger::processSorterRequest() () from /opt/IBM/InformationServer/Server/PXEngine/lib/orchsort.so
#3  0x00007f65433f0c88 in APT_TSort_Merger::runMerger() () from /opt/IBM/InformationServer/Server/PXEngine/lib/orchsort.so
#4  0x00007f65433f13e1 in APT_TSort_Merger::forkMerger() () from /opt/IBM/InformationServer/Server/PXEngine/lib/orchsort.so
#5  0x00007f65433f1df6 in APT_TSort_Merger::APT_TSort_Merger(bool, APT_TSort_KeyComparator const&, APT_TSort_ScratchDisks*, unsigned int, bool) () from /opt/IBM/InformationServer/Server/PXEngine/lib/orchsort.so
#6  0x00007f6543400e80 in APT_TSortOperator::doInitialProcessing() () from /opt/IBM/InformationServer/Server/PXEngine/lib/orchsort.so
#7  0x00007f654ee62cb3 in APT_CombinableOperatorRep::setup() () from /opt/IBM/InformationServer/Server/PXEngine/lib/liborchx86_64.so
...
 

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSZJPZ","label":"IBM InfoSphere Information Server"},"ARM Category":[{"code":"a8m50000000L0t8AAC","label":"DataStage"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"}],"Version":"11.3.1;11.5.0;11.7.0;11.7.1","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
11 June 2020

UID

ibm16225348