Skip to content

EMQX 6.1 の互換性のない変更点 ​

6.1.2 ​

  • #17157 新しいルールエンジン設定 rule_engine.limit_selects_in_namespace を導入しました。デフォルト値は true です。有効にすると、ルールは自身と同じネームスペースのクライアントがパブリッシュしたメッセージにのみトリガーされます。

  • #17325 ホットアップグレードのREST APIエンドポイント(/api/v5/relup/*)を削除しました。ホットアップグレードは現在、各ノード上の emqx ctl relup CLIを通じてのみ操作可能で、ダッシュボードからの操作はできません。

    対象のリリースtarballとその .sha256 サイドカー(同じベース名、同じディレクトリ)をEMQXプロセスが読み取れる場所に配置してください。各ノードで emqx ctl relup upgrade <TarballPath> を実行してアップグレードを適用します。対象バージョンはtarball内の releases/emqx_vars(REL_VSN)から読み取られます。

6.1.0 ​

  • #16368 内部の正規表現エンジンをPCRE2にアップグレードしました。これにより、マッチング性能が向上し、より厳密な構文チェックが行われるようになりました。

    ルールエンジンSQLで regex_match、regex_replace、regex_extract 関数を使用している場合、これまで緩やかな動作や未定義の挙動に依存していた一部の正規表現がコンパイルできなくなったり、期待通りにマッチしなくなる可能性があります。

    主な変更点は以下の通りです:

    • より厳密なエスケープルール:以前は無視されていた無効または不要なエスケープシーケンスがエラーとして扱われます。
      • 無効になる例:[\w-\.] 文字クラス内での . のエスケープは不要であり、現在は許容されません。メタ文字のみエスケープが必要です。
      • 無効になる例:有効な16進数が続かない \x(例:\xGG)は、リテラルの x として解釈されるのではなく、コンパイルエラーになります。
    • グループ名の検証が厳格化:重複または空の名前付きキャプチャグループを含む正規表現は許可されなくなりました。

    対応が必要です:正規表現を使用している全てのルールエンジンSQL定義を見直し、検証してください。複雑なパターンについては、PCRE2準拠のテスター(多くのオンライン正規表現ツールがPCRE2をサポートしています)で互換性を確認するか、アップグレード前にステージング環境で十分にテストしてください。