question(test): stable request storage for existing EINTR scenarios

Open
#2,291 0 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@dnlrsls is already working on this.

Since Nov 5, 2026.

Assessment

This issue has not been assessed yet.

Description

status:needs-review type:question
Existing Issue Search
  • I searched existing issues and will add evidence to a canonical tracker when applicable.
    Related #2286 / PR #2287 concern the newly added errno regression; #1846 delivered the dependency fix. This follow-up is limited to the older four-scenario request buffer, not an observed SQLite production failure.
Question

Should the pre-existing TestSQLiteLibcSleepEINTRChild request buffer also use stable TLS/C storage instead of forwarding a Go-stack timespec address through uintptr to the translated libc Go calls?

Why does this need issue tracking?

CodeRabbit's #2287 review exposed the same ABI pattern in the new errno test and the older sleep helper. The new-test correction is 9941875081635ec3952aa2c7f898919ee1e51fa7. Ordinary native Linux compiler output on the pre-follow-up PR candidate 95035d3e places the old helper req at req+96(SP) and passes its address to Xnanosleep; the old helper source is unchanged from canonical main 5dfd6faa. The pinned libc forwards uintptr through additional Go calls. KeepAlive preserves liveness, not stack address stability. Instrumentation can change escape/allocation behavior, so successful checkptr runs alone do not settle the ordinary-build concern.

No runtime corruption or production SQLite regression was reproduced. The existing four native scenarios pass in ordinary and race/checkptr builds. This tracker preserves an investigation/follow-up decision without silently expanding the errno-only review correction or claiming a runtime defect.

Affected Area

Store (database, queries) — Linux/amd64 test helper only.

Release Context

Main 5dfd6faa67684097eb8d20f69f773a18c4ae274b, compared unchanged helper on PR2287 head95035d3e; Go1.26.10, libc1.75.6.

Additional Context

Review https://github.com/Gentleman-Programming/engram/pull/2287#discussion_r4486032805. Before any follow-up implementation, confirm the ordinary-build ABI/lifetime evidence and accept the bounded design. Keep all four scenarios, 12 targeted deliveries, original absolute/relative deadlines, isolated child ownership, assertions and dependency pins. Verify ordinary native Linux, race/checkptr and vet. Do not disable analyzers, extend timeouts or represent this as a reproduced production failure.

Dominant language
Go
Stars
7.1k
Forks
729
Avg merge
11h 47m
Merged PRs (30d)
284

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Gentleman-Programming/engram

All issues in Gentleman-Programming/engram

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.