2020.12.17

MariaDB

MariaDB Enterprise Server 10.5.8-5 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

主な変更点
・このバージョンでは、10.5にアップグレードする際の問題を修正するために、新しい権限
 SLAVE MONITORが導入されました。レプリカユーザーは、SHOW REPLICA STATUSを実行できません
 でした。10.4から10.5にアップグレードすると、その権限が自動的に適応されるようになりました。
 以前の10.5バージョンからアップグレードする場合、レプリカユーザーに対してその新しい権限を手動で
 追加する必要があります。

  ○以前のバージョンのMariaDB Enterprise Server10.5からアップグレードするMariaDB MaxScaleの
   ユーザーは、更新された権限がMaxScaleユーザーとReplicationユーザーに付与されていることを
   確認する必要があります。次の例は、少なくとも正しいユーザーとホストに対して、パスワードを
   適切に変更することによって、適応させる必要があります。

   GRANT BINLOG ADMIN,
     READ_ONLY ADMIN,
     RELOAD,
     SLAVE MONITOR,
     REPLICATION MASTER ADMIN,
     REPLICATION SLAVE ADMIN,
     REPLICATION SLAVE,
     SHOW DATABASES ON *.*
     TO 'maxscale'@'maxscale_host'
     IDENTIFIED BY 'maxscale_password';

   GRANT SELECT ON mysql.*
     TO 'maxscale'@'maxscale_host';

   GRANT REPLICATION SLAVE ADMIN,
     REPLICATION SLAVE,
     SLAVE MONITOR,
     REPLICATION MASTER ADMIN ON *.*
     TO 'replication_user'@'maxscale_host'
     IDENTIFIED BY 'replication_password';

・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_es_repo_setupの新しいパラメータ --include-unsupportedを使用して、
 リポジトリ設定でサポートされていないパッケージのリポジトリを有効にすることができます。
 現在、リポジトリにはStorage Engine CONNECTが含まれています。ストレージエンジンは、
 yum install MariaDB-connect-engineまたはapt-get install mariadb-plugin-connect-engineに
 よってインストールできます。
・MS Windows上のMariaDB Enterprise Serverの場合、NTFS上のNTFSファイルメタデータは
 フラッシュされなくなり、書き込みワークロードI/Oが削減されます。
・InnoDBの書き込みパフォーマンスが向上しました。
・S3 Storage Engineでは、接続するポート(--s3-port)を指定し、HTTP(--s3-use-http)を強制的に
 使用できるようになりました。そのため、Amazon S3で使用されているのと同じオープンAPIを提供する
 他のソリューションに接続できるようになりました。
・時間データ型から文字列への変換のパフォーマンスが向上しました。
・数値データを処理するためのパフォーマンスが向上しました。
・コマンドラインオプション --temp-poolのデフォルトが1から0に変更されます。ベンチマークは、
 古いデフォルトが激しいミューテックス競合を引き起こすことを示しました。
・時間データ型と時間リテラルの比較のパフォーマンスが向上しました。
・時間データ型の比較のパフォーマンスが向上しました。
・MariaDB Enterprise ClusterでGalera wsrepライブラリが26.4.6に更新されました。

ストレージエンジンの変更
・このリリースには、MariaDB Xpandストレージエンジンのバージョン5.3.11_16が組み込まれています。
 このストレージエンジンは、このリリースで一般提供(GA)の成熟度を達成しています。
・このリリースには、MariaDB ColumnStoreストレージエンジンのバージョン5.5.1が組み込まれています。

修正されたバグ
<データ損失が発生する可能性があるもの>
・innodb_background_scrub_data_uncompressed=ONが使用されている場合、暗号化された
 InnoDBテーブルでデータが破損する可能性がある。
・ユーザーまたはシステムによって作成された一時テーブルは、作成時に既存のファイルを上書きする
 可能性がある。
・子テーブルを変更してプライマリキーを削除する前に、SET FOREIGN_KEY_CHECKS=0が使用される場合、
 ALTER TABLEコマンドの後でテーブルが消える可能性がある。
・最近解放されたページを再割り当てする時のバッファの破損を変更。
・S3ストレージエンジンの遅延レプリケーションは、マスターとレプリカの両方が同じS3ストレージを指す
 マスターレプリカセットアップを実行している時に、テーブルを完全に削除する可能性がある。
