Add 3.12.3 release notes Change-Id: I19bd47d98d518969127645bc10376b618b6a8eb4
diff --git a/pages/site/releases/3.12.md b/pages/site/releases/3.12.md index 003cd20..69c59dd 100644 --- a/pages/site/releases/3.12.md +++ b/pages/site/releases/3.12.md
@@ -6,11 +6,13 @@ toc: true --- -Download: **[3.12.2](https://gerrit-releases.storage.googleapis.com/gerrit-3.12.2.war)** +Download: **[3.12.3](https://gerrit-releases.storage.googleapis.com/gerrit-3.12.3.war)** +| [3.12.2](https://gerrit-releases.storage.googleapis.com/gerrit-3.12.2.war) | [3.12.1](https://gerrit-releases.storage.googleapis.com/gerrit-3.12.1.war) | [3.12.0](https://gerrit-releases.storage.googleapis.com/gerrit-3.12.0.war) -Documentation: **[3.12.2](https://gerrit-documentation.storage.googleapis.com/Documentation/3.12.2/index.html)** +Documentation: **[3.12.3](https://gerrit-documentation.storage.googleapis.com/Documentation/3.12.3/index.html)** +| [3.12.2](https://gerrit-documentation.storage.googleapis.com/Documentation/3.12.2/index.html) | [3.12.1](https://gerrit-documentation.storage.googleapis.com/Documentation/3.12.1/index.html) | [3.12.0](https://gerrit-documentation.storage.googleapis.com/Documentation/3.12.0/index.html) @@ -676,6 +678,186 @@ ## Bugfix releases +### 3.12.3 + +* Bug Fixes + + * [Change 495501](https://gerrit-review.googlesource.com/495501): + `sequence set` SSH command now enforces strictly increasing sequence values. + + Attempts to set a sequence (for `changes`, `accounts`, or `groups`) to a value lower than its + current value are now rejected immediately. + + * [Issue 439435039](https://issues.gerritcodereview.com/issues/439435039): + Check for account existence with username scheme for `HTTP` and `HTTP_LDAP` only. + + Previously, when LDAP authentication was enabled, user lookups were incorrectly performed + using the `username` external ID scheme, which could lead to failed logins. + This change restricts username-based lookups to `HTTP` and `HTTP_LDAP` authentication + protocols only, ensuring `LDAP` uses the correct `gerrit` scheme. + + * [Issue 439859126](https://issues.gerritcodereview.com/issues/439859126): + Return `HTTP 401` for any incoming authentication request with a password longer than `71` chars + + Fixed password validation to explicitly fail when a password is longer than 71 characters, + matching the Bcrypt limitation. This prevents internal errors and ensures clients receive a + proper `HTTP 401 (Unauthorized)` response instead of an internal exception. + + * [Issue 444049514](https://issues.gerritcodereview.com/issues/444049514): + Prevent blocking HTTP calls to wait indefinitely. + + Fixed an issue where, under heavy concurrent Git/HTTP load, some worker threads could remain + stuck indefinitely due to unbounded blocking in synchronous write callbacks. + Blocking callbacks are now properly capped by the configured `httpd.idleTimeout`, ensuring + idle or stalled Git/HTTP requests are terminated and threads are released as expected. + + * [Issue 397701289](https://issues.gerritcodereview.com/issues/397701289): + Notify reviewers on change edit in UI. + + Restored reviewer notifications when a change is edited through the web UI. This makes + notification behavior consistent with other change updates, ensuring reviewers are informed when + an edit may require another review. + + * [Change 510442](https://gerrit-review.googlesource.com/510442): + Allow WorkQueue to be used with the failsafe.dev library in the `high-availability` + plugin to schedule retryable tasks. + + * [Issue 446941362](https://issues.gerritcodereview.com/issues/446941362): + Fixed git-upload-pack errors on replicas by skipping unloadable changes. + + Fixed an issue where corrupted or unloadable changes could cause Internal Server Errors during + `git-upload-pack` on replicas. + + * [Issue 456521736](https://issues.gerritcodereview.com/issues/456521736): + Avoid _"change N missing from ChangeSet[][]"_ error when submitting a change with a stale index + entry. + + Fixed an issue where submitting a change could fail if its index entry was out of sync with + the underlying NoteDb data. Gerrit can now backfill missing change information directly from + the repository when the index is stale, ensuring that valid changes can still be submitted + without repeated retries. + + A new configuration option, `change.backfillMergeSuperSet`, controls this behavior. + When enabled, Gerrit reloads change data from the repository instead of failing due to a stale + index, making change submissions more reliable in setups that use asynchronous indexing or + multiple primaries. + + * [Change 497281](https://gerrit-review.googlesource.com/497281): + Fixed the name of the operations endpoint latency metric to ensure accurate per-endpoint + performance tracking. + + Corrected the name of the operations endpoint latency metric, which was previously using the + same name as the general `performance/operations` metric. + + * [Issue 440670678](https://issues.gerritcodereview.com/issues/440670678): + Introduce listener hook for project-wide change index deletions. + + Previously, when all changes for a project were deleted from the index, no listener notifications + were triggered. This prevented plugins such as `high-availability` and `multi-site` from + detecting these deletions and cleaning up related state. + + A new listener hook, `onAllChangesDeletedForProject`, has been added and is now invoked whenever + a project’s indexed changes are removed in bulk. This ensures that dependent plugins are + notified consistently and can react reliably to project-wide deletions. + +* Documentation Updates + + * [Change 500401](https://gerrit-review.googlesource.com/500401): + Document the HTTP password limit of `71` chars. + + * [Change 520901](https://gerrit-review.googlesource.com/520901): + Document the REST API Get Patch `parent` parameter. + + * [Change 515462](https://gerrit-review.googlesource.com/515462): + Remove instructions to build with Java 17. + +* UI Fixes + + * [Change 511981](https://gerrit-review.googlesource.com/511981): + `gr-access-section`: Fix bug with deleting permissions in handleAddedPermissionRemoved. + + Resolved an issue where removing a permission (e.g., Delete Own Changes) could also + unintentionally remove another permission (e.g., `Delete Changes`) and incorrectly display an + `undo` option. The UI now correctly tracks and removes only the selected permission, and the + undo button appears only for previously saved permissions. + + * [Change 515221](https://gerrit-review.googlesource.com/515221): + Allow Change Owners to suggest edits in comments. + + Change owners can now propose suggested edits directly in comments, even if they are not the + original authors of the change. + + * [Change 517961](https://gerrit-review.googlesource.com/517961): + `gr-permission`: Fix deleting rule in `gr-rule-editor`. + + Resolved a UI issue where deleting a rule could affect the wrong entry due to DOM node reuse. + + * [Change 512922](https://gerrit-review.googlesource.com/512922): + Fix rendering of multiple suggested edits when comments contain tabs. + + Previously, only the first suggested edit was shown when a comment contained multiple suggestions. + Now, all suggestions are displayed correctly, allowing users to view and apply each one + individually. + + * [Change 509501](https://gerrit-review.googlesource.com/509501): + `gr-textarea`: Fix `getSelection()` on Safari. + + Resolved an issue in the text area component where pressing `Option + Right Arrow` on Safari + did not move the cursor or update the text selection as expected. + + * [Change 509463](https://gerrit-review.googlesource.com/509463): + Fix bug with `disabledMenuActions` in `gr-change-actions`. + + Fixed a UI issue where menu actions were not properly disabled when `disabledMenuActions` was + set, allowing users to trigger actions multiple times while one was still running. + + * [Issue 445614699](https://issues.gerritcodereview.com/issues/445614699): + Fix deleting text under Firefox when selecting all text. + + Resolved a compatibility issue in the text area component where deleting all selected text did + not work correctly in Firefox. + + * [Issue 440874371](https://issues.gerritcodereview.com/issues/440874371): + Avoid hacking the `GitRepositoryManager` on init, which broke the initialisation of a Gerrit + site with `Zookeeper`. + + Resolved an issue that caused Gerrit site initialization to fail when using a global ref + database such as `Zookeeper`. + +* Enhancements + + * [Issue 440798012](https://issues.gerritcodereview.com/issues/440798012): + Add scheduled reindexing of accounts. + + Add scheduled reindexing of accounts. Previously scheduling reindexing was possible only for + `Changes`, `Projects` and `Groups`. + +* Dependency Updates + + * [Issue 442989229](https://issues.gerritcodereview.com/issues/442989229): + Update Jetty to `9.4.57.v20241219`. + + Please refer to the + `jetty.project` [changelog](https://github.com/jetty/jetty.project/compare/jetty-9.4.53.v20231009...jetty-9.4.57.v20241219) + for details. + +* Plugin changes + + * `delete-project` updated to `b1a05c0c2ef2d5fe60f0c4c5863576707540dbbf` + + Notable changes are: + * [Issue 440670678](https://issues.gerritcodereview.com/issues/440670678): + Use centralized change index deletion when removing a project. + + Updated project deletion to use the higher-level `ChangeIndexer.deleteAllForProject()` API + instead of calling low-level index operations directly. This ensures that all project changes + are removed from the index in bulk and it triggers the appropriate deletion notifications. + + You can retrieve the full list of changes with: + ```shell + git log --no-merges --oneline 08035f1ef90258629346ab033af27c454a7fcc2d..b1a05c0c2ef2d5fe60f0c4c5863576707540dbbf + ``` + ### 3.12.2 * Bug Fixes