Skip to content

Prepare v4.7.0: shared gRPC foundation and compatibility fixes - #75

Merged
MaxAkbar merged 4 commits into
mainfrom
max/network-integration
Oct 28, 2026
Merged

MaxAkbar merged 4 commits into
mainfrom
max/network-integration

Conversation

@MaxAkbar

@MaxAkbar MaxAkbar commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

Prepare CSharpDB 4.7.0 with the shared SDK/ADO.NET gRPC pool and session foundation. Matching rentals share bounded physical clients while retaining credential/route isolation, transaction ownership, cancellation, draining and stale-rental protections. Add explicit native HTTP/2 selection and experimental persistent command sessions; Auto/unary defaults remain in place.

Prevent schema-admission deadlocks by releasing the client lifecycle lock while a transaction waits to begin. Pin the shared database during admission, recheck cancellation/shutdown before registration, and cancel and drain unpublished transactions during disposal. Preserve canceled completion recovery when cancellation races an operation-lock handoff.

Fix archive-backed SQL in the published native library with generated schema/manifest JSON metadata that preserves existing bytes, legacy defaults and enum/null rejection. Add a published NativeAOT C API archive smoke, fail native publication on trimming/AOT warnings, include all 27 test modules in PR CI, and update the optional SQL Server adapter's PKCS dependency to 9.0.22 with matching exact inventories.

Support private migration reject-artifact publication on Linux tmpfs. Unsupported optional ACL attribute families are handled on this known POSIX filesystem; owner, mode, link, identity and actual ACL checks remain enforced. This corrects the three Ubuntu CLI failures, reproduced locally on tmpfs while the same tests passed on ext4.

Bump 4.6.6 to 4.7.0 for the additive public APIs. Current release notes, the versioned Unreleased website summary and its notes digest are aligned. Stable publication history and downloads continue to describe the published 4.6.6 release.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Refactor / maintenance
  • Tests only

Related Issues

No linked issue.

Testing

  • Final transaction-lifecycle correction on Windows and Linux: 3,536 Core tests, 595 Data tests and 79 daemon lifetime/pooling/task tests pass per platform. Both solution builds have zero warnings/errors; documentation, changelog and download guards pass.
  • Add 14 direct/socket regression cases covering schema-owner commit/rollback, pending-begin cancellation/disposal, unpublished-transaction cleanup, cached-owner protection and cancellation at operation-lock handoff. Four controlled cases fail before their corresponding fixes; failed evidence is retained.

The first Windows correction candidate exposed a cancellation-handoff failure, now fixed with a deterministic regression, and an allocation assertion in the unchanged WAL test. The isolated WAL check and final full suites pass. Both initial failures remain in the validation evidence. This correction reruns the complete Core/Data suites and the selected daemon classes locally; the remaining modules run in normal PR CI.

  • Linux: 531/531 migration tests and 410 CLI tests passed, one optional-provider skip.
  • All three original CLI failures pass on tmpfs after the fix; their failed tmpfs and passing ext4 baselines are retained.
  • All 50 report-writer cases pass on tmpfs, including four new regression cases that fail against the original code. These verify exact-byte reuse, mode 0600, rejection of group/other permissions, and rejection of an actual POSIX ACL whose zero mask leaves mode 0600.
  • Windows: all 50 report-writer cases pass. Changed Linux/Windows build graphs have zero warnings/errors; documentation/changelog/download guardrails pass.
  • Release-preparation solution build, package/assembly version checks and 34 archive compatibility/JSON cases passed at 4.7.0 before the tmpfs correction.

Earlier foundation/integration validation covered all 27 modules on Windows (8,992 passed, four provider skips) and Linux/ext4 (8,989 passed, seven platform/provider skips). The Linux aggregate uses one unchanged 434/434 daemon confirmation after an initial release-script mock timeout; both attempts are retained. Both platforms passed strict native/archive/observability publication, runtime smokes, 45-export verification, dependency auditing and SQL Server bundle isolation.

Hosted checks for the current revision are shown on the PR.

Checklist

  • I followed the project style and conventions.
  • I added or updated tests for behavior changes.
  • I covered both success and failure paths for changed behavior.
  • I updated docs for user-facing changes.
  • I verified no sensitive data was added.

Notes for Reviewers

The PR includes the shared-foundation checkpoint, integration fixes and release preparation; most of the diff is foundation regression coverage and its diagnostic harness. Streaming remains experimental and opt-in. Custom TCP and rejected optimization candidates are excluded; no verified network speedup is claimed. Native archive checks cover the C API and do not establish remote-gRPC NativeAOT support.

The tmpfs correction keeps the filesystem allowlist restricted to ext2/3/4 and tmpfs for EOPNOTSUPP. Actual ACLs, unexpected errors and unknown filesystems remain rejected. The Linux kernel documentation describes tmpfs permissions and POSIX ACL support.

Tagging, GitHub Release and NuGet publication follow merge and release qualification.

Retain shared SDK/ADO.NET pooling, opt-in native gRPC sessions, result schema
reuse and scalar projection with their engine ownership dependencies.

Preserve routed streaming options, cover commit-preparation disposal, retain
public Task lifetime regressions, and isolate global telemetry assertions.
Close the rejected tuning studies without a new performance claim.

Validation: Windows SDK10.0.403; solution build0warnings/errors; 27modules,
8985passing tests and4opt-in live-provider skips. Corrected observability
isolation suite134/134; original failed run retained. Documentation and
package/EF guards pass.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T20:02:22.890129Z 4c4fd4f PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4c4fd4f426

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@MaxAkbar MaxAkbar changed the title Prepare v4.7.0: shared gRPC sessions and native archive fixes Prepare v4.7.0: shared gRPC foundation and compatibility fixes Oct 27, 2026
@MaxAkbar
MaxAkbar merged commit a8e21be into main Oct 28, 2026
15 checks passed
@MaxAkbar
MaxAkbar deleted the max/network-integration branch October 28, 2026 14:37
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.

2 participants