ヘッダをスキップ   製品サポート情報      製品使用上の重要なお知らせ
 
ページタイトル

製品使用上の注意事項

製品使用上の重要な注意事項をお知らせします。
 

2016年12月22日

事例1:RHEL6うるう秒の挿入によりOSのハングアップが発生する問題
事例2:RHEL6うるう秒の挿入によりアプリケーションのCPU利用率が高騰する問題
事例3:RHEL6ntpdをslewモードで動作させている状態でも、うるう秒が挿入される問題
事例4:RHEL4うるう秒の挿入によりOSのハングアップが発生する問題
事例5:RHEL5うるう秒の挿入によりOSのハングアップが発生する問題
事例6:RHEL6うるう秒挿入時にTAIオフセットの追加が遅れる問題
事例7:RHEL6うるう秒挿入時にタイマーが意図とした時刻に動作しない問題
事例8:RHEL7ntpdをslewモードで動作させている状態でも、うるう秒が挿入される問題
事例9:RHEL7うるう秒挿入時に、タイマーが意図した時刻に動作しない問題
事例10:RHEL7chronydが動作している環境で、うるう秒の挿入時に時刻戻りが発生する問題
事例11:RHEL7うるう秒の挿入によりアプリケーションのハングアップやシステムハングアップが発生する問題について

事例1:RHEL6うるう秒の挿入によりOSのハングアップが発生する問題


[対象製品]



Red Hat Enterprise Linux 6 (x86)、Red Hat Enterprise Linux 6 (x86_64)

[現象]



Leap Indicatorの配信を実施するNTPサーバと時刻同期をしている環境において、うるう秒が挿入される24時間前から、うるう秒が挿入されるまでの間にOSがハングアップすることがあります。

[発生条件]



次の条件のすべてに該当する場合に、タイミングにより本現象が発生することがあります。

  1. kernelのバージョンが2.6.32-279.5.2.el6(RHEL6.3セキュリティアップデート)未満である。※1
  2. Leap Indicatorの配信をするNTPサーバと時刻同期をしている。※2
  3. うるう秒が挿入される24時間前から、うるう秒が挿入されるまでの間にシステムが稼働している。
  4. うるう秒が挿入される24時間前から、NTPクライアントをstepモードで動作させている。※3

※1:
2.6.32-279.5.2.el6未満であっても、2.6.32-220.25.1.el6以降のRHEL6.2 EUS(Extended Update Support)カーネルであれば本現象は発生しません。
なお、RHEL6.2 EUSカーネルを入手するためには、サポートサービス(24) for Red Hat Enterprise Linux Server 6 / Advanced Editionのご契約が必要となります。

※2:
利用しているNTPサーバが、Leap Indicatorの配信を実施するかはNTPクライアントから確認する方法はありません。そのため、Leap Indicatorの配信を実施するかはNTPサーバにて確認してください。

※3:
NTPクライアントの動作モードは次のコマンドで確認することができます。ntpdの引数に-xオプションが付いていない場合はstepモードで動作しています。

# ps auxww | grep ntpd

△(出力例)stepモードで動作している場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

△(出力例)stepモードで動作していない場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g -x


[原因]



カーネルの不具合です。
カーネルに対してうるう秒挿入を指示するadjtimexシステムコールにロック取得順序の誤りがあるため、同じロックを取得するsleepシステムコールなどのタイマー登録処理が同時に動いた場合にデッドロックが発生し、OSがハングアップすることがあります。


[回避方法]



次のどちらかの方法により、回避することができます。

  1. うるう秒挿入時刻の24時間前までに、ntpdサービスをslewモードで起動する。

    1. /etc/sysconfig/ntpdファイルのOPTION行に"-x"を追加します。

      ▲(例)
      OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -x"

    2. ntpdサービスを再起動します。

      # service ntpd restart

  2. うるう秒挿入時刻の24時間前までに、ntpdサービスを停止する。

    次の手順でうるう秒挿入の前処理(Leap Indicatorの受信)が実施されるまでに時刻同期(ntpdサービス)を停止し、うるう秒挿入が実施されるまでntpdサービスを起動しないことで回避することができます。

    1. うるう秒挿入時刻の24時間前までに、次のコマンドでntpdサービスを停止します。

      # service ntpd stop

    2. うるう秒挿入時刻を経過した後、システムの時刻が1秒未来を示しているためシステムの時刻を補正します。なお、次のコマンドはシステムの時刻を強制的に1秒戻すため、時刻戻りの影響を受けるソフトウェアを停止してから実行してください。

      # service ntpdate start

    3. ntpdサービス、および停止していたソフトウェアを起動します。ntpdサービスは次のコマンドで起動することができます。

      # service ntpd start


[対策方法]



■サポートサービス(24) for Red Hat Enterprise Linux Server 6 / Advanced Editionを契約していない場合

RHEL6.3セキュリティアップデートに含まれる次のパッケージをインストールしてください。

[注意]
弊社製サーバに対応した一部のデバイスドライバや、一部の日立オープンミドルウェア製品が次のパッケージに対応していないことがあります。次のパッケージへの対応状況などにつきましてはサポートサービス窓口までお問い合わせください。
また、対応するデバイスドライバが提供されていない弊社製サーバをご利用している場合は、回避策を適用するか、改良版メディア(RHEL6.4以降)の適用をお願いします。

[x86の場合]

kernel-2.6.32-279.5.2.el6.i686.rpm

[x86_64の場合]

kernel-2.6.32-279.5.2.el6.x86_64.rpm

修正パッケージの概要については、次を参照してください。

Errata http://rhn.redhat.com/errata/RHBA-2012-1199.html

■サポートサービス(24) for Red Hat Enterprise Linux Server 6 / Advanced Editionを契約している場合

RHEL6.2 EUSカーネルに含まれる次のパッケージをインストールしてください。

[注意]

弊社製サーバに対応した一部のデバイスドライバや、一部の日立オープンミドルウェア製品が次のパッケージに対応していないことがあります。次のパッケージへの対応状況などにつきましてはサポートサービス窓口までお問い合わせください。

[x86の場合]

kernel-2.6.32-220.25.1.el6.i686.rpm

[x86_64の場合]

kernel-2.6.32-220.25.1.el6.x86_64.rpm

修正パッケージの概要については、次を参照してください。

Errata http://rhn.redhat.com/errata/RHBA-2012-1198.html


[その他]



本不具合の詳細は、次を参照してください。

Bugzilla #836748:livelock in leapsecond insertion



↑ページトップへ

事例2:RHEL6うるう秒の挿入によりアプリケーションのCPU利用率が高騰する問題


