2022.09.20

MariaDB

MariaDB Enterprise Server 10.5.17-12 GA版(リリース日:2022年9月12日)

修正されたセキュリティ脆弱性

CVE/CVSSベーススコア
CVE-2022-32091/6.5
CVE-2022-32089/6.5
CVE-2022-32084/6.5
CVE-2022-32082/6.5
CVE-2022-32081/6.5
CVE-2018-25032/7.5

注目すべき変更点

  • --max-statement-timeコマンドラインオプションがmariadb-dumpに追加され、デフォルト値は0です。
  • グローバルスコープに加えて、explicit_defaults_for_timestampシステム変数にセッションスコープが追加されました。
  • Galeraが26.4.13-1に更新されました
  • Debian 9のサポートは終了しました。
  • Red Hat Enterprise Linux 9のサポートが追加されました。
  • Rocky Linux 9のサポートが追加されました。

ストレージ エンジンの変更

  • このリリースには、MariaDB ColumnStoreストレージエンジン バージョン 5.6.7が組み込まれています。

修正された問題

データ損失が発生する可能性があるもの

  • --rsyncコマンドライン オプションを指定してmariadb-backupを実行すると、バックアップはinnodb_buffer_pool_filenameシステム変数で定義されたパスにあるInnoDBバッファプールダンプファイルをコピーしようとします。
    • このリリース以降、mariadb-backupは、Galeraを搭載したMariaDB Enterprise Clusterの状態スナップショット転送(SST)中にInnoDBバッファプールダンプファイルのみをコピーします。
  • MariaDB Enterprise Clusterでは、ノードでread_onlyが有効になっている場合でも、SUPER権限を持たないユーザーはノードに書き込むことができます。
  • MariaDB Enterprise Clusterでは、値がNEXTVAL()関数を使用してInnoDBシーケンスから取得されると、変更が複製されません。
    • このリリース以降、InnoDBシーケンスは、NOCACHEで定義されている場合、適切に複製されます。
  • INPLACEまたはNOCOPYアルゴリズムでALTER TABLEを使用してInnoDBテーブルの照合順序が変更されると、一意のインデックス内の重複エントリは検出されません。

ハングまたはクラッシュを引き起こす可能性があるもの

  • INSERT .. SELECT .. GROUP BYが実行され、GROUP BY句に派生テーブルが含まれている場合、サーバーがクラッシュする可能性があります。
  • クエリにANY(SELECT .. GROUP BY(SELECT ..))述語が含まれ、そのGROUP BY句に冗長なサブクエリがある場合、サーバーがクラッシュする可能性があります。
  • ALTER TABLE .. ADDを使用してINSTANTアルゴリズムで列を追加する場合、.frmファイルのROW_FORMATがデータファイルで使用される実際の行形式と一致しない場合、サーバーがクラッシュする可能性があります。
    • MariaDB Server 10.2より前に作成されたテーブルの場合、.frmファイルのROW_FORMATは、データファイルで使用される実際の行形式と一致しない可能性がありました。サーバーがMariaDB Enterprise Server 10.6にアップグレードされた場合、その不整合が残る可能性がありました。
  • INSERT .. SELECTが実行され、SELECTクエリが集約関数またはウィンドウ関数を呼び出すと、サーバーがセグメンテーション違反でクラッシュする可能性があります。
  • JSON_EXTRACT()関数が呼び出されると、サーバーがセグメンテーション違反でクラッシュする可能性があります。
  • クエリでDISTINCTキーワードを使用し、常に定数の関数の引数として集約関数を呼び出すと、サーバーがクラッシュする可能性があります。
    • 常に定数の関数は、関数の引数が定数でない場合でも、常に定数値を返す関数です。
    • 例えば、COLLATION()関数は常に定数の関数です。
  • mariadb-backupが--compressおよび--parallelオプションを指定して実行されると、スレッド間の競合状態が原因でバックアップがハングすることがあります。
  • EXISTS述語、または、IN、ALL、または ANY述語が、削除されたGROUP BY句で使用されると、サーバーがクラッシュする可能性があります。
  • FLUSH BINARY LOGSが実行されると、サーバーがハングすることがあります。
  • innodb_open_filesシステム変数が低すぎる時に、InnoDBがアクセスするテーブルまたはパーティションが多すぎると、サーバーがクラッシュする可能性があります。
  • 通常のクエリのコンテキスト外(ストアドプロシージャ内など)でINサブクエリが使用されると、サーバーがクラッシュする可能性があります。
  • MariaDB Enterprise Clusterが使用されていて、GaleraレプリケーションのTCPポートが非 Galeraネットワークトラフィックを受信すると、サーバーがクラッシュする可能性があります。
    • 以前のリリースでは、クラッシュが発生すると、次のメッセージがMariaDBエラーログに表示されました
      terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector >'
      what(): remote_endpoint: Transport endpoint is not connected
      [ERROR] mysqld got signal 6 ;</boost::exception_detail::error_info_injector
  • 生成された列がINSTANTアルゴリズムを使用してInnoDBテーブルに追加されると、バッファオーバーフローが原因でサーバーがクラッシュする可能性があります。
  • ON状態の不明な列を含むビュー定義でCREATE VIEWが実行されると、ER_BAD_FIELD_ERRORエラーコードでエラーが発生する代わりに、サーバーがクラッシュする可能性があります。

