2020.12.18

MariaDB

MariaDB Enterprise Server 10.4.17-10 GA版(リリース日:2020年12月14日)

セキュリティの脆弱性の修正
 CVE / CVSS 3.0 ベーススコア
 CVE-2020-14765 / 6.5
 CVE-2020-14776 / 4.9
 CVE-2020-14789 / 4.9
 CVE-2020-14812 / 4.9
 CVE-2020-28912 / N/A

主な変更点
・MariaDB Enterprise Auditは、プロキシユーザーをログに記録しませんでした。新しいプラグインの
 バージョン2.0.3は、イベントタイプCONNECTのイベントサブタイプPROXY_CONNECTを
 導入しています。

  ○接続時、プロキシユーザーが使用されている場合、追加の行がログに記録されます:
   TIME,HOSTNAME,user,localhost,ID,0,PROXY_CONNECT,test,plug_dest@%,0

  ○イベントタイプは、フィルタ"connect_event"でも使用できます:
   ["CONNECT","DISCONNECT","PROXY_CONNECT"]

・監査プラグイン(MariaDB Enterprise Auditではない)は、プロキシユーザーをログに記録しません
 でした。新しいプラグインのバージョン2.0.3は、イベントタイプCONNECTのイベントサブタイプ
 PROXY_CONNECTを導入しています。

  ○接続時、プロキシユーザーが使用されている場合、追加の行がログに記録されます:
   TIME,HOSTNAME,user,localhost,ID,0,PROXY_CONNECT,test,plug_dest@%,0

・mariabackup --slave-infoオプションのMariaDB GTIDサポートが改善されました。
・新しいグローバルInnoDB変数 innodb_max_purge_lag_wait
・MariaDB Enterprise ClusterでGalera wsrepライブラリが26.4.6に更新されました。
・スクリプトmariadb_es_repo_setupの新しいパラメータ --include-unsupportedを使用して、
 リポジトリ設定でサポートされていないパッケージのリポジトリを有効にすることができます。
 現在、リポジトリにはStorage Engine CONNECTが含まれています。ストレージエンジンは、
 yum install MariaDB-connect-engineまたはapt-get install mariadb-plugin-connect-engineに
 よってインストールできます。
・テーブルロックが存在する時にInnoDBレコードロックを取得しないMariaDB Server10.5の機能の
 バックポート。
・時間データ型と時間リテラルの比較のパフォーマンスが向上しました。
・時間データ型の比較のパフォーマンスが向上しました。
・デフォルトをinnodb_log_optimize_ddl=OFFに変更。
・MariaDBエンジニアリングポリシーに準拠して、このリリースにはCentOS 6.xパッケージおよび
 RHEL 6.xパッケージは含まれていません。

修正されたバグ
<データ損失が発生する可能性があるもの>
・innodb_background_scrub_data_uncompressed=ONが使用されている場合、暗号化された
 InnoDBテーブルでデータが破損する可能性がある。
・ユーザーまたはシステムによって作成された一時テーブルは、作成時に既存のファイルを上書きする
 可能性がある。
・子テーブルを変更してプライマリキーを削除する前に、SET FOREIGN_KEY_CHECKS=0が
 使用される場合、ALTER TABLEコマンドの後でテーブルが消える可能性がある。
・サーバーは、"not null"から"null"への列のインスタントALTER TABLE .. MODIFYでクラッシュする。
 仮想列はテーブルに存在しなければなりません。
・インデックスの複数のRENAMEを含む1つのインスタントALTER TABLEは、インデックスキャッシュを
 破損する可能性がある。
・MariaDB Enterprise Clusterを10.3から10.4にローリングアップグレードすると、
 データが失われる可能性がある。
・DELETE .. FOR PORTION OFステートメントは、非定数のFROM .. TO句を受け入れます。
 これはドキュメントと矛盾し、UPDATEステートメントの動作と一貫性がありません。

<クラッシュまたはハングを引き起こす可能性があるもの>
・InnoDBの永続的な統計分析により、強制的にフルスキャンが実行され、ロックがクラッシュする。
・MariaDB Enterprise Auditがクラッシュする。
・InnoDBがINSERTでハングし、エラーメッセージ "Semaphore wait has lasted > 300 seconds"が
 表示される。
・max_sort_lengthをデフォルトの64よりも低い値に設定したfilesortで、サーバーのクラッシュが
 発生する可能性がある。
・複雑なMATCH .. AGAINST文字列を使用したInnoDB全文検索での潜在的なスタックオーバーフロー。
・特定の種類のREDOログの書き込み後にサーバーがアイドル状態になると、Mariabackupがハングする
 可能性がある。
・一時テーブルの暗号化が有効になっていて(encrypt-tmp-files=ON)、クエリがウィンドウ関数を
 使用している場合、サーバーのクラッシュが発生する可能性がある。