[対象製品]



Red Hat Enterprise Linux 6 (x86)、Red Hat Enterprise Linux 6 (x86_64)

[現象]



Leap Indicatorの配信を実施するNTPサーバと時刻同期をしている環境において、うるう秒の挿入以降、タイマーが本来よりも1秒早くタイムアウトしてしまうことがあります。この影響で、1秒以内のタイムアウト値を指定するアプリケーションが動作している場合、そのアプリケーションのCPU使用率(%usr)が高騰することがあります。
Red Hat社の事例ではjavaプロセスやmysqlプロセスのCPU使用率が高騰したと報告されていますが、日立オープンミドルウェア製品にてCPU使用率が高騰した事例は報告されておりません。


[発生条件]



次の条件のすべてに該当する場合に、本現象が発生することがあります。

  1. kernelのバージョンが2.6.32-279.5.2.el6(RHEL6.3セキュリティアップデート)未満である。※1
  2. Leap Indicatorの配信をするNTPサーバと時刻同期をしている。※2
  3. うるう秒の挿入時にNTPクライアントをstepモードで動作させている。※3
  4. 1秒以内のタイムアウト値を指定してfutexシステムコールやtimerfd_settimeシステムコールを実行するアプリケーションが動作している。※4

※1:
2.6.32-279.5.2.el6未満であっても、2.6.32-220.25.1.el6以降のRHEL6.2 EUS(Extended Update Support)カーネルであれば本現象は発生しません。
なお、RHEL6.2EUSカーネルを入手するためには、サポートサービス(24) for Red Hat Enterprise Linux Server 6/Advanced Editionのご契約が必要となります。

※2:
利用しているNTPサーバが、Leap Indicatorの配信を実施するかはNTPクライアントから確認する方法はありません。そのため、Leap Indicatorの配信を実施するかはNTPサーバにて確認してください。

※3:
NTPクライアントの動作モードは次のコマンドで確認することができます。ntpdの引数に-xオプションが付いていない場合はstepモードで動作しています。

# ps auxww | grep ntpd

△(出力例)stepモードで動作している場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

△(出力例)stepモードで動作していない場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g -x

※4:
futexシステムコールについては、オペレーションを指定する引数に、FUTEX_CLOCK_REALTIME、FUTEX_LOCK_PIもしくはFUTEX_TRYLOCK_PIを指定した場合に該当します。
また、timerfd_settimeシステムコールについては、timerfd_createシステムコール実行時に、タイマーの進捗を管理するクロックとしてCLOCK_REALTIMEを指定している場合に該当します。


[原因]



カーネルの不具合です。
うるう秒の挿入処理に、タイムアウト時刻を補正する変数の値を更新しない不具合がありました。
この不具合により、うるう秒の挿入以降、タイマーが本来よりも1秒早くタイムアウトしてしまうことがあります。
この影響で、1秒以内のタイムアウト値を指定するアプリケーションが動作している場合、即時にタイムアウトをしてしまうため、そのアプリケーションのCPU使用率(%usr)が高騰することがあります。


[回避方法]



次の手順でうるう秒挿入の前処理(Leap Indicatorの受信)が実施されるまでに時刻同期(ntpdサービス)を停止し、うるう秒挿入が実施されるまでntpdサービスを起動しないことで回避することができます。

  1. うるう秒挿入時刻の24時間前までに、次のコマンドでntpdサービスを停止します。
    # service ntpd stop

  2. うるう秒挿入時刻を経過した後、システムの時刻が1秒未来を示しているためシステムの時刻を補正します。
    次のコマンドはシステムの時刻を強制的に1秒戻すため、時刻戻りの影響を受けるソフトウェアを停止してから実行してください。
    なお、次のコマンドによる時刻補正では本現象は発生しません。

    # service ntpdate start

  3. ntpdサービス、および停止していたソフトウェアを起動します。ntpdサービスは次のコマンドで起動することができます。
    # service ntpd start


[発生時の対処方法]



システムを再起動、もしくは次の手順でntpdateを実行して時刻を再設定することで現象から回復することができます。

  1. 次のコマンドでntpdサービスを停止します。

    # service ntpd stop
  2. システムの時刻をNTPサーバの時刻で補正します。次のコマンドはシステムの時刻を強制的に変更するため、時刻進み・戻りの影響を受けるソフトウェアを停止してから実行してください。

    # service ntpdate start
  3. ntpdサービス、および停止していたソフトウェアを起動します。ntpdサービスは次のコマンドで起動することができます。

    # service ntpd start

[補足]
現象が発生していることを確認するコマンドはありません。
そのため、うるう秒が挿入されてから1度もシステムを再起動していない場合は、現象が発生している可能性がありますので現象から回復させるために本手順の実施をお勧めします。


[対策方法]



■サポートサービス(24) for Red Hat Enterprise Linux Server 6/Advanced Editionを契約していない場合

RHEL6.3セキュリティアップデートに含まれる次のパッケージをインストールしてください。

[注意] 弊社製サーバに対応した一部のデバイスドライバや、一部の日立オープンミドルウェア製品が次のパッケージに対応していないことがあります。次のパッケージへの対応状況などにつきましてはサポートサービス窓口までお問い合わせください。
また、対応するデバイスドライバが提供されていない弊社製サーバをご利用している場合は、回避策を適用するか、改良版メディア(RHEL6.4以降)の適用をお願いします。

[x86の場合]

kernel-2.6.32-279.5.2.el6.i686.rpm

[x86_64の場合]

kernel-2.6.32-279.5.2.el6.x86_64.rpm

修正パッケージの概要については、次を参照してください。
Errata http://rhn.redhat.com/errata/RHBA-2012-1199.html

■サポートサービス(24) for Red Hat Enterprise Linux Server 6/Advanced Editionを契約している場合

RHEL6.2 EUSカーネルに含まれる次のパッケージをインストールしてください。

[注意]
弊社製サーバに対応した一部のデバイスドライバや、一部の日立オープンミドルウェア製品が次のパッケージに対応していないことがあります。
次のパッケージへの対応状況などにつきましてはサポートサービス窓口までお問い合わせください。

[x86の場合]

kernel-2.6.32-220.25.1.el6.i686.rpm

[x86_64の場合]

kernel-2.6.32-220.25.1.el6.x86_64.rpm

修正パッケージの概要については、次を参照してください。
Errata http://rhn.redhat.com/errata/RHBA-2012-1198.html


[その他]




本不具合の詳細は、次を参照してください。
Bugzilla #836803:RHEL6: Potential fix for leapsecond caused futex related load spike


↑ページトップへ

