Repository navigation
v26.45.0 release notes - #39477
Closed
bosconi wants to merge 6 commits into
Closed
v26.45.0 release notes#39477bosconi wants to merge 6 commits into
bosconi wants to merge 6 commits into
Conversation
Adds the `## v26.45.0` section to doc/user/content/releases/_index.md — 7 Improvements, 1 Agent Skills entry, 7 Bug Fixes — and the `v26.45` row to the self-managed operator compatibility table. Dates are provisional: Cloud 2026-10-08, Self-Managed 2026-10-09, derived from the first Thursday strictly after the `v26.45.0-rc.1` tag's commit date (2026-10-02T02:23:01Z) plus one day. The final snapshot sets the real dates. Draft with PR links and the full review record: data/mz-release-notes/v26.45.0/rc.1/ in MaterializeInc/mz-skills.
Adds the v26.45.0-rc.2 increment to the assembled v26.45.0 section: one bug fix (zero-downtime cut-over fencing against a large catalog audit log). Provisional dates are unchanged from rc.1 (Cloud 2026-10-08, Self-Managed 2026-10-09), so the operator-compatibility row needs no edit in this snapshot.
Adds the v26.45.0-rc.3 increment to the assembled v26.45.0 section: - New improvement: quieter logins with identity-provider group sync. - Amends, in place, rc.1's subject-alternative-name improvement with the exact-match pinned-CA carve-out. This replaces that bullet rather than adding a second one: the follow-up repairs a regression introduced earlier in this same unreleased train, so no released version ever showed the failure, and leaving rc.1's sentence as written would overstate the action users must take. Provisional dates are unchanged from rc.1 (Cloud 2026-10-08, Self-Managed 2026-10-09), so the operator-compatibility row needs no edit in this snapshot.
The rc.4 increment is two items, both omitted, so this snapshot adds no entry to the assembled `## v26.45.0` section and the provisional dates are unchanged (Cloud 2026-10-08, Self-Managed 2026-10-09). - #39549 pins jemalloc's allocator page back to 4 KiB on aarch64-unknown-linux-gnu, repairing a 64 KiB-page regression that #39339 introduced earlier in this same unreleased train. No released version ever ran the 64 KiB page, so a user upgrading from v26.44.0 sees the same allocator page before and after; #39339 was itself omitted at rc.1 as a dependency bump, so nothing published describes the behavior and there is no bullet to amend. Recorded as borderline in the snapshot's omitted.md. - `ba9b30921` is the materialize-bot version bump for the candidate. The one agent-skills PR in the window, MaterializeInc/agent-skills#88, is an automated `mz-docs` regeneration and is omitted as it was at rc.1. This empty commit records rc.4 as applied; v26.39.0 rc.3 is the precedent for a zero-entry RC on this layout.
Applies the `final` snapshot increment for the v26.45.0 train: - Adds the `mz-debug-freshness` entry to `### Agent Skills`. This is the snapshot's whole published increment -- the materialize side contributes only the `release: bump to version v26.45.0` commit. - Replaces the provisional dates carried by rc.1 through rc.4 (Cloud 2026-10-08, Self-Managed 2026-10-09) with the real ones inferred from the v26.45.0 tag: Cloud 2026-10-07, Self-Managed 2026-10-08. The same change is made to the `Release date:` of the v26.45 row in the operator-compatibility table. Source: data/mz-release-notes/v26.45.0/final/ in MaterializeInc/mz-skills.
bosconi
added a commit
that referenced
this pull request
Oct 8, 2026
v26.45.0 did not ship, so the v26.45 train releases as v26.45.1, as v26.44 did. Move the v26.45.0 Improvements, Agent Skills, and Bug Fixes entries from #39477 into the v26.45.1 section verbatim, with anchors renamed to {#v26.45.1-...}. Dates, the operator compatibility row, and v26.45.md were already correct for v26.45.1. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Member
Author
val-materialize
added a commit
that referenced
this pull request
Oct 9, 2026
Release notes for the v26.45 train, published as **v26.45.1**. v26.45.0 did not ship, so (as with v26.44) its notes are folded in here and [#39477](#39477) is closed unmerged. - **v26.45.0 content**: 8 Improvements, 2 Agent Skills, 8 Bug Fixes, copied verbatim from #39477 with anchors renamed to `{#v26.45.1-…}`. - **v26.45.1 content**: Alerting for Self-Managed and the external dependency monitoring Improvement (editor-added). The release's only PR, [#39659](#39659), is omitted. - **Dates**: Cloud 2026-10-08, Self-Managed 2026-10-09. The operator compatibility row is `v26.45.1`. `v26.45.md` (`patch: 1`, no `rc`) is already on `main`.⚠️ **Open questions** - **Group-sync bullet**: `oidc_group_role_sync_enabled` defaults to `false` at the tag. Is it on in Cloud? If not, cut the "Quieter logins" bullet. - **Certificate SAN requirements** ([#39316](#39316), [#39415](https://github.com/MaterializeInc/materialize/pull/39415)/[#39459](https://github.com/MaterializeInc/materialize/pull/39459)) need action at upgrade time but sit in Improvements. Should they be called out more loudly? Also, does [#39351](#39351) (S3 on rustls) impose the same SAN rule on custom S3 endpoints? - **[#39659](#39659) (omitted)**: is `enable_upsert_paged_spill` on in production? A draft bullet is in [omitted.md](https://github.com/MaterializeInc/mz-skills/blob/main/data/mz-release-notes/v26.45.1/final/omitted.md#borderline). - **`EXPLAIN ANALYZE ... CPU`**: [agent-skills#90](MaterializeInc/agent-skills#90) says it overstates joins, reductions, and TopK by 1.5x–3x before v26.46. Not published. Is that a known issue? - **Metric sinks**: [#39332](#39332), [#38910](#38910), and [#39337](#39337) are withheld because `enable_metric_sink` is `false`. #39337 fixes a panic any superuser can reach, so consider publishing it regardless. - **Possible cuts**: [#39362](#39362) was observed only in CI. The latency figures from [#39179](#39179) were measured on one noisy machine. - **Possible adds**: [#38894](https://github.com/MaterializeInc/materialize/pull/38894)–[#38896](https://github.com/MaterializeInc/materialize/pull/38896) (MV correction buffer) need an end-to-end number. [#39149](#39149) fixes the kind install guide, which crash-loops today. [#39549](#39549) (jemalloc page) is omitted because no released version had the regression. Snapshot drafts in mz-skills: [v26.45.0](https://github.com/MaterializeInc/mz-skills/tree/main/data/mz-release-notes/v26.45.0) (rc.1–rc.4, final), [v26.45.1](https://github.com/MaterializeInc/mz-skills/tree/main/data/mz-release-notes/v26.45.1/final). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude <[email protected]> Co-authored-by: Valerie Chiang <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The v26.45.0 release-note train, one commit per snapshot. Dates in RC snapshots were provisional until the release shipped; the
finalsnapshot sets the real dates.rc.1 adds the
## v26.45.0section — 7 Improvements, 1 Agent Skills entry, 7 Bug Fixes (15 published entries from 16 PRs) — and thev26.45row in the self-managed operator compatibility table. No Features section: nothing in this snapshot's 229 in-scope PRs rises to one. The closest candidate issum/avgoverinterval, which fills the last gap in the aggregate surface for a core type rather than adding a capability worth its own heading.rc.2 adds 1 Bug Fix from 1 PR in scope — zero-downtime cut-overs stalling for hours when the incoming
environmentdre-consolidated its whole catalog snapshot before every fence attempt and so lost the race against the serving instance's advancing frontier (#39482). Nothing omitted, nothing Borderline.rc.3 adds 1 Improvement and amends another, from 2 PRs in scope. New: quieter logins with identity-provider group sync (#39434). Amended in place: rc.1's subject-alternative-name bullet now carries the exact-match pinned-CA carve-out (#39459) and cites both PRs — see the reviewer check below for why that is a replacement rather than a second bullet. Nothing omitted, nothing Borderline.
rc.4 adds nothing, and its commit is intentionally empty. The increment is two items — #39549 (borderline, omitted; see the reviewer check below) and the
materialize-botversion-bump commitba9b30921— and the provisional dates are unchanged, so there is no edit to make to either file. An RC whose whole increment is a within-train repair is a legitimate outcome rather than a gap; v26.39.0rc.3is the precedent for a zero-entry snapshot on this layout, landed the same way. The empty commit is what records rc.4 as applied, so please keep it on any rebase — the commit subject is the ledger that stops a later run re-applying the snapshot.final adds 1 Agent Skills entry from 6 items in scope (1 materialize version-bump commit, 0 materialize PRs, 5 agent-skills PRs) and sets the real dates. This is the first snapshot of the train whose whole published increment comes from
MaterializeInc/agent-skills:GET /compare/v26.45.0-rc.4...v26.45.0isahead_by: 1, and that one commit isrelease: bump to version v26.45.0, touching only bump machinery (Cargo.lock, the eight crateCargo.tomls,LICENSE, the operator chart, the operator-parameter YAML, and a new SBOM). Nothing was cherry-picked onto the release branch after rc.4. The published entry is agent-skills#90 (mz-debug-freshnessoperator-cost and headroom corrections); 1 of the remaining 4 is Borderline.The
finalcommit is preceded on this branch by a merge ofmain. While the branch sat open it fell 92 commits behind, and an editor consolidated thev26.44.0andv26.44.1sections onmaininto a single## v26.44.1with every anchor renamed to{#v26.44.1-…}. The merge brings that in;_index.mdnow reads## v26.45.0→## v26.44.1→## v26.43.0, and the compatibility YAML carriesv26.45,v26.44.1,v26.43in that order. This supersedes the earlier reviewer check about needing a rebase for the v26.44.0 docs PR — #39138 has merged and## v26.44.0no longer exists onmain.Release dates: Cloud 2026-10-07, Self-Managed 2026-10-08. Inferred from the
v26.45.0tag's commit date (2026-10-07T17:06:08Z) plus one day, because they were not supplied verbatim — please confirm both with the release owner. They replace the provisional pair rc.1 through rc.4 all carried (Cloud 2026-10-08, Self-Managed 2026-10-09), which anchored on thev26.45.0-rc.1tag and took the first Thursday strictly after it; the train shipped on the Wednesday instead. That is the sixth train in a row where the Thursday rule overshot by a day. The inferred-from-tag rule checks out against the last two trains: v26.43.0 tagged 2026-09-23 / Cloud 2026-09-23, v26.44.1 tagged 2026-09-30 / Cloud 2026-09-30, both with Self-Managed at +1.2026-10-07T18:43:25Z— 1 h 37 min after this tag — and its ownfinalsnapshot inferred the identical pair, Cloud 2026-10-07 / Self-Managed 2026-10-08. So_index.mdis on course to publish two sections claiming the same Cloud date. Either v26.45.0 reached Cloud and was patched the same day, or v26.45.1 superseded it before or during rollout and is the build Cloud actually received. Whoever answers this should fix both trains. Relatedly: the two v26.45 sections are not consolidated the way the v26.44 pair was — that is an editor's call, and it is entangled with this question.final's one PR, and it is deliberately not published. agent-skills#90 adds skill text saying that before v26.46,EXPLAIN ANALYZE ... CPUhas the same per-region overstatement the skill just fixed in its own queries — a claim about server behaviour in this very release. No materialize PR in this train says so, and the skill's warning is the only reachable source, so publishing it would promote one skill author's observation to a product statement. Flagged as a question: ifEXPLAIN ANALYZE ... CPUdoes overstate joins, reductions, and TopK by 1.5x–3x today, that deserves a v26.46 Bug Fixes entry and possibly a known-issue line here.aarch64-unknown-linux-gnu(one line in.cargo/config.toml), repairing a regression #39339 introduced inside this same unreleased train when it bumped jemalloc 5.3.0 → 5.3.1 and silently took the default aarch64 Linux allocator page to 64 KiB. The measured effect is large — at equal post-restart age against v26.44.0,environmentdactive-minus-allocated 55 MB → 490 MB and 84 MB → 558 MB on two us-east-1 canaries, the largest canaryclusterdpods 0.19 GB → 1.70 GB, local VmRSS 32% higher onenvironmentd— which is why this is filed Borderline rather than as a plain build omit. It is nonetheless omitted because no released version ever ran the 64 KiB page: build(deps): bump the jemalloc crates #39339 was itself omitted at rc.1 as a dependency bump, so nothing published describes the behaviour, and a user upgrading from v26.44.0 sees the same allocator page before and after. Publishing it would mean writing a bullet asserting that memory use is unchanged from v26.44.0 — a non-statement. If the release owner wants the work visible, an internal sign-off note is the right vehicle, not a release note. Separately worth an eye: this was caught by a release sign-off sweep rather than by CI, and @antiguru confirmed on the PR that "moving to 64kb page size was not a deliberate choice" — a dependency bump that silently changes allocator behaviour may deserve a follow-up guard.SSL CERTIFICATE AUTHORITYneeds no reissue. The narrower alternative, if a reviewer prefers one bullet per snapshot: revert to rc.1's wording and accept a published caveat broader than the shipped behaviour — the safe-direction error, but still wrong. build: pin jemalloc's page size to 4 KiB on aarch64 Linux #39549 above is the same family with a cleaner resolution: there the causing PR was never published, so there was no bullet to amend.final's cross-snapshot pass confirmed the amendment is assembled correctly — one merged Improvements bullet, not two.oidc_group_role_sync_enabledwas re-read at thev26.45.0tag and is stillfalse(src/adapter-types/src/dyncfgs.rs:204,ParameterScope::Environment). Per the rollout-lever rule the code default is advisory, and the entry is published on four grounds: the flag is environment-scoped rather than customer-settable, v26.40.0 rc.1 already published a fix on this same gated path (#38410), the capability was announced GA one release earlier, and the PR ships the new behaviour in the publishedsync-idp-groups.mdpage in the same diff. That GA announcement is now live onmainas### SCIM group-to-role mapping is generally available on Materialize Cloud {#v26.44.1-scim-group-to-role-mapping}, which strengthens the call without settling it. If the release owner's answer comes back negative, the entry to cut is the first Improvements bullet — the certificate entry is unaffected.COPY FROMsubject-alternative-name requirement (#39415 + #39459) both sit in Improvements, phrased around the action a user must take. A reviewer may want them moved or called out more loudly. Related and omitted: #39351 moves all S3/AWS traffic onto rustls and webpki — if the same SAN strictness applies to a custom S3 endpoint in a Self-Managed deployment, it belongs in the same note; the PR does not say either way.final's cross-snapshot pass re-read both with the whole release in view and left them as they are; if a reviewer prefers one combined "zero-downtime cut-over reliability" bullet, that is still an editorial call to make before merge. Also deliberately unpublished on catalog: skip consolidation on syncs that apply no updates #39482: it is a regression since v26.22.0 by the author's own statement, and the fix does not cover syncs that do apply updates (DDL issued during takeover still consolidates the full snapshot) — the PR gives no measurement of that residual, so it is not claimed.enable_metric_sink, which readsfalseat this tag. Confirm with the release owner: if the flag is on in v26.45.0, publish #39332 (clearest candidate — it also removes theunattributableseries from the metric's label set), #38910, and #39337. #39337 deserves a second look even if metric sinks stay off — the coordinator panic it fixes is reachable by any superuser viaALTER SYSTEM SET disabled_metric_sinks = '', a plain system variable with no feature-flag check.test/kafka-auth, SS-115) — no customer report, nodatabase-issuesreference. It is published because the defect is in shipped code on a shipped path (librdkafka leaves a stale OpenSSL error on the tokio worker's error queue). If a reviewer wants only customer-observed fixes published, this is the entry to cut.SELECTclause, which is the softer of the two claims.enable_compute_correction_v2istrue) with real figures — 3503 ms → 1897 ms, 1.6x–2.0x — but every one is a bench of the buffer's owninsertpath, not of materialized-view ingest. If the compute team can supply a hydration or lag number, publish these as one Improvement; the per-clause provenance is already drafted in the review notes.environmentdwith the exactInvalid Parquet file. Corrupt footerdefect that #39115 fixes and this release publishes. Same call as #39125 in v26.44.0 rc.1. If a reviewer restores it, it is a Bug Fix.materialize-docs→mz-docsrename, whose user-visible half shipped in v26.44.0). Accounted for inomitted.mdunder "Already published in an earlier release".Inclusion rate: rc.1 is 7.0% (16/229), inside the usual 5–15% band; rc.2 is 1/1, rc.3 is 2/2, rc.4 is 0/2 and
finalis 1/6, which is the expected shape for a late RC and a final — the set is cherry-picks a release manager has already filtered down, and at a denominator of one to six the percentage carries no signal. rc.1's denominator is dominated by automation: 125 of the 225 materialize PRs are dependency bumps, 65 of them a single Dependabot fan-out of thematerialize-terraform-self-managedmodules from 13.10.0 to 13.12.1 across fivetest/terraformdirectories — #39282 groups future Terraform releases into one PR so it does not recur. Strip the dependency bumps and rc.1's materialize side is 15 included out of 100 (15%). A further 22 PRs are CI/test-harness repair and 14 are documentation.The agent-skills windows for rc.2
(2026-10-02T02:23:01Z, 2026-10-02T22:33:36Z]and rc.3(2026-10-02T22:33:36Z, 2026-10-02T23:08:27Z]are both empty, re-checked against a widened query. MaterializeInc/agent-skills#88 (an automatedmz-docsregeneration, omitted as every prior run of that workflow was) lands in rc.4's window(2026-10-02T23:08:27Z, 2026-10-05T14:28:59Z], notfinal's — rc.2 and rc.3 both predictedfinalon the assumption that rc.3 was the last candidate, and rc.4 being cut opened a window first.final's window is(2026-10-05T14:28:59Z, 2026-10-07T17:06:08Z]and holds 5 PRs. The windows abut exactly and nothing is double-counted. MaterializeInc/agent-skills#79 merged 15 min 26 s after rc.4's upper bound and falls tofinal; the margin is small enough that a date-only window would have wrongly pulled it in, so full ISO timestamps were used.Snapshot drafts (with PR links) in mz-skills:
Borderline PRs omitted: rc.1: 12 — review borderline calls, rc.2: 0 — none, rc.3: 0 — none, rc.4: 1 — review borderline call, final: 1 — review borderline call