2025.05.14

MariaDB

MariaDB 11.4.6 GA版(リリース日:2025年5月6日)

注目すべき項目

ストレージエンジン

InnoDB
  • log_t::resize_start() と log_t::resize_abort() の間の競合状態 (MDEV-36082)
  • ALTER TABLEまたはOPTIMIZE TABLEとトランザクション履歴のパージの間の競合状態が修正されました。(MDEV-36122)
  • innodb-buffer-pool-chunk-size を1Mに設定した後、デフォルトの InnoDBバッファプールのサイズを変更すると、サーバーがクラッシュする (MDEV-34677)
  • テーブルのロードに失敗した後の dict_sys_t::load_table / get_foreign_key_info でのASANエラー (MDEV-33167)
  • インデックスIDが32ビットに収まらない仮想列のインデックスのUNDOログが正しくない (MDEV-36613)
  • CREATE TABLE…SELECTの失敗後のメモリリーク; 複数のテーブルから読み取るCREATE TABLE…SELECTでのクラッシュ (MDEV-36504)
  • CREATE INDEXがFOREIGN KEY制約の修復に失敗する (MDEV-35962)
  • innodb_checksum_algorithm=full_crc32 page_compressed ページの二重書き込みリカバリが機能しない (MDEV-36180)
  • 実行時に innodb_buffer_pool_size を減らしてもメモリが解放されない (MDEV-32339)
  • innodb_snapshot_isolation=1 でコミットされない行変更に対してエラーが発生する (MDEV-36639)
  • valgrind で main.mdl_sync が失敗する (Bug#42643 のテスト) (MDEV-36684)
  • InnoDBシステムテーブルを最適化またはデフラグできない (MDEV-35689)
  • 非推奨のパラメータ innodb_purge_rseg_truncate_frequency が認識されない (MDEV-36378)
  • LSN割り当てがボトルネックになっている (MDEV-21923)
  • InnoDBバッファプールを再編成する (そして、バッファプールのチャンクを削除する) (MDEV-29445)
  • dict_stats_fetch_from_ps() が排他的な dict_sys.latch を不必要に保持する (MDEV-35436)
  • FLUSH TABLESを実行してもInnoDBの永続統計は再ロードされなくなりました。RENAME TABLEを実行すると再ロードされます。このロジックの変更により、全体的なパフォーマンスが向上し、比較的変更頻度の低いテーブルの統計が更新されないという事態が回避されます。(MDEV-35000)
  • 以前は無効にすることができず、パフォーマンス異常を引き起こす可能性があったLinuxメモリプレッシャーインターフェースが書き換えられ、デフォルトで無効になっています。 (MDEV-34863)
  • 非同期フラッシュ中にページクリーナーが空きページの生成に失敗すると、停止してクラッシュする (MDEV-36226)
  • InnoDBログを不必要に永続化することにより、INSERT…SELECTのパフォーマンスが低下します。(MDEV-35813)
RocksDB
  • LevelCompactionBuilder::SetupInitialFilesで、アサーション `!level_and_file.second->being_compacted'が失敗しました (MDEV-16523)
  • rocksdb::CompactionIterator::NextFromInputで、アサーション `ikey_.type == kTypeValue' が失敗しました (MDEV-15164)
Spider
  • MDEV-32157は、何よりも、Spiderラッパーを修正して大文字と小文字を区別しないようにすることを目的としています。しかし、UDF spider_direct_sqlでは依然として大文字と小文字の区別が必要になる可能性があるため、この修正は不完全でした。MDEV-35807はこれを修正します。(MDEV-35807)
  • 未テストの ha_spider::index_first_internal は、壊れたクエリを構築します (MDEV-36324)
  • inserting into ... select ... from Spiderテーブルの場合、予期しないエラー 1264 'Out of Range Value for Column'が発生します (MDEV-35874)
  • UDF spider_copy_tables を呼び出すテストが --view-protocol で失敗する (MDEV-36335)
Connect
  • GetUserで 'free()' が重複しているため、Connectがサーバーをクラッシュさせる (MDEV-36248)

パーティショニング

  • ORDER BY句がtemporaryおよびfilesortを使用して解決された場合、複数のテーブルの UPDATE ... ORDER BY ... LIMIT ステートメントによって間違った行が更新される可能性がありました。(MDEV-35955)
  • クエリキャッシュがブロックを割り当てられない場合の破損 (MDEV-34075)

バージョン管理されたテーブル

  • 同じタイムスタンプと同じマルチステートメントトランザクションを持つ複数のシステムバージョン管理されたDELETEに対して、InnoDBが間違ったパーティション内の行を検索するというアサーション (MDEV-36115)

オプティマイザ

  • 次のような形式のサブクエリを使用するクエリは、オプティマイザーでクラッシュを引き起こす可能性がありました。
    WHERE col IN (SELECT ... LEFT JOIN tbl ON tbl.column=reference_outside_subquery)

    重要な部分は、ON式には 1. 外部結合の内部への参照と 2. サブクエリの外部への参照の2種類の参照しかないことです。 (MDEV-32084)

  • ルーズインデックススキャンを使用してSELECT MINを実行すると、WHERE条件の少なくとも1つが”f IS NULL”の場合、メモリ違反が発生し、予期しない動作が発生する可能性がある (MDEV-36220)
  • order itemがfixing()を必要とする時のfind_order_in_listの不一致 (MDEV-36607)
  • 派生テーブルのカーディナリティ推定が間違っていると、LATERAL DERIVEDのプランが遅くなります (MDEV-30877)
  • join_conditionがUSING (column_list)を介して指定されている場合、クエリプランはクエリ内のテーブルの順序に依存します (MDEV-36592)
  • マテリアライズド派生テーブルのコスト推定が不十分です (MDEV-35958)
  • 大規模なN方向のORは、多くのindex_mergeバリアントの作成と破棄を引き起こします (MDEV-34620)
  • ルーズインデックススキャンでの誤った結果 (MDEV-36118)
  • ビューから選択する時に、group byハンドラーに定数フィールドがない (MDEV-36307)

データ定義 - Alter Table

  • FULLTEXT INDEXを含むDDLのエラー処理が正しくない (MDEV-36061)
  • ALTER TABLE…SEQUENCEはInnoDBでは正しく動作しない (MDEV-36038)
  • VIRTUAL列を含むCREATE INDEXと同時にUPDATEをコミットしようとすると、サーバーがクラッシュする可能性がありました (MDEV-36281)
  • ALTER TABLE…DROP COLUMNが失敗した後のALTER TABLE…DROP COLUMNは、サーバーのクラッシュにつながる可能性がありました (MDEV-36236)

バックアップ

  • innodb_undo_log_truncate=ON、innodb_encrypt_log=ONの状態でのmariadb-backup --backupのクラッシュ (MDEV-36152)
  • ファイルハンドルが不足している場合、MariaDBバックアップは、パーティション化された MyISAM テーブルに対して"Error on file ./test/t1#P#p513.MYD open during `test`.`t1` table copy"のようなエラーを返します (MDEV-36437)
  • innodbチェックポイントを強制するようにmariadb-backupを作成する (MDEV-30000)

GIS

  • 空間インデックスのレコードを削除中にサーバーが中断される (MDEV-35420)

アップグレード

  • Windowsでアップグレードが失敗する (MDEV-36128)

ストアドルーチン

  • 戻り値型がsys_refcursorである関数を使用してテーブルを作成すると、サーバーがクラッシュする (MDEV-36409)
  • LEX *sp_lex_instr::parse_expr(THD *, sp_head *, LEX *) でアサーション `thd->lex == sp_instr_lex' が失敗しました (MDEV-36377)
  • テーブルの再作成後の `DECLARE spvar1 ROW TYPE OF cursor1` でのクラッシュ (MDEV-36462)

その他

  • fill_recordでフィールドポインタが初期化されない可能性がある (MDEV-36181)
  • 単一レコードと集計を含むテーブルからの誤った結果 (MDEV-35238)

サーバー

  • Protocol_textは、エラーチェックなしでメモリを割り当てるため、サーバークラッシュが発生する可能性があります。 (MDEV-35640)
  • find_field_in_tablesでのサーバークラッシュ、find_field_in_table_refでのAssertion `name' failed (MDEV-25012)
  • 挿入対象テーブルを含む派生テーブルから挿入するとサーバークラッシュする (MDEV-32086)
  • mysqldumpは、生成されたSQLでテーブル名の大文字と小文字の区別を保持しない (MDEV-14432)
  • SQL_MODE=OracleでTO_CHAR FM形式が認識されない (MDEV-36216)
  • 一意のBLOBプレフィックスに対するBETWEENの結果が正しくない (MDEV-36235)
  • MariaDBが実質的にroot CAP_DAC_OVERRIDEとして実行されています (MDEV-36229)
  • cmake 4.0でビルドが失敗する (MDEV-36506)
  • binary_column NOT LIKE binary_columnの比較でクエリ結果が正しくない (MDEV-36211)

レプリケーション

  • プライマリが以前に準同期レプリケーションを無効にし、接続がすでに確立されていた場合 (および `rpl_semi_sync_master_wait_no_slave=0`)、準同期接続が停止するとプライマリサーバーがクラッシュする可能性がありました。(MDEV-36359)
  • 準同期レプリカがSSL使用時にダンプスレッドを強制終了できない (MDEV-36663)
  • ROWバイナリログ形式のCREATE-or-REPLACE-SELECTでDROP TABLEイベントがログに記録されない場合があり、レプリケーションの問題が発生する可能性があります。(MDEV-35499)
  • Mysqlbinlog --stop-positionは、--read-from-remote-serverでEOFに到達しない場合に警告を出力しない (MDEV-35694)
  • ロールバック対応エンジンを使用して1フェーズでコミットするトランザクションの場合、コミット中にバイナリロギングが失敗すると、ロールバックされるべきトランザクション全体がコミットされてしまいます。(MDEV-35506)

キャラクターセット

  • my_casedn_8bitでアサーション `src != ((void *)0)' が失敗しました (MDEV-36565)
  • 照合順序 utf8mb4_0900_binは、utf8mb4_binのエイリアスとして定義されていますが、utf8mb4_nopad_binのエイリアスであるべきであり、誤った比較結果が発生します。(MDEV-36361)
  • メモリ使用量が2倍になりました (11.4.4 <-> 11.4.5) (MDEV-36213)

Galera

  • Galeraが26.4.22にアップデートされました
  • wsrep_ignore_apply_errors = 0の場合、Sql_cmd_dml::prepare()でアサーション thd->is_error()が失敗するためにノードがクラッシュし、ログに表示されます。 (MDEV-35946)
  • 場合によっては、MDLロックがある場合 (例えば、LOCK TABLEが実行されている場合)、トランザクションがBF中止された時にサーバーコードでメタデーロック (MDL) が不適切に処理されるために、ノードがシステムスレッドでスタックする可能性がありました。 (MDEV-35941)
  • MDEV-31413の修正後のリグレッション - wsrep::transaction::before_rollback()のアサーションによりサーバーがクラッシュすることがあります。例えば、wsrep_osu_method=RSUのARIAテーブルでOPTIMIZE TABLEを使用する場合。 (MDEV-32631)
  • プライマリノードでOLTP負荷がアクティブになっているなど、高負荷下でgtid_strict_modeが有効になっていると、SSTエラーが発生します。このエラーの典型的な症状は、診断"[ERROR] mariadbd: Error writing file 'binlog'"が表示されることです。デバッグバージョンでは、wsrep::transaction::before_rollback()関数のアサーションで、"Assertion `state() == s_executing || state() == s_preparing || state() == s_prepared || state() == s_must_abort || state() == s_aborting || state() == s_cert_failed || state() == s_must_replay' failed"というメッセージが表示されてクラッシュする可能性もあります。 (MDEV-34891)
  • Galeraでは、小さなキャッシュでシーケンスを作成すると、シグナル6エラーが発生します: [ERROR] WSREP: FSM: そのような遷移は存在しません REPLICATING -> COMMITTED. (MDEV-33850)
  • 高負荷状態では、メモリ負荷状態によりwsrep内部スレッドが終了する可能性がありますが、これはクラッシュではありません。ただし、デバッグバージョンでは、wsrep_to_isolation_begin()関数で以下のメッセージが表示されるアサーションが発生する場合があります: "int wsrep_to_isolation_begin(THD*, const char*, const char*, const TABLE_LIST*, const Alter_info*, const key_array*, const HA_CREATE_INFO*): Assertion `(0)' failed." (MDEV-36116)
  • innobase_commit() (ha_innodb.cc) でアサーション `commit_trx' が失敗しました。バイナリログが無効になっているにもかかわらず、 (MDEV-7205に従って) 今でもsql_log_bin=0を指定したINSERTがGaleraで複製されます。これにより、バイナリログが部分的にバイパスされ、2フェーズコミット (2PC) が必要になります。2PC中、まずINSERTが準備され (InnoDBでPREPARED状態になります)、コミット時に、MDEV-24035からの新しいアサーションが失敗し、ログに"Assertion 'commit_trx' failed"というクラッシュが発生します。 (MDEV-35658)
  • 同じテーブルにINSERTを実行する複数のアプライヤーで外部キー (FK) と一意キー (UK) のチェックが無効になっている場合、Galeraノードがハングする可能性があります。これは、InnoDBがこれらの操作を一括挿入として扱い、1つのアプライヤーがテーブルレベルのロックを取得する可能性があるためです。その後、シーケンス番号が小さい別のアプライヤーがこのロックを待機すると、Galera内でデッドロックが発生する可能性があります。具体的には、ロックホルダーは先行するアプライヤーがコミットするまで待機しますが、先行するアプライヤはロックによってブロックされます。(MDEV-36360)
  • シーケンスが使用され、複数のGaleraノードで挿入が並列実行される場合、認証に合格した後にトランザクションが中止される可能性があります。その後ロールバックを試みると、予約済みのシーケンス値を含むバイナリログステートメントキャッシュが、途中で書き込まれる可能性があります。これにより、トランザクションは再生され、最終コミット時にのみバイナリログに書き込まれるはずであるため、ログに診断 "WSREP: FSM: no such a transition REPLICATING -> COMMITTED" が記録されクラッシュが発生します。(MDEV-33589)
  • Galeraノードが不適切なミューテックス処理のためにハングする可能性があります:スレッドは、ストリーミングレプリケーションのロールバックをトリガーしながら lock_sys.wait_mutexを保持していましたが、THD::LOCK_thd_killの取得も試みたため、ミューテックスの使用が不適切になりました。デバッグバージョンでは、これは"safe_mutex: Found wrong usage of mutex 'wait_mutex' and 'LOCK_thd_data'"のような診断につながりますが、デバッグバージョンとリリースバージョンの両方で、ノードがハングする可能性があります。(MDEV-36509)
  • あるノードのテーブルの破損によってクラスターがトランザクションに失敗したノードを排除する決定をトリガーすると、現在のマスターはそれ以上コミットできなくなり、ハングします。今後このクラッシュを回避するためには、ユーザーはGaleraライブラリをバージョン26.4.21以降に更新する必要もあります。(MDEV-34998)
  • MariaDBサービスマネージャーは、転送が完了しているにもかかわらず、システムログに“WSREP state transfer ongoing...”と報告します。`wsrep_notify_cmd`で定義されたスクリプトが状態転送後に呼び出されないため、サービスマネージャーはステータスを更新できません。 (MDEV-35969)
  • wsrep_osu_method=TOI かつ wsrep_strict_ddl=ON の場合、パーティションテーブルの作成は許可されず、パーティションテーブルの変更や削除はできなくなります。(MDEV-27861)
  • CONNECTエンジンテーブルを作成しようとすると、エンジンチェックが正しく行われないため、ログに"non-InnoDB sequences in Galera cluster"というエラーメッセージが記録されます。(MDEV-35748)
  • wsrepが原因でcmake 4.0.0でビルドが失敗する (MDEV-36422)
  • MariaDBを10.11から11.4にアップグレードすると、wsrep_provider_optionsのsocket.ssl_cipher設定の問題により、Galeraクラスターの起動に失敗する可能性があります。このバグを回避するためには、Galeraライブラリ 26.4.21以降を含むバージョン 11.4を使用することをお勧めします。(MDEV-34738)

データ操作 - アップデート

  • UPDATE時のItem_args::walk_argsでのスタックループとSIGSEGV (MDEV-31647)

プラグイン - Audit

  • server_audit_file_pathが長いとバッファオーバーフローが発生する (MDEV-36245)

シーケンス

  • ALTER TABLE table_name sequence=1を実行する時に、テーブルがシーケンスである可能性があることを確認します (MDEV-36032)

設定

  • 変数 "Buffer pool size"の値が不正です (MDEV-21203)
  • $MYSQL_GROUP_SUFFIXに加えて、$MARIADB_GROUP_SUFFIXからもオプショングループサフィックスを取得する (MDEV-21375)
  • my_getoptはオプション名を大文字と小文字を区別して比較する (MDEV-27126)

パーサー

  • sql_mode=ORACLEでは、パッケージ本体変数はFETCHターゲットとして許可されない(MDEV-36047)

ロッキング

  • パーティションテーブルに対する同時のALTERとSELECTによるセグメント違反 (MDEV-31122)

データ型

  • ST_PointFromWKBはSRID引数を無視し、常にSRIDが0であるPOINTを作成する (MDEV-32619)

パッケージング

  • ウイルス対策の干渉により、Windows Server 2022にMariaDBをインストール中にエラーが発生しました。(MDEV-35983)
  • 我々のRPMリポジトリは、シンボリックリンク付きの互換パッケージを提供しなくなりました (MDEV-36073)
  • Systemd: OOM時の再起動 (MDEV-36009)
  • RHEL 8 (および互換) + Ubuntu 20.04でsystemdサービスを起動できない (EXIT_CAPABILTIES/218) (MDEV-36591)
  • 古い共有ライブラリを含む全てのRPM MariaDB互換パッケージの削除 (MDEV-35512)

スクリプト&クライアント

  • mariadb-dumpが間違った引用文字を使用した (MDEV-36268)

JSON

  • JSON_UNQUOTEは絵文字では機能しない (MDEV-35614)

認証および権限システム

  • シーケンスに対する権限を持たないユーザーが、列のデフォルト設定を使用してシーケンスから読み込んだり変更したりできる (MDEV-36413)
  • ユーザーが、セキュリティ呼び出し元を持つビューを通じてシーケンスに不正にアクセスしている (MDEV-36380)

プリペアドステートメント

  • mysql_stmt_execute()でエラーが発生すると、mysql_stmt_errno()が0を返す (MDEV-35953)

プラグイン - userstat

  • USER_STATISTICS.BUSY_TIMEがマイクロ秒単位です (MDEV-36586)

バイナリプロトコル

  • データの挿入中にCREATE TABLE .. SELECTエラーが発生すると、ユーザーは全ての変更がロールバックされ、クエリの実行後にテーブルは存在しないと予想しますが、コード内でエラーが誤って無視され、テーブルがまだ存在しています。(MDEV-35207)

セキュリティ

  • 次のセキュリティ脆弱性の修正:
    • CVE-2025-30722
    • CVE-2025-30693
    • CVE-2023-52970
    • CVE-2023-52969
    • CVE-2023-52971

MariaDB Community Server 11.4.6のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/kb/en/mariadb-11-4-6-release-notes/


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

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