事例3:RHEL6ntpdをslewモードで動作させている状態でも、うるう秒が挿入される問題


[対象製品]



Red Hat Enterprise Linux 6 (x86)、Red Hat Enterprise Linux 6 (x86_64)

[現象]



ntpdをslewモードで動作させている状態でも、うるう秒が挿入されるタイミングで時刻戻りが発生することがあります。


[発生条件]



次の条件のすべてに該当する場合に、本現象が発生します。

  1. ntpのバージョンが4.2.6p5-1.el6(RHEL6.5)または4.2.6p5-2.el6_6(RHEL6.6セキュリティアップデート)である。
  2. Leap Indicatorの配信をするNTPサーバと時刻同期をしている。※1
  3. うるう秒が挿入されるタイミングでntpdをslewモードで動作させている。※2

※1:
利用しているNTPサーバが、Leap Indicatorの配信を実施するかはNTPクライアントから確認する方法はありません。そのため、Leap Indicatorの配信を実施するかはNTPサーバにて確認してください。

※2:
NTPクライアントの動作モードは次のコマンドで確認することができます。ntpdの引数に-xオプションが付いている場合はslewモードで動作しています。

# ps auxww | grep ntpd

△(出力例)slewモードで動作している場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g -x

なお、ntpdの引数に-xオプションが付いていない場合でも、/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定している場合は、本条件に該当します。

△(設定例)/etc/ntp.conf

tinker step 1


[原因]



ntpdの不具合です。
ntpdをslewモードで動作させている場合は、本来うるう秒が挿入されてもシステム時刻にうるう秒は挿入されませんが、不具合によりうるう秒が挿入されます(時刻戻りが発生します)。

[注意]
ntpdをslewモードではなく、stepモードで動作させている場合は、うるう秒が挿入された時点でシステム時刻を強制的に1秒戻し、08:59:59が2回発生します。この動作は、ntpの不具合ではありません。
うるう秒が挿入された場合、/var/log/messagesファイルに次のメッセージが出力されます。

kernel: Clock: inserting leap second 23:59:60 UTC


[回避方法]



うるう秒挿入のタイミングでntpdサービスを停止させていることにより、本現象を回避することができます。

  1. うるう秒挿入時刻以前に、次のコマンドでntpdサービスを停止します。

    # service ntpd stop

  2. うるう秒挿入時刻を経過した後、NTPサーバとのずれを補正します。なお、次のコマンドはシステム時刻を強制的に補正するため、時刻補正の影響を受けるソフトウェアを停止してから実行してください。

    # service ntpdate start

    なお、本手順を省略した場合は、ntpd起動後にslewモードで時刻を補正することになり、時刻戻りは回避できます。
    ただし、/etc/ntp.confファイルのtinker stepオプションに0以外の小さい値を設定している場合は、システム時刻のずれの状態によってはstepモードで時刻が補正されてしまい、時刻戻りが発生してしまう可能性があります。

  3. ntpdサービス、および停止していたソフトウェアを起動します。ntpdサービスは次のコマンドで起動することができます。
    # service ntpd start


[発生時の対処方法]



なし


[対策方法]



RHEL6.6セキュリティアップデートに含まれる次のパッケージ、もしくはそれ以降のバージョンのパッケージをインストールすることで対策できます。

[x86の場合]

・ntp-4.2.6p5-3.el6_6.i686.rpm
・ntpdate-4.2.6p5-3.el6_6.i686.rpm
・ntp-debuginfo-4.2.6p5-3.el6_6.i686.rpm
・ntp-doc-4.2.6p5-3.el6_6.noarch.rpm
・ntp-perl-4.2.6p5-3.el6_6.i686.rpm

[x86_64の場合]

・ntp-4.2.6p5-3.el6_6.x86_64.rpm
・ntpdate-4.2.6p5-3.el6_6.x86_64.rpm
・ntp-debuginfo-4.2.6p5-3.el6_6.x86_64.rpm
・ntp-doc-4.2.6p5-3.el6_6.noarch.rpm
・ntp-perl-4.2.6p5-3.el6_6.x86_64.rpm

[補足]
次に示すパッケージは、必要に応じてインストールしてください。

・ntp-debuginfo
・ntp-doc
・ntp-perl

修正パッケージの概要については、次を参照してください。

Errata https://rhn.redhat.com/errata/RHBA-2015-0690.html


[その他]




本不具合の詳細は、次を参照してください。
Bugzilla #1199978 ntpd -x steps clock on leap second


↑ページトップへ

事例4:RHEL4うるう秒の挿入によりOSのハングアップが発生する問題


[対象製品]



Red Hat Enterprise Linux 4 (x86)、Red Hat Enterprise Linux 4 (IPF)、Red Hat Enterprise Linux 4 (x86_64)

[現象]



Leap Indicatorの配信を実施するNTPサーバと時刻同期をしている環境において、うるう秒が挿入されるタイミングでOSがハングアップすることがあります。

[発生条件]



次の条件のすべてに該当する場合に、タイミングにより本現象が発生することがあります。

  1. kernelのバージョンが2.6.9-89.EL(RHEL4.8)未満である。
  2. Leap Indicatorの配信をするNTPサーバと時刻同期をしている。※1

※1:
利用しているNTPサーバが、Leap Indicatorの配信を実施するかはNTPクライアントから確認する方法はありません。そのため、Leap Indicatorの配信を実施するかはNTPサーバにて確認してください。


[原因]



カーネルの不具合です。
カーネルは、うるう秒挿入時に次のカーネルメッセージを出力しますが、カーネルメッセージを出力するprintk関数とカーネルのスピンロック処理であるxtime_lockとの間でデッドロックが発生し、OSがハングアップすることがあります。

kernel: Clock: inserting leap second 23:59:60 UTC


[回避方法]



次の手順でうるう秒挿入の前処理(Leap Indicatorの受信)が実施されるまでに時刻同期(ntpdサービス)を停止し、うるう秒挿入が実施されるまでntpdサービスを起動しないことで回避することができます。

  1. うるう秒挿入時刻の24時間前までに、次のコマンドでntpdサービスを停止します。

    # service ntpd stop

  2. うるう秒挿入時刻を経過した後、システムの時刻が1秒未来を示しているためシステムの時刻を補正します。なお、次のコマンドはシステムの時刻を強制的に1秒戻すため、時刻戻りの影響を受けるソフトウェアを停止してから実行してください。

    # ntpdate <NTPサーバのIPアドレス>
  3. ntpdサービス、および停止していたソフトウェアを起動します。ntpdサービスは次のコマンドで起動することができます。

    # service ntpd start


[対策方法]