・複数の行を変更するUPDATEは、WITHOUT OVERLAPSキーが変更されると、データ破損につながる
 可能性がある。
・サーバーは、"not null"から"null"への列のインスタントALTER TABLE .. MODIFYでクラッシュします。
 仮想列はテーブルに存在しなければなりません。
・WITHOUT OVERLAPSキーでタイプBITの列を使用しているテーブルのメモリ破損。
・インデックスの複数のRENAMEを含む1つのインスタントALTER TABLEは、インデックスキャッシュを
 破損する可能性がある。
・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()を使用したクエリでサーバーがクラッシュする可能性がある。
・サーバーのシャットダウンが開始される直前にトリガーされるためにREDOログのサイズを変更し、
 innodb_flush_sync=0(デフォルト設定ではない)の場合、ページクリーナースレッドがジョブを
 終了できないためにシャットダウンがハングすることがある。
・InnoDBがinnodb_flush_sync=OFFでハングする。
・MariaDB Enterprise Clusterノードがクラッシュし、エラーログに
 「Assertion `server_state_.rollback_mode() == wsrep::server_state::rm_async' failed.」
 というGaleraメッセージが表示されます。
・SET GLOBALでREDOログのサイズを変更した場合、再起動後、クラッシュリカバリがエラー
 「InnoDB: Missing FILE_CHECKPOINT at ... between the checkpoint ... and the end ...」
 で失敗します。
・ドナーとジョイナーの間の接続が不安定な場合、または、クラスター設定の変更が同時に行われる場合、
 IST中にGaleraノードがクラッシュまたはハングする。
・ビューの名前を変更すると、レプリカがクラッシュする。
・UPDATEがWITHOUT OVERLAPSを使用してHEAPテーブルで実行され、そのUPDATEが
 WITHOUT OVERLAPS定義に含まれている複合キーの値に対して実行されると、サーバーが
 クラッシュする可能性がある。
・一括更新がGaleraで実行されると、MariaDB Enterprise Clusterがクラッシュする。
・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の場合、
 サーバーがクラッシュする。
・MariaDB Enterprise Clusterノードは、エラーログに「WSREP:MDLBF-BFconflict」という
 エラーメッセージを表示してクラッシュする可能性がある。このエラーは、外部キーを持つ
 テーブルでOPTIMIZEまたはREPAIRを実行することに関連している。
・Spiderは、シャーディングとXAと共に使用され、spider_internal_xa=OFF(デフォルト)の時に
 クラッシュする。
・Spiderのテーブルとパーティションを使用するとクラッシュする可能性がある。

<予期しない動作を引き起こす可能性があるもの>
・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は、パーティションテーブルの複合プライマリキーではインクリメントされない。
・レプリカユーザーは、10.5にアップグレードした後、SHOW REPLICA STATUSを実行できない。
・galera_new_clusterは、wsrep_on=OFFの場合、警告やエラーなしでスタンドアロンインスタンスとして
 サーバーを起動しますが、クラスタをブートストラップすることが期待される。
・wsrep_provider_optionsのserver.cnfの誤った値#wsrep_provider_options="gcache.size=1024Mb"。
 コメントを削除した後、サーバーは起動しなかった。
・依存するサブクエリがORDERby句を使用するクエリに対して、
 SQLエラー (1038): Out of sort memoryが誤って報告された。
・列を大文字に変更するためのALTER TABLE .. RENAMEが機能しない。
・INからサブクエリへの変換はオプティマイザトレースに表示されない。
・DROP TRIGGERは、Galeraレプリケーションを使用するMariaDB Enterprise Clusterでは
 レプリケートされない。
・SHOW RELAYLOG EVENTSは、バイナリログから誤ったBEGINイベント情報を返す可能性がある。
 先頭にset foreign_key_checks=1, check_constraint_checks=1;が追加されている。
・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にディスクスペースが再利用されない。
・mariadb-dumpは、シーケンス定義の詳細を--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の欠落に関するエラーが表示される。
・Windowsでの10.5 MSIのインストール中、アップグレードウィザードが提供されない。

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

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

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

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