予期しない動作を引き起こす可能性があるもの

  • IN条件に数値と文字列の値が混在している場合、結果に一貫性がなくなる可能性があります。
  • binlog_format=ROWでシーケンスイベントがバイナリログに書き込まれる場合、binlog_row_imageの値は考慮されません。
  • トランザクションをバイナリログに完全に書き込むことはできないが、トランザクションを安全にロールバックできる場合、LOST_EVENTSインシデントイベントがバイナリログに書き込まれます。
    • 以前のリリースでは、この問題により、レプリカサーバーで次のエラーが発生する可能性がありました。
      Last_SQL_Errno 1590
      Last_SQL_Error The incident LOST_EVENTS occurred on the master. Message: error writing to the binary log
    • このリリース以降、安全なロールバックが不可能な場合にのみ、LOST_EVENTSインシデントがバイナリログに書き込まれます。
  • レプリカサーバーがインシデントイベントをレプリケートする時、障害に関する詳細は、プライマリサーバーのエラーログ、レプリカサーバーのエラーログ、またはSHOW REPLICA STATUSの出力にはありません。
  • mariadb-backupを使用してバックアップを実行すると、バックアップにバイナリログが含まれます。
  • 再帰的なCTEを使用するSELECTステートメントからテーブルが作成されると、CTEの再帰部分から計算された値が、CTEの非再帰部分から取得された列のタイプに適合しない場合、テーブルは予期しないデータタイプを使用し、切り捨てられたデータを含む可能性があります。
    • このリリース以降、計算された値が列のタイプに適合しない場合、CTE計算は中止されます。これが発生すると、警告またはエラー(sql_mode によって異なります)が発生し、ER_WARN_DATA_OUT_OF_RANGEエラーコードと次のエラーメッセージが表示されます。
      Out of range value for column 'COLUMN_NAME' at row ROW_NUM
  • 複数テーブルのUPDATEまたはDELETEクエリの場合、オプティマイザは、更新または削除されるテーブルに対してパーティションプルーニングの最適化を適用できません。
  • JSON_VALUE()関数がJSONプロパティから"null"を解析すると、関数はNULLを返す代わりに文字列値"null"を返します。
  • mariadbクライアントがreadline(DebianやUbuntuなど)の代わりにEditLineを使用する場合、Unicode文字は受け入れられません。
  • オプティマイザがサブクエリの準結合最適化を選択すると、LooseScanおよびFirstMatch戦略は、適切な特定のクエリでは考慮されず、不適切な特定のクエリでは考慮されます。
  • InnoDBテーブルでFULLTEXT検索が実行される時、検索語にアポストロフィ(')が含まれていると結果が正しくありません。
    • このリリース以降、検索語にアポストロフィ(')が含まれている場合、InnoDBはアポストロフィで単語をトークン化し、最初のトークンを無視して、2番目のトークンと照合します。
  • optimizer_switch='not_null_range_scan=on'が設定されている場合、テーブルの削除を使用するクエリは誤った結果を生成する可能性があります。
    • テーブルの削除は、クエリがJOINを実行し、constテーブルを持つ場合に使用されます。
  • レプリカサーバーが、古すぎてexplicit_defaults_for_timestampをバイナリログに書き込むことができないプライマリサーバーから複製している場合、レプリカサーバーは自身の値を無視し、値がOFFであると想定します。
    • このリリース以降、レプリカサーバーは、プライマリサーバーのバージョンに基づいてexplicit_defaults_for_timestampの最適な値を決定します。プライマリサーバーが古すぎてその値をバイナリログに書き込めない場合、レプリカサーバーは独自の値を使用します。
  • UUIDまたはINET6列がUPDATEまたはDELETEステートメントのWHERE col IN(SELECT ..)サブクエリで参照されている場合、クエリは正しい行数に影響しません。
  • BINARY列を使用してUUIDを格納し、SELECTステートメントがIN句を使用して列をフィルター処理する時、UUIDが16進数で指定されていると、クエリが非常に遅くなる可能性があります。
  • 古いバージョンのMariaDBサーバーからアップグレードした後、一部のALTER TABLE操作はALGORITHM=NOCOPYが指定されていると失敗します。
    • 以前のリリースでは、次のエラーが発生する可能性がありました。
      ERROR 1845 (0A000): ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE

インストールとアップグレード

  • SSTスクリプトとISTスクリプトに互換性がないため、ローリングアップグレード手順を使用してMariaDB Enterprise Clusterをアップグレードすることはできません。

インターフェースの変更

  • explicit_defaults_for_timestampシステム変数の動的がNoからYesに変更されました
  • mariadb --enable-cleartext-pluginコマンドラインオプションが追加されました
  • mariadb-backup --sst-max-binlogsコマンドラインオプションが追加されました
  • mariadb-dump --max-statement-timeコマンドラインオプションが追加されました
  • mariadbd --spider-direct-aggregateコマンドラインオプションが追加されました
  • spider_direct_aggregateシステム変数が追加されました

プラットフォーム

エンタープライズライフサイクルに合わせて、MariaDB Enterprise Server 10.5.17-12は次のプラットフォームに対して提供されます。

  • CentOS 7 (x86_64)
  • Debian 10 (x86_64 / ARM64)
  • Debian 11 (x86_64 / ARM64)
  • Microsoft Windows (x86_64)
  • Red Hat Enterprise Linux 7 (x86_64)
  • Red Hat Enterprise Linux 8 (x86_64 / ARM64)
  • Red Hat Enterprise Linux 9 (x86_64 / ARM64)
  • Rocky Linux 8 (x86_64 / ARM64)
  • Rocky Linux 9 (x86_64 / ARM64)
  • SUSE Linux Enterprise Server 12 (x86_64)
  • SUSE Linux Enterprise Server 15 (x86_64 / ARM64)
  • Ubuntu 18.04 (x86_64 / ARM64)
  • Ubuntu 20.04 (x86_64 / ARM64)

MariaDB Enterprise Serverの一部のコンポーネントは、全てのプラットフォームをサポートしていない場合があります。


MariaDB Enterprise Server 10.5.17-12のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/release-notes/mariadb-enterprise-server-10-5/10-5-17-12/


MariaDBプロダクト・サポート・サービス

MariaDB
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。