RHEL4.8に含まれる次のパッケージ、もしくはそれ以降のバージョンのパッケージをインストールすることで対策できます。

[x86の場合]

kernel-2.6.9-89.EL.i686.rpm

[x86_64の場合]

kernel-2.6.9-89.EL.x86_64.rpm

[IPFの場合]

kernel-2.6.9-89.EL.ia64.rpm

修正パッケージの概要については、次を参照してください。

Errata https://rhn.redhat.com/errata/RHSA-2009-1024.html


[その他]



本不具合の詳細は、次を参照してください。

Bugzilla #479764 Leap second message can hang the kernel



↑ページトップへ

事例5:RHEL5うるう秒の挿入によりOSのハングアップが発生する問題


[対象製品]



Red Hat Enterprise Linux 5 (x86)、Red Hat Enterprise Linux 5 (IPF)、Red Hat Enterprise Linux 5 (x86_64)

[現象]



Leap Indicatorの配信を実施するNTPサーバと時刻同期をしている環境において、うるう秒が挿入されるタイミングでOSがハングアップすることがあります。

[発生条件]



次の条件のすべてに該当する場合に、タイミングにより本現象が発生することがあります。

  1. kernelのバージョンが2.6.18-164.el5(RHEL5.4)未満である。
  2. Leap Indicatorの配信をするNTPサーバと時刻同期をしている。※1
  3. うるう秒が挿入される24時間前から挿入されるまでの間に、ntpdをstepモードで動作させている。※2

※1:
利用しているNTPサーバが、Leap Indicatorの配信を実施するかはNTPクライアントから確認する方法はありません。そのため、Leap Indicatorの配信を実施するかはNTPサーバにて確認してください。

※2:
NTPクライアントの動作モードは次のコマンドで確認することができます。ntpdの引数に-xオプションが付いていない場合はstepモードで動作しています。

# ps auxww | grep ntpd

△(出力例)stepモードで動作している場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

△(出力例)stepモードで動作していない場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g -x

なお、ntpdの引数に-xオプションが付いていない場合でも、/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定している場合は、本条件に該当しません。

△(設定例)/etc/ntp.conf

tinker step 0

また、ntpのバージョンがntp-4.2.2p1-9.el5未満の場合は、設定にかかわらず本条件に該当します。


[原因]



カーネルの不具合です。
カーネルは、うるう秒挿入時に次のカーネルメッセージを出力しますが、カーネルメッセージを出力するprintk関数とカーネルのスピンロック処理であるxtime_lockとの間でデッドロックが発生し、OSがハングアップすることがあります。

kernel: Clock: inserting leap second 23:59:60 UTC


[回避方法]



次のどちらかの方法により、回避することができます。

  1. うるう秒挿入時刻の24時間前までに、ntpdサービスをslewモードで起動する。

    本回避策は、ntpのバージョンがntp-4.2.2p1-9.el5以降の場合に有効です。
    1. /etc/sysconfig/ntpdファイルのOPTION行に"-x"を追加する、または/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定する。

      ▲(例)/etc/sysconfig/ntpd
      OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -x"

      ▲(例)/etc/ntp.conf
      tinker step 0

    2. ntpdサービスを再起動します。

      # service ntpd restart

  2. うるう秒挿入時刻の24時間前までに、ntpdサービスを停止する。

    次の手順でうるう秒挿入の前処理(Leap Indicatorの受信)が実施されるまでに時刻同期(ntpdサービス)を停止し、うるう秒挿入が実施されるまでntpdサービスを起動しないことで回避することができます。

    1. うるう秒挿入時刻の24時間前までに、次のコマンドでntpdサービスを停止します。

      # service ntpd stop

    2. うるう秒挿入時刻を経過した後、システムの時刻が1秒未来を示しているためシステムの時刻を補正します。なお、次のコマンドはシステムの時刻を強制的に1秒戻すため、時刻戻りの影響を受けるソフトウェアを停止してから実行してください。

      # ntpdate <NTPサーバのIPアドレス>

    3. ntpdサービス、および停止していたソフトウェアを起動します。ntpdサービスは次のコマンドで起動することができます。

      # service ntpd start


[対策方法]



RHEL5.4に含まれる次のパッケージ、もしくはそれ以降のバージョンのパッケージをインストールすることで対策できます。

[x86の場合]

kernel-2.6.18-164.el5.i686.rpm

[x86_64の場合]

kernel-2.6.18-164.el5.x86_64.rpm

[IPFの場合]

kernel-2.6.18-164.el5.ia64.rpm

修正パッケージの概要については、次を参照してください。

Errata https://rhn.redhat.com/errata/RHSA-2009-1243.html


[その他]



本不具合の詳細は、次を参照してください。

Bugzilla #479765 Leap second message can hang the kernel



↑ページトップへ

事例6:RHEL6うるう秒挿入時にTAIオフセットの追加が遅れる問題


[対象製品]



Red Hat Enterprise Linux 6 (x86)、Red Hat Enterprise Linux 6 (x86_64)

[現象]



TAIオフセットを利用しているアプリケーションにおいて、うるう秒挿入時にTAIオフセットの追加が遅れる問題が発生し、正確な時刻情報を取得できない場合があります。

[発生条件]



次の条件のすべてに該当する場合に、本現象が発生します。

  1. kernelのバージョンが2.6.32-504.23.4.el6(RHEL6.6セキュリティアップデート)未満である。
  2. アプリケーションでTAIオフセットを利用している。※1
  3. Leap Indicatorの配信をするNTPサーバと時刻同期をしている。※2
  4. うるう秒が挿入される24時間前から挿入されるまでの間に、ntpdをstepモードで動作させている。※3

※1:
TAIオフセットとは、adjtimex()で得られるtimex構造体のtaiフィールドの情報であり、TAI(国際原子時)からの時刻差を示し、うるう秒が挿入されるタイミングで1秒追加されます。

※2:
利用しているNTPサーバが、Leap Indicatorの配信を実施するかはNTPクライアントから確認する方法はありません。そのため、Leap Indicatorの配信を実施するかはNTPサーバにて確認してください。

※3:
NTPクライアントの動作モードは次のコマンドで確認することができます。ntpdの引数に-xオプションが付いていない場合はstepモードで動作しています。

# ps auxww | grep ntpd

△(出力例)stepモードで動作している場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

△(出力例)stepモードで動作していない場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g -x

なお、ntpdの引数に-xオプションが付いていない場合でも、/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定している場合は、本条件に該当しません。

△(設定例)/etc/ntp.conf

tinker step 0


[原因]



