第34章 サーバーおよびサービス
内部バッファーロックが libdb
でデッドロックを引き起こさなくなりました
以前は、
libdb
データベースは、カーソル上の操作の処理中にオフページ重複 (OPD) ツリーにあるページにアクセスするときに、内部バッファーを正しい順序でロックしませんでした。書き込みプロセスは最初にプライマリーツリーにアクセスし、次に OPD ツリーにアクセスし、読み取りプロセスは逆の順序で同じことを実行しました。ライタープロセスがプライマリーツリーからページにアクセスし、リーダープロセスが OPD ツリーからページにアクセスすると、ページが他のプロセスによって同時にロックされたため、プロセスは他のツリーからページにアクセスできませんでした。その結果、どちらのプロセスもロックを解放しなかったため、libdb
でデッドロックが発生しました。今回の更新により、cursor->get
メソッドの btree
バージョンが変更され、書き込みメソッドと同じ順序 (つまり、最初にプライマリーツリー、次に OPD ツリー) でツリーのページをロックするようになりました。その結果、説明されているシナリオでは libdb
のデッドロックが発生しなくなります。(BZ#1349779)
毎週のログローテーションがより予測可能にトリガーされるようになりました
毎週のログローテーションは、以前は、最後のローテーションからちょうど 7 日 (604800 秒) が経過したときに、
logrotate
ユーティリティーによって実行されていました。したがって、logrotate コマンドが cron ジョブによって少し早くトリガーされた場合、ローテーションは次の実行まで遅延されました。この更新により、毎週のログローテーションでは正確な時間が無視されます。その結果、日カウンターが最後のローテーションから 7 日以上進むと、新しいローテーションがトリガーされます。(BZ#1465720)
大きな PDF ファイルの処理中に Ghostscript が
クラッシュしなくなりました
以前は、大きな PDF ファイルを処理すると、特定のまれな状況で
Ghostscript
ユーティリティーが予期せず終了することがありました。この更新により、GhostScript
仮想マシンの内部制限 DEFAULT_VM_THRESHOLD
が増加し、前述の問題は発生しなくなります。さらに、大きなファイルの処理が若干速くなりました。(BZ#1479852)
Ghostscript
を使用した大きな PDF ファイルの PNG への変換が失敗しなくなりました
アップストリームのソースコードのバグにより、
ghostscript
ユーティリティーを使用して大きな PDF ファイルを PNG 形式に変換すると、特定のまれな状況で失敗しました。このバグは修正され、上記の問題が発生しなくなりました。(BZ#1473337)
IPv6 ポートにバインドできないときに krfb
がクラッシュしなくなりました
以前は、
krfb
が IPv6 ポートにバインドできないときに VNC クライアントを使用して krfb
アプリケーションに接続すると、krfb
が予期せず終了していました。この更新により、初期化されていない IPv6 ソケットの不適切な処理が修正され、libvncserver ライブラリー上に構築されたアプリケーションが、IPv6 ポートでのリッスン試行の失敗に正しく対処できるようになりました。(BZ#1314814)
mod_nss は Apache のスレッドモデルを適切に検出してパフォーマンスを向上させます
以前は、mod_nss モジュールは Apache でスレッドモデルを適切に検出していませんでした。その結果、TLS セッション ID がハンドシェイク間で維持されず、ハンドシェイクごとに新しいセッション ID が生成されるため、ユーザーはパフォーマンスの低下を経験しました。この更新により、スレッドモデルの検出が修正されました。その結果、TLS セッション ID が適切にキャッシュされるようになり、前述のパフォーマンスの問題が解消されました。(BZ#1461580)
atd は 100% の CPU 使用率で実行されなくなり、システムログもいっぱいになりません
以前は、at ユーティリティーの atd デーモンは、一部の種類の壊れたジョブ、特に存在しないユーザーのジョブを誤って処理していました。その結果、atd は利用可能なすべての CPU リソースを使い果たし、無制限の頻度で送信されるメッセージによってシステムログがいっぱいになりました。今回の更新により、atd による壊れたジョブの処理が修正され、問題は発生しなくなります。(BZ#1481355)
ReaR
は、grub2-efi-x64-modules が見つからない場合に、より役立つエラーメッセージを提供するようになりました。
以前は、rear mkrescue コマンドおよび rear mkbackup コマンドを使用して UEFI システム上で
ReaR
バックアップを作成しようとすると、grub2-efi-x64-modules パッケージが欠落しているために失敗していました。このパッケージはデフォルトではインストールされませんが、ReaR
が GRUB イメージを生成するために必要です。コマンドは次のエラーメッセージで失敗しました。
ERROR: Error occurred during grub2-mkimage of BOOTX64.efi
このメッセージはわかりにくく、役に立たないことが判明しました。この更新では、同じ状況でエラーが引き続き表示されますが、問題を修正する方法が示されています。
WARNING: /usr/lib/grub/x86_64-efi/moddep.lst not found, grub2-mkimage will likely fail. Please install the grub2-efi-x64-modules package to fix this.
更新されたメッセージで説明されているように、UEFI ファームウェアを備えたシステムで
ReaR
バックアップを作成する前に、欠落している grub2-efi-x64-modules パッケージをインストールする必要があります。(BZ#1492177)
ReaR
は mkrescue 操作中にディスクサイズの決定に失敗しなくなりました
以前は、
ReaR
(Relax-and-Recover) ユーティリティーは、ディスクレイアウトを保存するときにパーティションサイズをクエリーしているときに、udev
との競合状態が原因でエラーが発生することがありました。その結果、mkrescue 操作は次のメッセージが表示されて失敗しました。
ERROR: BUG BUG BUG! Could not determine size of disk
そのため、レスキューイメージを作成することができませんでした。バグは修正され、レスキューイメージの作成が想定どおりに機能するようになりました。(BZ#1388653)
ReaR は
非 UEFI システムで dosfsck と efibootmgr を必要としなくなりました
以前は、
ReaR
(Relax-and-Recover) は、UEFI を使用しないシステムに dosfsck および efibootmgr ユーティリティーをインストールすることを誤って要求していました。その結果、ユーティリティーが欠落している場合、rear mkrescue コマンドはエラーで失敗しました。このバグは修正され、ReaR
では前述のユーティリティーを UEFI システムにのみインストールする必要があります。(BZ#1479002)
ReaR
は NetBackup
で障害が発生しなくなり、より信頼性の高いネットワーク設定になりました。
以前は、レスキューシステムの起動手順に 2 つの問題があったため、
NetBackup
方式を使用した場合に ReaR
(Relax-and-Recover) リストアプロセスが失敗していました。システムの init スクリプトは、ReaR
で使用されるときに実行されるのではなく、ソースされていました。その結果、NetBackup
init スクリプトはシステムセットアッププロセスを中止しました。さらに、システムセットアップによって作成されたプロセスはすぐに終了されました。これは dhclient ツールにも影響し、場合によっては IP アドレスの競合が発生しました。今回の更新では、両方のバグが修正されました。その結果、ReaR
は NetBackup
方式で適切に動作し、DHCP を使用したネットワーク設定の信頼性が向上しました。(BZ#1506231)
バックアップ整合性チェックが有効になっている場合でも ReaR
リカバリーが失敗しなくなりました
以前は、
ReaR
(Relax-and-Recover) がバックアップ整合性チェック (BACKUP_INTEGRITY_CHECK=1
) を使用するように設定されている場合、md5sum コマンドがバックアップアーカイブを見つけられなかったため、リカバリープロセスは常に失敗していました。このバグは修正され、上記の問題が発生しなくなりました。(BZ#1532676)