3 既知の問題
この章では、Unbreakable Enterprise Kernelリリース6の既知の問題について説明します。
使用不可または利用不可のArm機能
次の機能は動作しない、テストされていない、または64ビットのArm (aarch64)プラットフォームで機能を使用できない、または使用できない原因となる問題を抱えています:
-
InfiniBand
InfiniBandハードウェアは現在、UEK R6を使用するArmアーキテクチャではサポートされていません。
-
FibreChannel
FibreChannelハードウェアは現在、UEK R6を使用したArmアーキテクチャではサポートされていません。
-
RDMA
RDMAおよびそのサブ機能は、Armアーキテクチャではサポートされていません。
-
Secure Bootおよびロックダウン
Secure Boot機能およびカーネル・ロック・ダウン機能は、Armアーキテクチャでサポートされていないか、または使用できません。
シリアル・ポート・ボー・レートが低すぎる場合は、シリアル・ポート・コンソールがクラッシュする可能性があります
ILOMコンソール・インタフェースの場合のように、物理シリアル・コンソールを使用してシステム出力をモニターするシステムでは、出力レベルが高いほど、カーネルの停止タイマー・イベントなど、プロセスがCPUスケジューラの時間を取得できないことを示すシステム動作が異常に発生する可能性があります。 これは通常、シリアル・コンソールの速度の設定が低すぎて、6以上のログ・レベルがシステムに構成されている場合に発生します。 この問題が発生する可能性を減らすには、ログ・レベルを減らすか、最大可能なbaudレート115200のコンソールを構成します。
UEK R6U1以降では、ボー・レートの設定が低すぎる場合は、dmesg出力に警告が表示されます:
dmesg | grep -A4 -i baud
[ 369.777802] Serial console is set to the default of 9600 baud. This can [ 369.778852] result in stalls or lockups in error conditions requiring a [ 369.779892] large number of console system messages. Please increase the [ 369.780889] rate to the highest your system will allow (for instance, 115200 [ 369.781918] or 57600). See Oracle KM Note 2648582.1 for more information.
実行中のOracle Linux 7またはOracle Linux 8システムの現行コンソールの速度は、次のコマンドを実行して構成済シリアル・ポートに設定できます:
stty -F /dev/ttyS0 speed 115200
システムのブート時に使用されるシリアル・コンソール速度を変更するには、GRUB構成を編集する必要があります。 テキスト・エディタで/etc/sysconfig/grub
を編集し、console= ttyS0、115200をGRUB_CMDLINE_LINUX
で始まる行に追加します。次に例を示します:
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/linux1-swap rd.lvm.lv=linux1/root \ rd.lvm.lv=linux1/swap rhgb quiet console=ttyS0,115200"
前述の例では、シリアル・コンソールはttyS0であると想定されています。代替シリアル・ポートを使用している場合は、これを変更する必要がある場合があります。
レガシーBIOSを使用している場合は、次のブートで使用されるように、変更内容でgrub構成を更新するには、次のように実行します:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
または、Unified Extensible Firmware Interface (UEFI)を使用してブートする場合は、次のコマンドを実行します:
sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Oracle Serverハードウェア、またはシリアル・コンソールへのILOMインタフェースを提供するシステムを使用している場合は、ILOMのシリアル・コンソール構成を更新して、ホスト・オペレーティング・システム内で設定した速度に一致させるようにしてください。 ILOM CLIでシリアル・ポートを設定するには、次を実行します:
sudo set /SP/serial/host pendingspeed=115200 commitpending=true
ILOMの現在のコンソール・ポート速度を確認するには、CLIを使用して次を実行します:
sudo show /SP/serial/host
ILOM構成の詳細は、https://docs.oracle.com/cd/E19203-01/820-1188-12/core_ilom_managing.htmlを参照してください。
(バグID 30487830、30439170)
SELinux表示される権限ウォッチ・メッセージ
UEK R6をSELinuxの許容モードまたは強制モードで起動すると、次のようなメッセージが生成されます:
SELinux: Permission watch in class filesystem not defined in policy. SELinux: Permission watch in class file not defined in policy. SELinux: Permission watch_mount in class file not defined in policy. SELinux: Permission watch_sb in class file not defined in policy. SELinux: the above unknown classes and permissions will be allowed
これらのメッセージは、これらのクラスに対してSELinuxポリシー内に現在定義が存在しないため表示されます。 メッセージの最終行まで、クラスおよび権限はデフォルトで許可されているため、メッセージを無視しても問題ありません。
(バグID 30687021、30687021)
MLSポリシーを使用した強制モードのSELinuxはサポートされていません
SELinuxがMultilevel Security (MLS)ポリシーを使用するように構成されていて、それが強制モードになっている場合は、ファイルシステムのマウントを試みるときにアクセス権エラーや、オペレーティング・システムのブート時にSystemdが凍結する可能性など、オペレーティング・システムの通常の機能が妨げられることがあります。
MLSポリシーで強制モードのSELinuxはサポートされていません。 ターゲット・ポリシーを使用すると、強制モードでSELinuxを引き続き使用できます。
(バグID 30797389、30609238)
広々としたxs_tcp_setup_socket: NFSの使用時にメッセージを接続
NFSを使用すると、ソケット接続エラーに関するメッセージが不正確に表示される可能性があります。 次のようなメッセージが表示される場合があります:
xs_tcp_setup_socket: connect returned unhandled error -107
基礎となる接続の問題が解決され、失敗した接続は自動的に再度開かれます。 機能的に関連する影響がない場合、このエラー・メッセージは無視されることがあります。 このメッセージは、接続上の問題が明らかになった結果としても表示される場合があります。
(バグID 30339848)
Oracle Linux 8で使用すると、mstlinkコマンドはコア・ダンプでクラッシュ
Unbreakable Enterprise Kernelリリース6を実行しているOracle Linux 8システムで実行すると、mstlinkコマンドがクラッシュします。 次の出力は一般的です:
sudo mstlink -d 13:00.1
/usr/include/c++/8/bits/stl_vector.h:932: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned int; _Alloc = std::allocator<unsigned int>; std::vector< Tp, _Alloc>::reference = unsigned int& std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed. Aborted (core dumped)
この問題は、アップストリームに導入され、Oracle Linux 8に存在するシステム全体に影響します。 mstflint
パッケージ内のアップストリーム・ツール(mstlinkを含む)は、これらのハードニング変更に対して適切に対応していません。 代替ツールを使用して、ip link, ethtool, ifstatやibv_devinfoなどのリンク情報を収集および構成できます。
(バグID 30993407)
IOMMUカーネル・オプションはデフォルトで有効になっています
UEK R5U1以降、IOMMU機能はx86_64カーネルでデフォルトで有効になっています。 この変更により、単一ルート入出力仮想化(SR-IOV)およびその他の仮想化拡張が容易になりますが、IOMMUが有効になっているときに検出を完了できない特定のハードウェアでブート障害の問題が発生することも知られています。 この機能のステータスは、iommu=on
としてレポートする/proc/cmd
には表示されなくなりました。つまり、ブートの失敗が発生した場合は、カーネルcmdline
オプションとして明示的に無効にする必要があります。 代替の回避策として、ベンダーの指示に従って、システムROM内のIOMMUまたはIntel-Vtdを無効にできます。
これらのブート障害の問題は、特定のBroadcomネットワーク・デバイス(HP Gen8サーバーなど)に対応して検出されました。 詳細は、https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04565693を参照してください。
Armプラットフォームで実行されている仮想マシンのPCIEホット・プラグ・ドライバ・エラー
Armプラットフォームで実行されている仮想マシンがリブートすると、PCIEホット・プラグ・ドライバからエラー・メッセージが表示されます。 発行されたエラーは次のメッセージに類似しています:
[ 3.574244] pcieport 0000:00:02.1: pciehp: Failed to check link status
この問題はベアメタル・システムではレプリケートされません。
(バグID 30512596)
(aarch64)一部の仮想化Armプラットフォームをプロファイリングすると、Perfツールによってアプリケーションの速度が低下する可能性がある
ノート:
次の問題は、ベア・メタル・インストールには影響しません。
マルチ・ソケットaarch64プラットフォームで実行されている仮想マシン(VM)で、perf topまたはperf recordコマンドを起動すると、アプリケーションの速度低下が発生する可能性があります。 場合によっては、端末ウィンドウで次のメッセージが出力されます:
kernel:watchdog: BUG: soft lockup
この問題を次のように軽減できます:
-
ロック・アップの状況を回避し、プローブの効果を減らすために、-Fフラグを使用して頻度ではなく、perf recordコマンドで-cフラグを使用してサンプル期間を指定できます。 たとえば、perf record -F 100コマンドのかわりにperf record -cコマンドを使用します。
-
perfコマンドを--all-cpusフラグとともに使用しないでください。 かわりに、perf -Cコマンドを使用して最小数のCPUを指定します。
(バグID 32834324)
IPv6の使用時にルート・キャッシュがいっぱいであることを示すメッセージが発行されました
システムによっては、IPv6の使用時に、ルート・キャッシュがいっぱいであることを示すエラー・メッセージが表示されます。 次の例のようなエラーが返される場合があります:
[ 5523.456447] Route cache is full: consider increasing sysctl net.ipv[4|6].route.max_size.
これらのエラーの原因や/proc/sys/net/ipv6/route/max_size
のサイズを増やすことは不明ですが、テスト・システムでは、次のコマンドを実行したあとに問題をレプリケートできませんでした:
sudo sysctl net.ipv6.route.max_size=32768
問題が現在調査中であるため、この値を増やすことが可能な回避策です。
(バグID 30976607)
RoCEを使用すると、IPv6フェイルバックが失敗
rdmaip
ドライバは、IPv6アドレス変更通知をRDSに送信しません。これにより、RoCEの使用時にIPv6フェイルオーバーが遅延したり妨げたりする可能性があります。 これは、アクティブなボンディングが有効な場合にIPv6でのみ発生します。 IPv4フェイルオーバーは、引き続き正常に動作します。
問題がトリガーされると、カーネル・ログに次のメッセージが表示される場合があります:
kernel: rdmaip: could not add 2001:db8:0:f101::50%4/64 to ens2f0 (port 1) kernel: IPv6: ens2f0: IPv6 duplicate address 2001:db8:0:f101::50 used by 50:6b:4b:cb:ef:23 detected!
修正は開発中ですが、このリリースの時点では使用できません。 この修正はエラータ更新として使用可能になることがあります。
(バグID 31021418)
libpcapパッケージを削除できません
libpcap
パッケージを削除しようとしたり、パッケージを削除しようとするアクションを実行しようとすると、依存関係チェーンでsystemd
パッケージの削除が必要になり、システムが中断するため、エラーが発生します。
これはOracle Linux 8で予想される動作ですが、以前のOracle Linuxリリースではlibpcap
パッケージを削除することが可能であったため、この動作がここに示されています
RDMAパッケージのインストール時など、状況によっては、libpcap
がオペレーティング・システム用に提供されるバージョンより新しいバージョンにアップグレードされる場合があります。 これらのパッケージを削除する場合は、BaseOSチャネルまたはリポジトリでオペレーティング・システムに提供されている最高バージョンと一致するようにlibpcap
パッケージをダウングレードすることもできます。 通常、これは、dnf history undoコマンドを使用してインストールを元に戻すことで、もっとも簡単に実行できます。 詳細は、DNF(8)
のマニュアル・ページを参照してください。
(バグID 30979601)
早期マイクロコード・ロード
UEK R6でOracle Linux 7ベアメタル・システムを起動する場合、dmesgログで次のことが報告されます:
This kernel doesn't handle early microcode load properly (it tries to load microcode even in virtualised environment, which may lead to a panic on some hypervisors), thus the microcode files have not been added to the initramfs image.
実際、UEK R6は、遅延マイクロコードのロードを適切に処理します。 メッセージは、UEK R6カーネル・バージョンを認識しないdownrev microcode-ctl
ユーザー領域パッケージによるものです。
この問題は、microcode_ctl-2.1-61.10.0.1
パッケージ以降のバージョンで修正されています。
(バグID 31085618)
lpfcドライバのリロードはエラー・メッセージを出力
Broadcom Emulex LightPulse Fibre Channel SCSIドライバlpfc
をアンロードしてリロードすると、次のようなエラー・メッセージが報告されることがあります:
bmx048-ps kernel: lpfc 0000:13:00.1: 1:(0):2858 FLOGI failure Status:x9/x30000 TMO:x14 Data x101800 x0 bmx048-ps kernel: lpfc 0000:13:00.1: 1:(0):0820 FLOGI Failed (x300). BBCredit Not Supported bmx048-ps kernel: lpfc 0000:13:00.0: 0:(0):2858 FLOGI failure Status:x9/x30000 TMO:x14 Data x101800 x0 bmx048-ps kernel: lpfc 0000:13:00.0: 0:(0):0820 FLOGI Failed (x300). BBCredit Not Supported
lpfc
モジュールのリロードが完了したあとにデバイスが正しく検出された場合、これらの通知は無視しても問題ありません。
(バグID 31598148)
Infinibandファブリックのネットワーク遅延が増加する可能性があります
TCP書き込みサイズがInfiniband (IB) Maximum Transmission Unit (MTU)のサイズに近い場合、アプリケーションでパケット転送の待機時間が長くなることがあります。 たとえば、デフォルトのIB MTUは65520バイトです。 65520バイトから128 KBまでのTCP書き込みサイズも使用するアプリケーションでは、この問題が発生する可能性があります。 アプリケーションがより大きい(256 KBなど)またはより小さい(4 KBや32 KBなど) TCP書込みサイズを使用している場合、この問題は発生しません。
この問題は、Ethernetネットワークに影響しないことに注意してください。
Oracle LinuxおよびUEK R6のIB MTUおよびTCP書込みサイズのデフォルト値では、この問題は発生しません。 TCPウィンドウ・サイズが変更されたアプリケーション、またはMTU値が変更されたシステムでは、この問題が重複して発生する可能性があります。
この問題の回避方法としては、IBインタフェースのMTUまたはアプリケーションのTCP書き込みサイズのいずれかを調整して、TCP書き込みサイズがIB MTUより小さくなるか、TCP書き込みサイズがIB MTUの2倍よりも大きくなるようにします。 MTUは、ip linkコマンドを使用して動的にチューニングできます。 TCP書込みサイズのチューニングはアプリケーション固有であることに注意してください。
(バグID 31830430)
(aarch64) Kdumpが一部のArmシステムでのクラッシュ・カーネル・メモリーの割り当てに失敗
一部の64ビットArm (aarch64)システムでは、連続するメモリーが不足しているため、auto
値の設定時に通常予約される最小crashkernel
メモリーを割り当てることができないためにKdumpが失敗することがあります。
この問題により、Kdumpの起動に失敗し、次のエラーがログに表示されます:
kdumpctl[3812]: No memory reserved for crash kernel ... systemd[1]: Failed to start Crash recovery kernel arming.
この問題を回避するには、crashkernel
の下限値と上限値を手動で設定し、256 MB未満の下限値を設定してみます。 たとえば、crashkernel=auto
をcrashkernel=800M,high crashkernel=200M,low
に置き換えます。
(バグID 31554906)