カーネルの不具合です。
ntpdをstepモードで動作させている場合は、うるう秒が挿入された時点でシステム時刻を強制的に1秒戻し、08:59:59が2回発生します。本来、2回目の08:59:59が発生したタイミングでTAIオフセットが1秒追加されなければなりませんが、不具合によりその1秒後の09:00:00のタイミングで追加されてしまう問題が発生します。


[回避方法]



次のどちらかの方法により、回避することができます。

  1. うるう秒挿入時刻の24時間前までに、ntpdサービスをslewモードで起動する。
    1. /etc/sysconfig/ntpdファイルのOPTION行に"-x"を追加する、または/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定する。

      ▲(例)/etc/sysconfig/ntpd
      OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -x"

      ▲(例)/etc/ntp.conf
      tinker step 0

    2. ntpdサービスを再起動します。

      # service ntpd restart

  2. うるう秒挿入時刻までに、ntpdサービスを停止する。

    次の手順でうるう秒挿入のタイミングでntpdサービスを停止させていることにより、本現象を回避することができます。

    1. うるう秒挿入時刻までに、次のコマンドでntpdサービスを停止します。

      # service ntpd stop

    2. 次のコマンドを実行します。

      # ntptime -s 0

    3. うるう秒挿入時刻を経過した後、NTPサーバとのずれを補正します。なお、次のコマンドはシステム時刻を強制的に補正するため、時刻補正の影響を受けるソフトウェアを停止してから実行してください。

      # service ntpdate start

    4. ntpdサービス、および停止していたソフトウェアを起動します。ntpdサービスは次のコマンドで起動することができます。

      # service ntpd start


[対策方法]



RHEL6.6セキュリティアップデートに含まれる次のパッケージをインストールしてください。

[注意]
弊社製サーバに対応した一部のデバイスドライバや、一部の日立オープンミドルウェア製品が次のパッケージに対応していないことがあります。次のパッケージへの対応状況などにつきましてはサポートサービス窓口までお問い合わせください。また、対応するデバイスドライバが提供されていない弊社製サーバをご利用している場合は、回避策を適用ください。

[x86の場合]
・kernel-2.6.32-504.23.4.el6.i686.rpm

[x86_64の場合]
・kernel-2.6.32-504.23.4.el6.x86_64.rpm

修正パッケージの概要については、次を参照してください。

Errata https://rhn.redhat.com/errata/RHSA-2015-1081.html


[その他]



本不具合の詳細は、次を参照してください。

Bugzilla 該当する記載なし



↑ページトップへ

事例7:RHEL6うるう秒挿入時に、タイマーが意図とした時刻に動作しない問題


[対象製品]



Red Hat Enterprise Linux 6 (x86)、Red Hat Enterprise Linux 6 (x86_64)

[現象]



タイマーを設定した時刻にうるう秒が挿入されたとき、意図した動作とならないことがあります。それにより、アプリケーションが時刻とおりに動作しない場合があります。

[発生条件]



次の条件のすべてに該当する場合に、本現象が発生します。

  1. うるう秒が挿入される24時間前から挿入されるまでの間に、ntpdをstepモードで動作させている。※1
  2. Leap Indicatorの配信をするNTPサーバと時刻同期をしている。※2

※1:
NTPクライアントの動作モードは次のコマンドで確認することができます。ntpdの引数に-xオプションが付いていない場合はstepモードで動作しています。

# ps auxww | grep ntpd

△(出力例)stepモードで動作している場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

△(出力例)stepモードで動作していない場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g -x

なお、ntpdの引数に-xオプションが付いていない場合でも、/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定している場合は、本条件に該当しません。

△(設定例)/etc/ntp.conf

tinker step 0

※2:
利用しているNTPサーバが、Leap Indicatorの配信を実施するかはNTPクライアントから確認する方法はありません。そのため、Leap Indicatorの配信を実施するかはNTPサーバにて確認してください。


[原因]



うるう秒が挿入されることで、カーネルのタイマーが意図しない時刻に動作するカーネルの不具合です。

(例)
08:59:58.0
08:59:59.0
08:59:59.0 <- うるう秒が挿入されたことで意図しない時刻にアプリケーションが動作
09:00:00.0 <- タイマーを設定した時刻


[回避方法]



次のいずれかの方法により、回避することができます。

  1. うるう秒挿入時刻の24時間前までに、ntpdサービスをslewモードで起動する。
    1. /etc/sysconfig/ntpdファイルのOPTION行に"-x"を追加する、または/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定する。

      ▲(例)/etc/sysconfig/ntpd
      OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -x"

      ▲(例)/etc/ntp.conf
      tinker step 0

    2. ntpdサービスを再起動します。

      # service ntpd restart

      [注意]
      ntpのバージョンが4.2.6p5-1.el6(RHEL6.5)または、4.2.6p5-2.el6_6(RHEL6.6セキュリティアップデート)の場合
      ntpdをslewモードで動作させている状態でも、うるう秒が挿入されるタイミングで時刻戻りが発生することがあります。
      対策は、★事例3★を参照してください。
  2. うるう秒挿入時刻までに、ntpdサービスを停止する。

    次の手順でうるう秒挿入のタイミングでntpdサービスを停止させていることにより、本現象を回避することができます。

    1. うるう秒挿入時刻までに、次のコマンドでntpdサービスを停止します。

      # service ntpd stop

    2. 次のコマンドを実行します。

      # ntptime -s 0

    3. うるう秒挿入時刻を経過した後、NTPサーバとのずれを補正します。なお、次のコマンドはシステム時刻を強制的に補正するため、時刻補正の影響を受けるソフトウェアを停止してから実行してください。

      # service ntpdate start

    4. ntpdサービス、および停止していたソフトウェアを起動します。ntpdサービスは次のコマンドで起動することができます。

      # service ntpd start


[対策方法]



なし。


[その他]



本不具合の詳細は、次を参照してください。

Bugzilla 該当する記載なし



↑ページトップへ

事例8:RHEL7ntpdをslewモードで動作させている状態でも、うるう秒が挿入される問題


[対象製品]



Red Hat Enterprise Linux 7 (x86_64)

[現象]



ntpdをslewモードで動作させている場合は、本来うるう秒が挿入されても時刻戻りが発生することはありませんが、ntpdをslewモードで動作させている状態でも、うるう秒が挿入されるタイミングで時刻戻りが発生することがあります。

[発生条件]



次の条件のすべてに該当する場合に、本現象が発生します。

  1. ntpのバージョンが4.2.6p5-19.el7_1.1未満である。
  2. Leap Indicatorを配信するNTPサーバと時刻同期をしている。※1
  3. うるう秒が挿入されるタイミングでntpdをslewモードで動作させている。※2