・エラーまたはレプリケーションチェックサムの不適切な発生が原因で、バイナリロギングが
 アクティブ化される時にMariaDBサーバーがクラッシュする可能性がある。
・ALTER TABLE .. DISCARD TABLESPACEの後のTRUNCATEでのInnoDBアサーション。
・仮想列に一意のキーを作成しようとして失敗した後、サーバーがクラッシュする。
・InnoDBで空間データ型のインデックスを使用すると、サーバーがクラッシュする可能性がある。
・文字列関数がタイプDATETIMEの列に使用され、文字列関数が行を返すサブクエリで使用されると、
 サーバーがクラッシュする可能性がある。
・MariaDB Enterprise Clusterノードは、外部キーを使用して同じテーブルで実行された
 多くの接続からのINSERT/DELETE/UPDATEの負荷が高いと、クラッシュする可能性がある。
・SET FOREIGN_KEY_CHECKS=0の使用中に外部キーが削除された外部キーを使用して、クエリが
 InnoDBテーブルで実行されると、サーバーがクラッシュする。この場合、SQLエラーが
 発生するはずです。
・再帰的なプロシージャ呼び出しが、SQLエラーではなくクラッシュで終了する。
・参照されるインデックスがないために、InnoDBは、SET FOREIGN_KEY_CHECKS=0の使用中に
 VIRTUAL列DDLを削除している時、テーブルを開くことに失敗する。
・テーブルスペースがすでに破棄された後でテーブルを変更すると、サーバーがクラッシュする。
・SHOW BINLOG EVENTS FROM ...は、指定された位置が存在しない場合、様々な非決定性のエラーを
 引き起こした。
・SET GLOBAL `replicate_do_db` = DEFAULTはクラッシュを引き起こす。
・JSON_MERGE_PATCH(json_doc, json_doc[, json_doc] ...)は、最初のパラメータがNULLに設定され、
 2番目のパラメータが有効なJSONでない場合にクラッシュする可能性がある。
・外部キーとインデックスの仮想列に対してON DELETE SET NULLを指定してDELETEを実行すると、
 サーバーがクラッシュする。
・MariaDB ODBCドライバを介して実行された準備済みのSELECTステートメントで、サーバーが
 クラッシュする可能性がある。
