Vitess
v24.0.4Storage & DataTLSの証明書失効確認とテーブルACLの適用が強化され、不要なHTTP APIが削除された保守リリースです。圧縮設定の解釈や運用メトリクスにも変更があり、アップグレード順序や互換性を確認する必要がある変更を含みます。
要対応 (6)
securityCRL設定時のgRPC接続方式
--tablet-grpc-crl、--vtgate-grpc-crl、--vtctld-grpc-crlなどの*-grpc-crlフラグを設定し、クライアント証明書もCAも指定していないgRPCクライアントは、平文ではなくTLSで接続します。サーバー証明書はシステムのルート証明書で検証されます。security読み取り処理のテーブルACLチェック
厳格なテーブルACL(
--queryserver-config-strict-table-acl)では、各読み取りを同じテーブルに対する通常のSELECTとしてチェックします。ドライランと除外ACLの扱いも、ほかのテーブルACLチェックと同じです。securityvtctldの
/api/HTTP API削除vtctldが
/api/で提供していたHTTP APIは削除されました。breakingCRL設定の起動時検証
TLS設定の構築時、起動時に、設定どおりCRLを適用できない構成は拒否されます。
breakingvtctld Go APIの削除
Goパッケージを利用して構築する場合、
vtctld.、InitVtctld vtctld.、ActionRepository vtctld.、ActionResult vtctld.は利用できません。TabletWithURL breakingサブクエリを含む設定の拒否
厳格なテーブルACLでは、式にサブクエリを含む設定を
vttabletが拒否します。
影響確認 (1)
breaking対象付き
SET文のアップグレード時制約vttabletをvtgateより先にアップグレードする場合に適用されます。
vttabletをvtgateより先にアップグレードする場合は、すべてのvtgateのアップグレードが完了するまで、対象付きの
SET文でサブクエリを使わない運用が必要です。vtgateを先にアップグレードすることもできます。
事前準備 (1)
deprecatedコマンドラインフラグの非推奨化v26で削除予定
--cell、--proxy-tablets、--action-timeout、--tablet-health-keep-aliveは非推奨になり、v26で削除されます。
その他の記録済み変更 13 件すべてfixes 16 · value changes 6 · constraints 2 · additions 1
fixes (16)
- A
SETof a system variable in a session targeted at a shard (use ks:-80) is now evaluated once on the target shard - mysql/json: read numbers the way MySQL does
- fix(vdiff): map source PK columns to their SELECT positions in getSourcePKCols
- vreplication: Fix --config-overrides silently erasing existing config keys
- use tablet db name override when reading current sequence value in SwitchTraffic dry run
- flagutil: keep the first value passed to StringSetFlag.Set
- vtadmin: send a non-empty :authority so gRPC works behind a proxy
- sqlparser: fix panic on WITH followed by parenthesized query
- vtorc: pass a heartbeat interval to
SetReplicationSourceonly forReplicaMisconfigured - vttablet: reset connection settings with the DEFAULT keyword
- smartconnpool: re-check capacity after getNew's CAS
- vttablet: reset foreign_key_checks and unique_checks settings to the global value
- tabletenv: Fix infinite recursion in OltpConfig.UnmarshalJSON
- VTTablet: discard a transaction's connection after a CALL ran on it
- vttablet: derive table ACL permissions the way MySQL resolves CTE names
- vttestserver: fail, don't panic, on a vschema missing a table or vindex
value changes (6)
- The exported
planbuilder.now returns a second result,BuildPermissions tablesUndetermined bool, alongside the permissions. - The
lz4compression engine now uses thepierrec/lz4/v4library instead ofpierrec/lz4v2. - vtgate: report RowsAffected for stored-procedure calls over the streaming path
- vtgate: list the session's SET_VAR hint variables in a fixed order
- Upgrade the Golang version to
go1.26. 8 - vtgate: only scan shard records for MoveTables state when routing rules reference the keyspace
constraints (2)
- VDiff: accept a target primary key that extends a unique source key
- Only negotiate multi statement support on connections that send batches
additions (1)
- now reports its connections by transport,
tlsorplaintext, in two new stats:GrpcOptionalTlsOpenConnections
対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチと破壊的変更も、その一例です。