※1:
利用しているNTPサーバがLeap Indicatorを配信するかについては、NTPサーバ側で確認する必要があります。NTPクライアントでは確認できません。

※2:
NTPクライアントの動作モードは次のコマンドで確認することができます。
ntpdの引数に-xオプションが付いている場合はslewモードで動作しています。

# ps auxww | grep ntpd

(出力例)slewモードで動作している場合


ntp 5374 0.0 0.1 25144 1896 ? Ss 02:14 0:00 /usr/sbin/ntpd -u ntp:ntp -g -x
なお、ntpdの引数に-xオプションが付いていない場合でも、/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定している場合は、本条件に該当します。

(設定例)/etc/ntp.conf

tinker step 1


[原因]



ntpdの不具合です。ntpdをslewモードで動作させている場合は、本来うるう秒が挿入されてもシステム時刻にうるう秒は挿入されませんが、不具合によりうるう秒が挿入されます(時刻戻りが発生します)。

[注意]
ntpdをslewモードではなく、stepモードで動作させている場合は、うるう秒が挿入された時点でシステム時刻を強制的に1秒戻し、08:59:59が2回発生します。
この動作は、ntpの不具合ではありません。うるう秒が挿入された場合、/var/log/messagesファイルに次のメッセージが出力されます。

kernel: Clock: inserting leap second 23:59:60 UTC


[対策方法]



RHEL7.1セキュリティアップデートに含まれる次のパッケージ、もしくはそれ以降のバージョンのパッケージをインストールすることで対策できます。

・ntp-4.2.6p5-19.el7_1.1.x86_64.rpm
・ntpdate-4.2.6p5-19.el7_1.1.x86_64.rpm
・ntp-debuginfo-4.2.6p5-19.el7_1.1.x86_64.rpm
・ntp-doc-4.2.6p5-19.el7_1.1.noarch.rpm
・ntp-perl-4.2.6p5-19.el7_1.1.x86_64.rpm

[補足]
次に示すパッケージは、必要に応じてインストールしてください。
・ntp-debuginfo
・ntp-doc
・ntp-perl

修正パッケージの概要については、次を参照してください。

Errata https://rhn.redhat.com/errata/RHBA-2015-1159.html


[回避方法]



うるう秒挿入のタイミングでntpdサービスを停止させていることにより、本現象を回避することができます。

  1. うるう秒挿入時刻までに、次のコマンドでntpdサービスを停止します。

    # systemctl stop ntpd

  2. NTPサーバとのずれを補正するために"-g -q"オプションを設定します。
    /etc/sysconfig/ntpdファイルのOPTIONSに"-g -q"が記載されていれば、ntpd起動時にNTPサーバとのずれを補正します。

    # vi /etc/sysconfig/ntpd

    (表示例)

    slewモードを設定済みの想定で例を記載しています。
    # Command line options for ntpd
    OPTIONS="-g -x -q"
  3. うるう秒挿入時刻を経過した後、ntpdサービスを起動します。
    ntpdサービスは次のコマンドで起動することができます。
    なお、次のコマンドはシステム時刻を強制的に補正するため、時刻補正の影響を受けるソフトウェアを停止してから実行してください。

    # systemctl start ntpd
  4. "-q"オプションの設定を削除します。
    /etc/sysconfig/ntpdファイルのOPTIONSから"-q"の設定を削除してください。

    # vi /etc/sysconfig/ntpd

    (表示例)

    # Command line options for ntpd
    OPTIONS="-g -x"

  5. ntpdサービスを起動します。

    # systemctl start ntpd
  6. ntpdサービスが起動したか確認します。
    次のコマンドを実行して「active」と出力されることを確認してください。

    # systemctl status ntpd

    (表示例)

    ntpd.service - Network Time Service
    Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled)
    Active: active (running) since 水 2015-07-01 10:25:38 JST; 1h 33min left
       :
  7. 回避策の手順3で停止していたソフトウェアを起動してください。


[その他]



本不具合の詳細は、次を参照してください。

Bugzilla 該当する記載なし



↑ページトップへ

事例9:RHEL7うるう秒挿入時に、タイマーが意図した時刻に動作しない問題


[対象製品]



Red Hat Enterprise Linux 7 (x86_64)

[現象]



タイマーを設定した時刻にうるう秒が挿入されたとき、意図した動作とならないことがあります。
それにより、アプリケーションが時刻どおりに動作しない場合があります。

[発生条件]



次の条件のすべてに該当する場合に、本現象が発生します。

  1. kernelのバージョンが3.10.0-327.el7(RHEL7.2)未満である。
  2. Leap Indicatorを配信するNTPサーバと時刻同期をしている。※1
  3. うるう秒が挿入される24時間前から挿入されるまでの間に、ntpdをstepモードで動作させている。※2

※1:
利用しているNTPサーバがLeap Indicatorを配信するかについては、NTPサーバ側で確認する必要があります。NTPクライアントでは確認できません。

※2:
NTPクライアントの動作モードは次のコマンドで確認することができます。
ntpdの引数に-xオプションが付いていない場合はstepモードで動作しています。

# ps auxww | grep ntpd

(出力例)stepモードで動作している場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

(出力例)stepモードで動作していない場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g -x

なお、ntpdの引数に-xオプションが付いていない場合でも、/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定している場合は、本条件に該当しません。

(設定例)/etc/ntp.conf

tinker step 0


[原因]



カーネルの不具合が原因です。カーネルが、うるう秒追加のタイミングに時刻を補正します。

(例)

08:59:58.0
08:59:59.0
08:59:59.0 ← うるう秒が挿入されたことで意図しない時刻にアプリケーションが動作
09:00:00.0 ← タイマーを設定した時刻


[対策方法]



RHEL7.2に含まれる次のパッケージ、もしくはそれ以降のバージョンのパッケージをインストールすることで対策できます。

kernel-3.10.0-327.el7.x86_64.rpm

修正パッケージの概要については、次を参照してください。

Errata https://rhn.redhat.com/errata/RHSA-2015-2152.html


[回避方法]



次のどちらかの方法により、回避することができます。

◆うるう秒挿入時刻の24時間前までに、ntpdサービスをslewモードで起動する。

  1. /etc/sysconfig/ntpdファイルのOPTION行に"-x"を追加します。
    または/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定します。

    (例)/etc/sysconfig/ntpd

    OPTIONS="-g -x"

    (例)/etc/ntp.conf

    tinker step 0

  2. ntpdサービスを再起動します。

    # systemctl restart ntpd

    [注意]
    ntpのバージョンが4.2.6p5-19.el7_1.1未満の場合ntpdをslewモードで動作させている状態でも、うるう秒が挿入されるタイミングで時刻戻りが発生することがあります。
    対策は、事例8を参照してください。

