Skip to content

Cherry-picking latest commits from main into dev#1624

Merged
TalZaccai merged 21 commits intodevfrom
talzacc/cherry_picking
Mar 13, 2026
Merged

Cherry-picking latest commits from main into dev#1624
TalZaccai merged 21 commits intodevfrom
talzacc/cherry_picking

Conversation

@TalZaccai
Copy link
Contributor

Commits made between 02/27/26 to 03/12/26

dependabot bot and others added 18 commits March 12, 2026 16:13
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.52.3 to 0.55.1.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.55.1/packages/docusaurus-search-local)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-version: 0.55.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.101 to 10.0.103.
- [Release notes](https://github.com/dotnet/sdk/releases)
- [Commits](dotnet/sdk@v10.0.101...v10.0.103)

---
updated-dependencies:
- dependency-name: dotnet-sdk
  dependency-version: 10.0.103
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vasileios Zois <96085550+vazois@users.noreply.github.com>
* fix failing ClusterReplicationStoredProc

* revert logging
* update dockerfiles

* Fix Docker build issues: libaio path, tdnf, and workflow image names

- Dockerfile: Add libaio.so.1t64 -> libaio.so.1 symlink for Ubuntu 24.04 t64 compat
- Dockerfile.ubuntu: Copy libaio.so.1t64 and create libaio.so.1 symlink
  (consistent with CI workaround and Dockerfile)
- Dockerfile.cbl-mariner: Revert dnf back to tdnf (Azure Linux 3.0 uses tdnf)
- docker-linux.yml: Update GHCR image names to match new base OS
  (jammy -> noble, cbl-mariner2.0 -> azurelinux3.0)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix Alpine Lua SIGSEGV: remove glibc-compiled KeraLua liblua54.so

The KeraLua NuGet package bundles a glibc-compiled liblua54.so that gets
published to /app/liblua54.so. On Alpine (musl libc), .NET loads this
glibc binary first (app dir takes priority), causing SIGSEGV on any Lua
EVAL command. Remove it in the build stage so .NET falls through to the
musl-compiled system Lua library via the runtime symlink.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add libaio to chiseled image for native device support

The chiseled (distroless) image was missing libaio.so.1, causing
--device-type Native to fail with 'libaio.so.1: cannot open shared
object file'. Add libaio1t64 to the libs-builder stage and copy both
the library and compat symlink into the final chiseled image.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix Dockerfile.ubuntu libaio arm64 arch mismatch

Remove the hardcoded --platform=linux/amd64 builder stage that always
copied x86_64 libaio into the runtime image regardless of target arch.
Install libaio1t64 directly in the runtime stage via apt-get (alongside
liblua5.4-0) so the correct architecture library is installed, matching
the approach used in the default Dockerfile.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add Docker image validation test script

Comprehensive Python script that verifies all 5 Linux Docker images:
- Build all Dockerfiles
- Basic server tests (PING, SET, GET)
- Lua EVAL scripting
- Default device persistence (all platforms incl. Alpine)
- Native device persistence (glibc platforms)
- Library resolution checks (libaio, liblua54, libnative_device)
- Optional multi-platform buildx (amd64+arm64)

Usage: python3 test/docker-tests/validate_docker_images.py [--skip-build] [--multiplatform] [--images ...]

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove dead libaio copy in chiseled prep-runtime stage

The libaio files copied into prep-runtime's /usr/lib were never
transferred to the final chiseled image (only /usr/share/dotnet/shared
is copied from prep-runtime). The final image already gets libaio
directly from libs-builder. Remove the unused copy/symlink steps.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Rename Dockerfile.cbl-mariner to Dockerfile.azurelinux

The runtime base image is now azurelinux3.0 and the CI publishes as
-azurelinux3.0. Rename the Dockerfile to match and update the workflow
matrix and test script references.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Use native lua-libs package on Azure Linux instead of Ubuntu copy

Azure Linux 3.0 ships lua-libs (providing /usr/lib/liblua-5.4.so) in
the base runtime image. Use a symlink to this native library instead of
copying a cross-distro binary from an Ubuntu builder stage. This avoids
potential glibc ABI compatibility issues and removes an unnecessary
build stage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Use synchronous SAVE instead of BGSAVE+sleep in Docker tests

SAVE blocks until the checkpoint completes and returns, eliminating the
race condition from the sleep-based BGSAVE approach.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…#1601)

* Initial plan

* initial plan

Co-authored-by: TalZaccai <18443527+TalZaccai@users.noreply.github.com>

* Fix 7 Dependabot security vulnerabilities in website npm dependencies

- Add yarn resolutions for minimatch (3.1.5) and serialize-javascript (7.0.4)
- Add npm overrides for minimatch (3.1.5) and serialize-javascript (7.0.4)
- ajv updated to 6.14.0 (^6.x) and 8.18.0 (^8.x) via yarn re-resolution
- Fixes: GHSA-2g4f-4pwh-qvx6 (ajv ReDoS), GHSA-3ppc-4f35-3m26,
  GHSA-7r86-cg39-jmmj, GHSA-23c5-xmqv-rm74 (minimatch ReDoS),
  GHSA-5c6j-r48x-rmvq (serialize-javascript RCE)

Co-authored-by: TalZaccai <18443527+TalZaccai@users.noreply.github.com>

* Remove yarn v1 resolutions from website/package.json

Per review feedback, the resolutions field is unnecessary since yarn v1
is not used. The npm overrides field handles dependency pinning.

Co-authored-by: TalZaccai <18443527+TalZaccai@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: TalZaccai <18443527+TalZaccai@users.noreply.github.com>
Co-authored-by: Tal Zaccai <talzacc@microsoft.com>
* Bump the nuget-deps group with 14 updates

Bumps diskann-garnet from 1.0.23 to 1.0.25
Bumps Microsoft.Extensions.Configuration.Binder from 10.0.2 to 10.0.3
Bumps Microsoft.Extensions.Configuration.Json from 10.0.2 to 10.0.3
Bumps Microsoft.Extensions.Logging from 10.0.2 to 10.0.3
Bumps Microsoft.Extensions.Logging.Configuration from 9.0.8 to 10.0.3
Bumps Microsoft.Extensions.Logging.Console from 9.0.8 to 10.0.3
Bumps Microsoft.IdentityModel.Protocols.OpenIdConnect from 8.6.1 to 8.16.0
Bumps Microsoft.IdentityModel.Validators from 8.6.1 to 8.16.0
Bumps Microsoft.NET.Test.Sdk from 18.0.1 to 18.3.0
Bumps NUnit from 4.1.0 to 4.5.0
Bumps NUnit3TestAdapter from 4.6.0 to 6.1.0
Bumps StackExchange.Redis from 2.9.25 to 2.11.8
Bumps System.IdentityModel.Tokens.Jwt from 8.6.1 to 8.16.0
Bumps System.Numerics.Tensors from 9.0.9 to 10.0.3

---
updated-dependencies:
- dependency-name: diskann-garnet
  dependency-version: 1.0.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: Microsoft.Extensions.Configuration.Binder
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: Microsoft.Extensions.Configuration.Json
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: Microsoft.Extensions.Logging
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: Microsoft.Extensions.Logging.Configuration
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nuget-deps
- dependency-name: Microsoft.Extensions.Logging.Console
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nuget-deps
- dependency-name: Microsoft.IdentityModel.Protocols.OpenIdConnect
  dependency-version: 8.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: System.IdentityModel.Tokens.Jwt
  dependency-version: 8.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: Microsoft.IdentityModel.Validators
  dependency-version: 8.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 18.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: NUnit
  dependency-version: 4.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: NUnit3TestAdapter
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nuget-deps
- dependency-name: StackExchange.Redis
  dependency-version: 2.11.8
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: System.Numerics.Tensors
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nuget-deps
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix changes in API

* revert unit test upgrade

* Add ConfigureAwait(false) to all test await expressions to fix NUnit 4.5 deadlock (#1593)

* Initial plan

* Add .ConfigureAwait(false) to all await expressions in test files

Add .ConfigureAwait(false) to every await expression across 38 test
files under test/ to follow best practices for library/test code and
avoid potential deadlocks in synchronization contexts.

- Handles single-line and multi-line await expressions
- Handles ternary await expressions (both branches)
- Skips await foreach and await using (already correct)
- Excludes Task.Yield() which returns YieldAwaitable (no ConfigureAwait support)
- No changes outside test/ directory

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Vasileios Zois <96085550+vazois@users.noreply.github.com>

* upgrade nunit

* Fix MigrateVector cluster tests for StackExchange.Redis 2.11.8 (#1595)

* Initial plan

* Fix MigrateVector tests to handle transient errors from StackExchange.Redis 2.11.8

Co-authored-by: vazois <96085550+vazois@users.noreply.github.com>

* Fix MigrateVector tests: use Exception catch + specific MOVED message patterns for SE.Redis 2.11.8

Co-authored-by: vazois <96085550+vazois@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vazois <96085550+vazois@users.noreply.github.com>

* revert diskann version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vasileios Zois <vazois@microsoft.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Vasileios Zois <96085550+vazois@users.noreply.github.com>
Co-authored-by: Tal Zaccai <talzacc@microsoft.com>
…F operations (#1599)

* SkipChecksum validation testing and fix

* validate HLL format with skipRDBRestoreChecksumValidation

* add tests that cover different length encoding

* add full sparse stream validation

* skipRDBRestoreChecksumValidation for slot validation tests

* remove double validation and fix buffer swap

* reduce test overhead

* fix redirection tests for RESTORE

* eliminate SkipRDBRestoreChecksumValidation option

* Bump the nuget-deps group with 14 updates (#1592)

* Bump the nuget-deps group with 14 updates

Bumps diskann-garnet from 1.0.23 to 1.0.25
Bumps Microsoft.Extensions.Configuration.Binder from 10.0.2 to 10.0.3
Bumps Microsoft.Extensions.Configuration.Json from 10.0.2 to 10.0.3
Bumps Microsoft.Extensions.Logging from 10.0.2 to 10.0.3
Bumps Microsoft.Extensions.Logging.Configuration from 9.0.8 to 10.0.3
Bumps Microsoft.Extensions.Logging.Console from 9.0.8 to 10.0.3
Bumps Microsoft.IdentityModel.Protocols.OpenIdConnect from 8.6.1 to 8.16.0
Bumps Microsoft.IdentityModel.Validators from 8.6.1 to 8.16.0
Bumps Microsoft.NET.Test.Sdk from 18.0.1 to 18.3.0
Bumps NUnit from 4.1.0 to 4.5.0
Bumps NUnit3TestAdapter from 4.6.0 to 6.1.0
Bumps StackExchange.Redis from 2.9.25 to 2.11.8
Bumps System.IdentityModel.Tokens.Jwt from 8.6.1 to 8.16.0
Bumps System.Numerics.Tensors from 9.0.9 to 10.0.3

---
updated-dependencies:
- dependency-name: diskann-garnet
  dependency-version: 1.0.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: Microsoft.Extensions.Configuration.Binder
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: Microsoft.Extensions.Configuration.Json
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: Microsoft.Extensions.Logging
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: Microsoft.Extensions.Logging.Configuration
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nuget-deps
- dependency-name: Microsoft.Extensions.Logging.Console
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nuget-deps
- dependency-name: Microsoft.IdentityModel.Protocols.OpenIdConnect
  dependency-version: 8.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: System.IdentityModel.Tokens.Jwt
  dependency-version: 8.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: Microsoft.IdentityModel.Validators
  dependency-version: 8.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 18.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: NUnit
  dependency-version: 4.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: NUnit3TestAdapter
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nuget-deps
- dependency-name: StackExchange.Redis
  dependency-version: 2.11.8
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: System.Numerics.Tensors
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nuget-deps
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix changes in API

* revert unit test upgrade

* Add ConfigureAwait(false) to all test await expressions to fix NUnit 4.5 deadlock (#1593)

* Initial plan

* Add .ConfigureAwait(false) to all await expressions in test files

Add .ConfigureAwait(false) to every await expression across 38 test
files under test/ to follow best practices for library/test code and
avoid potential deadlocks in synchronization contexts.

- Handles single-line and multi-line await expressions
- Handles ternary await expressions (both branches)
- Skips await foreach and await using (already correct)
- Excludes Task.Yield() which returns YieldAwaitable (no ConfigureAwait support)
- No changes outside test/ directory

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Vasileios Zois <96085550+vazois@users.noreply.github.com>

* upgrade nunit

* Fix MigrateVector cluster tests for StackExchange.Redis 2.11.8 (#1595)

* Initial plan

* Fix MigrateVector tests to handle transient errors from StackExchange.Redis 2.11.8

Co-authored-by: vazois <96085550+vazois@users.noreply.github.com>

* Fix MigrateVector tests: use Exception catch + specific MOVED message patterns for SE.Redis 2.11.8

Co-authored-by: vazois <96085550+vazois@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vazois <96085550+vazois@users.noreply.github.com>

* revert diskann version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vasileios Zois <vazois@microsoft.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Vasileios Zois <96085550+vazois@users.noreply.github.com>
Co-authored-by: Tal Zaccai <talzacc@microsoft.com>

* cleanup unused properties

* add more comments at HLL validation

* add test that bypasses crc check by faking it while corrupting the HLL payload

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Tal Zaccai <talzacc@microsoft.com>
* Initial plan

* Initial plan for fixing dependabot security issues

Co-authored-by: TalZaccai <18443527+TalZaccai@users.noreply.github.com>

* Fix dompurify vulnerability: upgrade to 3.3.1 via overrides and resolutions

Co-authored-by: TalZaccai <18443527+TalZaccai@users.noreply.github.com>

* Remove resolutions from package.json per review feedback

Co-authored-by: TalZaccai <18443527+TalZaccai@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: TalZaccai <18443527+TalZaccai@users.noreply.github.com>
Co-authored-by: Tal Zaccai <talzacc@microsoft.com>
Bumps [svgo](https://github.com/svg/svgo) from 3.3.2 to 3.3.3.
- [Release notes](https://github.com/svg/svgo/releases)
- [Commits](svg/svgo@v3.3.2...v3.3.3)

---
updated-dependencies:
- dependency-name: svgo
  dependency-version: 3.3.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* add configureAwait(false) to async await calls

* manual search configureAwait

* fix formatting

* fix formatting for Tsavorite
* bound validation for max 512MB strings

* add BITPOS validation

* add BITCOUNT offset validation

* addressing comments

* fix slot verification test

* addressing comments

* making check in backend bitfield call Debug.Assert

* fix formatting

* fix Release build
* Fix TTL rounding to match Redis behavior (#1389)

Redis rounds TTL seconds to the nearest integer (equivalent to (ms+500)/1000),
while Garnet was truncating (flooring) via a direct (long) cast. This caused
SET+EXPIRE 10+TTL to return 9 instead of 10 when called immediately.

Fix: Use Math.Round(MidpointRounding.AwayFromZero) in both
SecondsFromDiffUtcNowTicks and MillisecondsFromDiffUtcNowTicks in
ConvertUtils.cs.

Added TtlRoundingTest to verify string and object keys return the expected
TTL value immediately after EXPIRE.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* updates

* updates

* increase test timing tolerance

* update

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ci: use orphan commits for deploy branches to reduce clone size

Use orphan commits (single commit, no history) for gh-pages,
allure_data_history, and benchmark branches to prevent large generated
files from accumulating across hundreds of commits, which bloats the
repository pack file and slows git clone.

- deploy-website: add force_orphan: true to peaceiris/actions-gh-pages
- nightly: rewrite allure_data_history push as orphan commit
- new workflow: daily squash of continuousbenchmark branches

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* updates

---------

Co-authored-by: badrishc <badrishc@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Tal Zaccai <talzacc@microsoft.com>
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.3.1 to 3.3.3.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](cure53/DOMPurify@3.3.1...3.3.3)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.3.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* add more functions to block list

* fix test

---------

Co-authored-by: badrishc <badrishc@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 12, 2026 23:46
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR cherry-picks a broad set of recent changes from main into dev, spanning build/runtime upgrades, Docker/CI adjustments, security hardening, bitmap command validation fixes, and widespread test reliability updates (notably adding ConfigureAwait(false)).

Changes:

  • Upgrade repo build/runtime targeting to .NET 10 (SDK, Docker images) and refresh several NuGet/website dependency pins.
  • Harden and fix server behaviors: bitmap offset validation/normalization, Lua sandbox restrictions, transaction replay behavior, and RESTORE checksum validation.
  • Update CI/workflows to prevent long-lived branch history bloat; update tests for async correctness and new validation edge cases.

Reviewed changes

Copilot reviewed 99 out of 101 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
website/package.json Bumps Docusaurus search plugin; adds dependency override pins.
test/Garnet.test/UnixSocketTests.cs Adds ConfigureAwait(false) and normalizes file header.
test/Garnet.test/TransactionTests.cs Adds ConfigureAwait(false) for async calls; header normalization.
test/Garnet.test/TaskManagerTests.cs Adds ConfigureAwait(false) for async waits/cancels; header normalization.
test/Garnet.test/RespTlsTests.cs Adds ConfigureAwait(false) to async client operations; header normalization.
test/Garnet.test/RespSortedSetGarnetClientTests.cs Adds ConfigureAwait(false) in async test code paths; header normalization.
test/Garnet.test/RespSetTest.cs Adds ConfigureAwait(false) to async client commands; header normalization.
test/Garnet.test/RespRevivificationTests.cs Adds ConfigureAwait(false) to async operations; header normalization.
test/Garnet.test/RespListTests.cs Adds ConfigureAwait(false) in async list tests; header normalization.
test/Garnet.test/RespListGarnetClientTests.cs Adds ConfigureAwait(false) in async GarnetClient tests; header normalization.
test/Garnet.test/RespInfoTests.cs Adds ConfigureAwait(false) for hydration/delays; header normalization.
test/Garnet.test/RespHashTests.cs Adds ConfigureAwait(false) and adjusts TTL assertion behavior; header normalization.
test/Garnet.test/RespEtagTests.cs Adds ConfigureAwait(false) and updates TTL return type assertions.
test/Garnet.test/RespCustomCommandTests.cs Adds ConfigureAwait(false) to async operations; header normalization.
test/Garnet.test/RespBlockingCollectionTests.cs Adds ConfigureAwait(false) for delays; header normalization.
test/Garnet.test/Resp/GarnetAuthenticatorTests.cs Adds ConfigureAwait(false) and ignores unused async results; header normalization.
test/Garnet.test/Resp/ACL/SetUserTests.cs Adds ConfigureAwait(false) to ACL async calls; header normalization.
test/Garnet.test/Resp/ACL/ParallelTests.cs Adds ConfigureAwait(false) in parallel async usage and waits; header normalization.
test/Garnet.test/Resp/ACL/GetUserTests.cs Adds ConfigureAwait(false) for DB async calls; header normalization.
test/Garnet.test/Resp/ACL/DeleteUserTests.cs Adds ConfigureAwait(false) for ACL async calls; header normalization.
test/Garnet.test/Resp/ACL/BasicTests.cs Adds ConfigureAwait(false) to ACL-related async calls; header normalization.
test/Garnet.test/Resp/ACL/AclConfigurationFileTests.cs Adds ConfigureAwait(false) for ACL file tests; header normalization.
test/Garnet.test/ObjectTestsForOutput.cs Adds ConfigureAwait(false) to async batch tests; header normalization.
test/Garnet.test/LuaScriptTests.cs Updates sandbox expectations around load/loadstring; adds ConfigureAwait(false) in delays.
test/Garnet.test/LuaScriptRunnerTests.cs Adds tests asserting sandbox does not expose load/loadstring; updates allowed globals list.
test/Garnet.test/GarnetServerConfigTests.cs Adds ConfigureAwait(false) in async command calls; header normalization.
test/Garnet.test/GarnetObjectTests.cs Adds ConfigureAwait(false) around checkpoint async operations; header normalization.
test/Garnet.test/GarnetClientTests.cs Adds ConfigureAwait(false) broadly in async client tests; header normalization.
test/Garnet.test/GarnetBitmapTests.cs Adds boundary/arity tests for bitmap commands and parsing/validation edge cases.
test/Garnet.test/ExpiredKeyDeletionTests.cs Adds ConfigureAwait(false) to delays/invocations; header normalization.
test/Garnet.test.cluster/ReplicationTests/ClusterResetDuringReplicationTests.cs Adds ConfigureAwait(false) to delays; header normalization.
test/Garnet.test.cluster/ReplicationTests/ClusterReplicationBaseTests.cs Expands stored-proc replication test scenarios; adds ConfigureAwait(false) usage.
test/Garnet.test.cluster/RedirectTests/ClusterSlotVerificationTests.cs Adds object-parameter execution path for SERedis; alters GarnetClientSession coverage.
test/Garnet.test.cluster/RedirectTests/BaseCommand.cs Adds object-parameter request generation (RESTORE); adjusts BITCOUNT request args.
test/Garnet.test.cluster/ClusterTestUtils.cs Adds ConfigureAwait(false) to delay in epoch sync loop; header normalization.
test/Garnet.test.cluster/ClusterTestContext.cs Expands XML doc comment parameter list for CreateInstances signature.
test/Garnet.test.cluster/ClusterNegativeTests.cs Adds ConfigureAwait(false) to delay; header normalization.
test/Garnet.test.cluster/ClusterMigrateTests.cs Adds ConfigureAwait(false) to async execute/waits; header normalization.
test/Garnet.test.cluster/ClusterMigrateTLSTests.cs Adds ConfigureAwait(false) in wrapper async call; header normalization.
test/Garnet.test.cluster/ClusterManagementTests.cs Adds ConfigureAwait(false) to delays; header normalization.
libs/storage/Tsavorite/cs/test/UnsafeContextTests.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/TransactionalUnsafeContextTests.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/TestUtils.cs Adds ConfigureAwait(false) to Task.WhenAll; header normalization.
libs/storage/Tsavorite/cs/test/StateMachineDriverTests.cs Adds ConfigureAwait(false) across async waits/operations; header normalization.
libs/storage/Tsavorite/cs/test/SimpleRecoveryTest.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/SharedDirectoryTests.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/RecoveryTests.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/RecoverReadOnlyTest.cs Adds ConfigureAwait(false) across delays/async enumerables; header normalization.
libs/storage/Tsavorite/cs/test/ReadAddressTests.cs Adds ConfigureAwait(false) and async flush usage adjustments; header normalization.
libs/storage/Tsavorite/cs/test/ObjectRecoveryTest3.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/ObjectRecoveryTest2.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/ObjectRecoveryTest.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/LogResumeTests.cs Adds ConfigureAwait(false) across enqueue/commit/async enumeration; header normalization.
libs/storage/Tsavorite/cs/test/LogRecoverReadOnlyTests.cs Adds ConfigureAwait(false) across delays/recovery/enumerables; header normalization.
libs/storage/Tsavorite/cs/test/LargeObjectTests.cs Adds ConfigureAwait(false) for checkpoint completion; header normalization.
libs/storage/Tsavorite/cs/test/FlakyDeviceTests.cs Adds ConfigureAwait(false) for commit and async enumerables; header normalization.
libs/storage/Tsavorite/cs/test/EnqueueTests.cs Adds ConfigureAwait(false) to enqueue/commit operations; header normalization.
libs/storage/Tsavorite/cs/test/EnqueueAndWaitForCommit.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/DeviceLogTests.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/ComponentRecoveryTests.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/CompletePendingTests.cs Adds ConfigureAwait(false); header normalization.
libs/storage/Tsavorite/cs/test/CheckpointManagerTests.cs Adds ConfigureAwait(false) for checkpoint completion; header normalization.
libs/server/Transaction/TxnKeyManager.cs Skips cluster slot verification during transaction proc replay.
libs/server/Transaction/TransactionManager.cs Introduces replay flag propagation to skip finalize & slot verification during AOF replay.
libs/server/Storage/Session/MainStore/HyperLogLogOps.cs Fixes merge-buffer pointer assignment order.
libs/server/Storage/Functions/MainStore/PrivateMethods.cs Improves bitmap argument parsing/types; validates BITFIELD offsets; adjusts BITCOUNT/BITPOS parsing.
libs/server/Servers/ServerOptions.cs Removes option to skip RESTORE checksum validation.
libs/server/Resp/KeyAdminCommands.cs Always validates RESTORE CRC; removes skip-path.
libs/server/Resp/HyperLogLog/HyperLogLog.cs Tightens HLL sparse validation and construction; improves sparse stream validation.
libs/server/Resp/Bitmap/BitmapManagerBitfield.cs Adds bitfield offset validation and DEBUG assertions; adjusts end offset handling.
libs/server/Resp/Bitmap/BitmapManagerBitPos.cs Uses long-safe bit length calculations; reduces int narrowing in bit scanning.
libs/server/Resp/Bitmap/BitmapManagerBitCount.cs Normalizes/clamps BITCOUNT offsets and handles empty/oversized ranges more safely.
libs/server/Resp/Bitmap/BitmapManager.cs Adds max bitmap payload/offset limits and helpers; strengthens bounds checks.
libs/server/Resp/Bitmap/BitmapCommands.cs Validates offsets/arity more strictly for bitmap commands; supports BIT/BYTE flag parsing.
libs/server/Lua/LuaRunner.Loader.cs Removes load/loadstring from sandbox exported functions.
libs/server/Custom/CustomRespCommands.cs Renames recovery flag to replay flag and propagates through transaction proc execution.
libs/server/AOF/ReplayCoordinator/AofReplayCoordinator.cs Marks stored-proc execution as replay to adjust transaction behavior.
libs/host/defaults.conf Removes SkipRDBRestoreChecksumValidation from default config.
libs/host/Configuration/Options.cs Removes CLI option and wiring for skipping RESTORE checksum validation.
libs/common/ConvertUtils.cs Changes tick-to-seconds/milliseconds conversion behavior (more integer-based).
libs/cluster/Session/SlotVerification/RespClusterIterativeSlotVerify.cs Avoids writing cached error output when verification state is OK.
global.json Updates .NET SDK version to 10.0.103.
Dockerfile.ubuntu Switches publish/runtime to net10.0/.NET 10; installs libaio1t64 and adjusts symlinks.
Dockerfile.nanoserver Switches publish/runtime to net10.0/.NET 10.
Dockerfile.chiseled Switches to .NET 10 noble; stages lua+libaio; copies required libs into chiseled image.
Dockerfile.azurelinux Switches runtime to .NET 10 azurelinux3.0; adjusts libaio/lua linking.
Dockerfile.alpine Switches to .NET 10 alpine; removes bundled glibc Lua and uses system Lua; adjusts deps install.
Dockerfile Switches runtime to .NET 10; installs libaio1t64; adjusts multiarch symlinks and lua link.
Directory.Packages.props Updates NUnit/test tooling and several Microsoft.* and StackExchange.Redis package versions.
.github/workflows/squash-benchmark-branches.yml Adds scheduled workflow to squash benchmark branches to a single commit.
.github/workflows/nightly.yml Switches Allure history branch update to orphan/force push to avoid history bloat.
.github/workflows/docker-linux.yml Renames image tags (jammy→noble; mariner→azurelinux) to match new Dockerfiles.
.github/workflows/deploy-website.yml Enables orphan deploys to gh-pages to reduce repo history bloat.
.github/dependabot.yml Groups dependency updates for dotnet/nuget/npm to reduce PR noise.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@TalZaccai TalZaccai requested a review from vazois March 13, 2026 00:07
@TalZaccai TalZaccai merged commit 5ac26bb into dev Mar 13, 2026
28 of 30 checks passed
@TalZaccai TalZaccai deleted the talzacc/cherry_picking branch March 13, 2026 02:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants