免責事項:これは英文の記事「NSX is Impacted by JDK-8330017: ForkJoinPool Stops Executing Tasks Due to ctl Field Release Count (RC) Overflow」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
一部の VMware NSX バージョン(「環境」セクションを参照)は、重大な JDK バグ(JDK-8330017)の影響を受けます。このバグでは、Java ForkJoinPool がスレッドの総数を誤って制限を超えていると判定し、新しいスレッド要求がブロックされます。その結果、NSX サービスのトランザクション処理スレッドが応答しなくなります。
この問題が発生すると、以下のいずれかの症状が発生します。
NSX アップグレード JDK 事前チェックの警告 - NSX Manager の再起動が必要です
この問題は、ForkJoinPool の内部制御構造の Release Count (RC) フィールドがオーバーフローするという JDK のバグ (JDK-8330017) によって発生します。 RC値は-32768に達するまで減少し続け、その後+32767(ForkJoinPool.MAX_CAP)にオーバーフローし、スレッドプールはタスクの実行を停止します。
これは、以下のNSXサービスに影響します。
この問題は時間の経過とともに蓄積され、構成の変更(アップグレード、VM の移行)時やメモリ制限に達したときに顕在化します。
この問題は、Broadcom ダウンロードから入手可能な VMware NSX 4.2.1.4、4.2.2.0、9.0.1.0 以降で解決されています。ソフトウェアの検索やダウンロードに問題がある場合は、Broadcom 製品およびソフトウェアのダウンロード KB をご確認ください。
Broadcom では、この問題に関連する潜在的な問題を回避するため、修正リリースバージョンにアップグレードする前に、NSX Manager のローリング再起動を推奨しています。
影響を受けるバージョンを実行している環境(「環境」セクションを参照)では、予防的な月次ローリング再起動スケジュールを実施してください。
get cluster statusこのエラーによりトランスポートノード上のトンネルがダウンし、Managerのローリングリブート後もダウンしたままの場合は、トンネルを復旧するためにトランスポートノード上のサービスを再起動する必要がある場合があります。影響を受けるホストで以下のコマンドを実行してください。/etc/init.d/nsx-opsagent restart
/etc/init.d/nsx-proxy restart
注: 現在この問題が発生している場合は、影響を受けるサービスを再起動するか、影響を受ける NSX Manager ノードを再起動することで、当面の症状は解決します。ただし、NSX を(この問題が解決されたバージョンに)アップグレードしないと、時間の経過とともに問題が再発します。