◆うるう秒挿入時刻までに、ntpdサービスを停止する。
次の手順でうるう秒挿入のタイミングでntpdサービスを停止させていることにより、本現象を回避することができます。

  1. うるう秒挿入時刻までに、次のコマンドでntpdサービスを停止します。

    # systemctl stop ntpd

  2. 次のコマンドを実行します。

    # ntptime -s 0

  3. NTPサーバとのずれを補正するために"-g -q"オプションを設定します。

    /etc/sysconfig/ntpdファイルのOPTIONSに"-g -q"が記載されていれば、ntpd起動時にNTPサーバとのずれを補正します

    # vi /etc/sysconfig/ntpd

    (表示例)

    # Command line options for ntpd
    OPTIONS="-g -q"

  4. うるう秒挿入時刻を経過した後、ntpdサービスを起動します。
    ntpdサービスは次のコマンドで起動することができます。
    なお、次のコマンドはシステム時刻を強制的に補正するため、時刻補正の影響を受けるソフトウェアを停止してから実行してください。

    # systemctl start ntpd

  5. "-q"オプションの設定を削除します。

    /etc/sysconfig/ntpdファイルのOPTIONSから"-q"の設定を削除してください。

    # cat /etc/sysconfig/ntpd

    (表示例)

    # Command line options for ntpd
    OPTIONS="-g"

  6. ntpdサービスを起動します。

    # systemctl start ntpd

  7. ntpdサービスが起動したか確認します。

    次のコマンドを実行して「active」と出力されることを確認してください。

    # systemctl status ntpd

    (表示例)

    ntpd.service - Network Time Service
     Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled)
     Active: active (running) since 水 2015-07-01 10:25:38 JST; 1h 33min left
       :
  8. 回避策の手順4で停止していたソフトウェアを起動してください。


[その他]



本不具合の詳細は、次を参照してください。

Bugzilla 該当する記載なし



↑ページトップへ

事例10:RHEL7chronydが動作している環境で、うるう秒の挿入時に時刻戻りが発生する問題


[対象製品]



Red Hat Enterprise Linux 7 (x86_64)

[現象]



chronyd(※1)を使用している場合に、うるう秒の挿入時に時刻戻りが発生します。

※1:chronydはntpdと同様に、NTPプロトコルを使用する時刻修正デーモンです。

[発生条件]



次の条件のすべてに該当する場合に、本現象が発生します。

  1. 次の条件のどちらかに該当する。
    1. chronydのバージョンが2.1.1-1.el7未満である。
    2. chronydの設定ファイルである/etc/chrony.confに"leapsecmode slew"の設定をしていない。※2
  2. Leap Indicatorを配信するNTPサーバと時刻同期をしている。※3

※2:
"leapsecmode slew"の設定は、うるう秒が挿入された際にその誤差をslewモードで補正するためのものです。
本設定がない場合には、うるう秒が挿入された際に時刻戻りが発生します。
なお、確認方法は次のコマンドを実行してください。

# grep leapsecmode /etc/chrony.conf

(実行例)

leapsecmode slew

この設定は、chronydを起動した後に設定しても有効になりません。
なお、chronydの時刻補正を調整するオプションとして"makestep"がありますが、このオプションはうるう秒が挿入された際に発生する時刻戻りには効果がありません。

[補足]
"leapsecmode slew"は、2.1.1-1.el7以降のバージョンで追加された機能です。
そのため、2.1.1-1.el7未満のバージョンでは設定することができません。

※3:
利用しているNTPサーバがLeap Indicatorを配信するかについては、NTPサーバ側で確認する必要があります。NTPクライアントでは確認できません。


[原因]



chronydの不具合が原因です。


[対策方法]



次の手順を実施してください。

  1. RHEL7.2に含まれる次のパッケージ、もしくはそれ以降のバージョンのパッケージをインストールします。

    chrony-2.1.1-1.el7.x86_64.rpm

    修正パッケージの概要については、次を参照してください。

    Errata https://rhn.redhat.com/errata/RHSA-2015-2241.html

  2. パッケージをインストール後、/etc/chrony.confに"leapsecmode slew"を追記します。

    (実行例)

    # vi /etc/chrony.conf
     'nbsp;:
    logdir /var/log/chrony
    #log measurements statistics tracking
    leapsecmode slew

  3. chronydを再起動します。

    # systemctl restart chronyd

  4. chronydが起動したことを確認してください。

    次のコマンドを実行して、出力結果に「active」と出力されることを確認してください。

    # systemctl status chronyd

    (表示例)
      :
    Active: active (running) since 金 2015-07-03 18:02:25 JST; 1s ago
      :


[回避方法]



うるう秒挿入時刻までにchronydを停止することにより、本現象を回避することができます。

  1. うるう秒挿入時刻までに、次のコマンドでchronydを停止します。

  2. # systemctl stop chronyd

  3. うるう秒挿入時刻を経過した後、chronydを起動します。
    なお、次のコマンドはシステム時刻を強制的に補正する可能性があるため、時刻補正の影響を受けるソフトウェアを停止してから実行してください。

    # systemctl start chronyd

  4. NTPサーバとのずれを補正するために次のコマンドを実行します。

    # chronyc -a makestep 0.01 1
    # chronyc -a burst 1/2

  5. 時刻が補正されたことを確認します。

    次のコマンドを実行して、出力結果に「System clock was stepped by XXXXX seconds」と出力されることを確認してください。
    すぐには出力されない可能性があります。出力されていない場合は数分待ってから再度確認してください。

    # systemctl status chronyd

    (表示例)

    chronyd.service - NTP client/server
       Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
       Active: active (running) since 月 2015-06-29 08:59:16 JST; 7min ago
      Process: 5013 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
      Process: 5010 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
     Main PID: 5012 (chronyd)
       CGroup: /system.slice/chronyd.service
               mq5012 /usr/sbin/chronyd

     6月 29 08:59:16 rhel7u1-x64 systemd[1]: Starting NTP client/server...
     6月 29 08:59:16 rhel7u1-x64 chronyd[5012]: chronyd version 2.1.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +DEBUG +ASYNCDNS +IPV6 +SECHASH)
     6月 29 08:59:16 rhel7u1-x64 chronyd[5012]: Frequency 8.549 +/- 0.341 ppm read from /var/lib/chrony/drift
     6月 29 08:59:16 rhel7u1-x64 systemd[1]: Started NTP client/server.
     6月 29 08:59:20 rhel7u1-x64 chronyd[5012]: Selected source 10.197.60.178
     6月 29 08:59:20 rhel7u1-x64 chronyd[5012]: System clock wrong by 280.929837 seconds, adjustment started
     6月 29 09:04:01 rhel7u1-x64 chronyd[5012]: System clock was stepped by 280.929837 seconds
     6月 29 09:06:32 rhel7u1-x64 chronyd[5012]: System clock wrong by 0.579818 seconds, adjustment started
     6月 29 09:06:33 rhel7u1-x64 chronyd[5012]: System clock was stepped by 0.579828 seconds


    例では、「System clock was stepped by 0.579828 seconds」と出力されており時刻補正されています。

  6. 回避策の手順2で停止していたソフトウェアを起動してください。