・インデックス付きの仮想列を含むテーブルのSELECTでクラッシュする。
・ウィンドウ関数NTH_VALUE()を使用したクエリでサーバーがクラッシュする可能性がある。
・MariaDB Enterprise Clusterノードがクラッシュし、エラーログに
 「Assertion `server_state_.rollback_mode() == wsrep::server_state::rm_async' failed.」
 というGaleraメッセージが表示されます。
・ドナーとジョイナーの間の接続が不安定な場合、または、クラスター設定の変更が同時に行われる場合、
 IST中にGaleraノードがクラッシュまたはハングする。
・一括更新がGaleraで実行されると、MariaDB Enterprise Clusterがクラッシュする。
・変数system_versioning_asofがDATETIMEではなくDATE型の値に設定されている場合、
 システムバージョン管理されたテーブルでSELECTが実行されるとサーバーがクラッシュする
 可能性がある。
・Galeraレプリケーションが有効になっていない(wsrep-on=OFF)時に
 SELECT WSREP_LAST_SEEN_GTID()を実行すると、サーバーがクラッシュする。
・関数FORMAT(num, decimal_position[, locale])がdecimal_position > 30で使用されると、
 サーバーがクラッシュする。
・ストアドプロシージャを別のストアドプロシージャから複数回呼び出すと、サーバーがクラッシュする。
・無効なwsrep_providerが設定されている時、サーバーがクラッシュする。
・BACKUP LOCKが使用された後にTABLE LOCKが使用されると、サーバーがハングする。
・FOR PORTION OFを使用したテーブル更新でのサーバークラッシュ。
・wsrepがオンで、実行されたステートメントがTOIモードで実行する必要があるCREATE TABLEである
 場合のEXECUTE IMMEDIATEでのアサーション。
・トランザクションがSET SESSION wsrep_on=1で開始されたが、グローバルwsrep_onが0の場合、
 サーバーがクラッシュする。
・Spiderは、シャーディングとXAと共に使用され、spider_internal_xa=OFF(デフォルト)の時に
 クラッシュする。
・MariaDB Enterprise Clusterノードは、エラーログに「WSREP: MDL BF-BF conflict」という
 エラーメッセージを表示してクラッシュする可能性がある。このエラーは、外部キーを持つ
 テーブルと、そのテーブルでOPTIMIZEまたはREPAIRを実行することに関連している。
・Spiderのテーブルとパーティションを使用するとクラッシュする可能性がある。
・SET GLOBAL REPLICATE_DO_TABLEを使用すると、サーバーがクラッシュする可能性がある。

<予期しない動作を引き起こす可能性があるもの>
・SQL構文ISNULL(ID)=0でビューを定義すると、構文エラーが誤って返される。
・MariaDB Enterprise Backupは、Ariaログファイル './aria_log.00000000'が見つからないという
 エラーを報告する。
・増分バックアップに関するMariaDB Enterprise Backupの失敗。
・KILL QUERYを使用してInnoDBテーブルでクエリを中止すると、クエリを中止できなかった場合、
 SQLエラーメッセージは表示されない。
・マルチコンポーネントインデックス、2番目のインデックス、および、これらのインデックスに対する
 条件を持つWHERE/ON句が使用されている場合、オプティマイザは非効率的なプランを選択した。
・丸めが10進数に対して予期しない方法で行われていた。
・SETステートメントを介して実行時にinnodb_buffer_pool_sizeを変更した後、サーバーがクラッシュする。
・ビューを作成すると、SELECTから式の括弧が削除され、誤った結果になる。
・InnoDBでのmysql_tzinfo_to_sqlが遅い。
・UDFライブラリファイルが存在しない場合、UDFをアンインストールすることができない。
・「expr」に指定された値が先頭に多くのゼロを含む場合、DECIMAL型のCAST(expr ASタイプ)は
 予期しない結果を返す可能性がある。
・タイムゾーンが1つだけ読み込まれると、Galeraレプリケーションが壊れる。
・Galera SST Donationが失敗し、FLUSH TABLES WITH READ LOCKがタイムアウトする。
・FOREIGN KEYを使用したALTER TABLEの後にメモリリークが発生する可能性がある。
・data-directoryが失われ、ディレクトリが見つかった場合、MariaDB Enterprise Backup SSTは
 MariaDB Enterprise Clusterで失敗する。
・SHOW BINLOG EVENTS FROM ...は、指定された位置が存在しない場合、様々な非決定生エラーを
 引き起こした。
・パラメータがinnodb_flush_method O_DIRECTおよびinnodb_use_native_aio=1(デフォルト)に
 設定されている場合、Linux AIOはOSエラー22を返した。
・同じ名前のトリガーがすでに存在する場合、GaleraクラスターのCREATE OR REPLACE TRIGGERが
 複製されない。
・mysqld_multiは、異なるサーバーバイナリでは機能しなくなった。
・暗号化されたテーブルスペースに対する増分バックアップ --prepareで発生する可能性のあるエラー。
・フルテキストインデックスが使用されている場合、サーバーの起動と停止が遅くなる可能性がある。
・VIEWの括弧は、=とBETWEENの組み合わせに関して誤って定義される可能性がある。
・バイナリログの再生時のER_BASE64_DECODE_ERROR。
・Galeraを搭載したMariaDB Enterprise Clusterに関するいくつかのIPv6の問題。
・information_schemaのサブクエリが失敗し、エラーメッセージが表示される。
・AUTO_INCREMENTは、パーティションテーブルの複合プライマリキーではインクリメントされない。
・BACKUP STAGE BLOCK_COMMITと並列レプリケーションの間のデッドロック。
・galeraライブラリでメモリリークが発生する可能性がある。
・GROUP BYを使用したMIN(time_expr)およびMAX(time_expr)の誤った結果。
・構文エラーにより、SHOW CREATE PROCEDUREにシステムテーブルmysql.procの欠落に関する
 誤解を招くメッセージが表示される。
・小数点以下の桁数が0または38、numがDECIMAL(38,38)の場合の
 FORMAT(num, decimal_position[, locale])は誤った結果を返す。
・パーティショニングが使用されている場合、使用されているWHERE句に応じてクエリ結果にデータ行が
 2回含まれる。
・ROLLBACK AND CHAIN後のアサーション。
・CREATE TEMPORARY TABLE .. LIKE(システムバージョン管理されたテーブル)は、テーブルに
 一意のインデックスが定義されている場合にエラーを返す。
・CREATE .. SELECTは、バージョン管理されたテーブルの結合で空の結果になる可能性がある。
・ビューの問い合わせ時に、そのビューがパーティションのあるバージョン管理されたテーブルから
 選択している場合、エラー「ERROR 4142 (HY000): SYSTEM_TIME partitions in table `t1`
 does not support historical query」が発生する。これは、ビュー自体がFOR SYSTEM_TIME ALLを
 使用して作成された場合にのみ発生する。
・データファイルのBlobにディスクスペースが再利用されない。
・mysqldumpは、シーケンス定義の詳細を--no-dataダンプにダンプしない。
・CHECK TABLEは、インスタントADD/DROPに関連するバグ(MariaDB Enterprise Server 10.3.17、
 10.4.7で修正)によって破損したテーブルの破損の検証に失敗する。
・サブクエリの実行は、LIMIT ROWS EXAMINEDを超えた後、終了しない。

<インストールまたはアップグレードに関連するもの>
・Ubuntu Focalで、ca-certificatesがインストールされていない場合、mariadb_es_repo_setup curlが
 失敗した。現在は、ca-certificatesの欠落に関するエラーが表示される。

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

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

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

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