[その他]



本不具合の詳細は、次を参照してください。

Bugzilla 該当する記載なし



↑ページトップへ

事例11:RHEL7うるう秒の挿入によりアプリケーションのハングアップやシステムハングアップが発生する問題について


[対象製品]



Red Hat Enterprise Linux 7 (x86_64)

[現象]



Leap Indicatorの配信を実施するNTPサーバと時刻同期をしている環境において、うるう秒の挿入時に時刻戻りが発生した場合に、アプリケーションのハングアップやシステムハングアップが発生することがあります。

[発生条件]



次の条件のすべてに該当していると、本現象が発生することがあります。

  1. kernelのバージョンが3.10.0-514.2.2.el7(RHEL7.3)未満である。
  2. Leap Indicatorを配信するNTPサーバと時刻同期をしている。
  3. 次の条件のどちらかに該当する。
    1. うるう秒が挿入される24時間前から挿入されるまでの間に、ntpdをstepモードで動作させている。
    2. chronydを動作させていて、chronydの設定ファイルである/etc/chrony.confに"leapsecmode slew"の設定をしていない。

○条件2について
利用しているNTPサーバがLeap Indicatorを配信するかについては、NTPサーバ側で確認する必要があります。NTPクライアントでは確認できません。

○条件aについて
NTPクライアントの動作モードは次のコマンドで確認することができます。
ntpdの引数に-xオプションが付いていない場合はstepモードで動作しています。

# ps auxww | grep ntpd
(出力例)stepモードで動作している場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

(出力例)stepモードで動作していない場合

ntp 7001 0.0 0.0 34452 1760 ? Ss Mar04 0:06 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g -x

なお、ntpdの引数に-xオプションが付いていない場合でも、/etc/ntp.confファイルのtinker stepオプションに0.5より大きい値、または0を設定している場合は、本条件に該当しません。

(設定例)/etc/ntp.conf

tinker step 0

○条件bについて
"leapsecmode slew"の設定は、うるう秒が挿入された際にその誤差をslewモードで補正するためのものです。
本設定がない場合には、うるう秒が挿入された際に時刻戻りが発生します。
なお、確認方法は次のコマンドを実行してください。
# grep leapsecmode /etc/chrony.conf
(実行例)
leapsecmode slew

この設定は、chronydを起動した後に設定しても有効になりません。
なお、chronydの時刻補正を調整するオプションとして"makestep"がありますが、このオプションはうるう秒が挿入された際に発生する時刻戻りには効果がありません。

[補足]
"leapsecmode slew"は、2.1.1-1.el7以降のバージョンで追加された機能です。
そのため、2.1.1-1.el7未満のバージョンでは設定することができません。


[原因]



カーネルの不具合が原因です。
時刻の更新処理と反映処理の順序に問題があり、うるう秒の挿入による時刻戻りと反映処理が重なってしまうと、正しく時刻が更新されず不正な値となることがあります。
その結果、時刻を利用するhrtimerタイマが正しく期限をセットできず無限ループに陥り、hrtimerを利用していたアプリケーションやカーネルのハングアップが発生します。

[補足]
hrtimerは、一定時間経過後にソフトウェア割り込みの延長でコールバック処理を起床させる、カーネル内部のタイマー処理を担う機能です。


[対策方法]



[注意]
弊社製サーバに対応したデバイスドライバは、うるう秒が挿入される2017/01/01 までにリリースされる予定はありません。
このため、回避策の適用をお願いします。
次のパッケージへの対応予定などにつきましてはサポートサービス窓口までお問い合わせください。


◆サポートサービス(24) for Red Hat Enterprise Linux Server 7 /Advanced Editionを契約していない場合

RHEL7.3に含まれる次のパッケージ、もしくはそれ以降のバージョンのパッケージをインストールすることで対策できます。

kernel-3.10.0-514.2.2.el7.x86_64.rpm

修正パッケージの概要については、次を参照してください。

Errata https://rhn.redhat.com/errata/RHBA-2016-2862.html

◆サポートサービス(24) for Red Hat Enterprise Linux Server 7 /Advanced Editionを契約している場合

RHEL7.2に含まれる次のパッケージ、もしくはそれ以降のバージョンのパッケージをインストールすることで対策できます。

kernel-3.10.0-327.41.4.el7.x86_64.rpm

修正パッケージの概要については、次を参照してください。

Errata https://rhn.redhat.com/errata/RHBA-2016-2849.html


[回避方法]



うるう秒の挿入による時刻戻りを避けることで、事象を回避することができます。
すでに「RH7P011」または「RH7P012」の対策方法または回避策を適用いただいている場合、本事象による影響はありません。

本事象の回避策は、ntpdを動作させている場合は「RH7P011」の回避策、chronydを動作させている場合は「RH7P012」の対策方法または回避策と同一です。

◇RH7P011
http://qaweb2.itg.hitachi.co.jp/fsg_support/Registry/WS_SUT/usut/LINUX-P0224.txt

◇RH7P012
http://qaweb2.itg.hitachi.co.jp/fsg_support/Registry/WS_SUT/usut/LINUX-P0225.txt


[その他]



本不具合の詳細は、次を参照してください。

Bugzilla 該当する記載なし



↑ページトップへ


更新履歴
2016年12月22日
事例11を追加しました。
2016年11月01日
事例8を追加しました。
事例9を追加しました。
事例10を追加しました。
2015年 6月18日
事例7を追加しました。
2015年 6月11日
うるう秒起因で発生する障害事例を公開しました。
↑ページトップへ

  • 当ホームページに記載されている製品には、他社開発製品が含まれています。これらの情報については他社から提供、または公開された情報を基にしています。弊社では、情報の正確性および完全性について注意を払っていますが、開発元の状況変化に伴い、当ホームページの記載内容に変更が生じることがあります。

本ページに関する問い合わせ(サポート契約のないお客様はこちらからお問い合わせください。)