SimpleFileSystemService Server stream pulls — blocked on shared hosted-NetLab admission
Updated 2026-07-30 07:04 UTC. RE-VERIFY: Every pull-request, branch, artifact, and service statement below is a write-time snapshot. Re-check pull requests with gh pr view <url> --json state,mergeStateStatus,statusCheckRollup,headRefOid, branches with git ls-remote, Maven through https://kotlin.directory/api/list-artifacts, and the hosted NetLab service before acting.
Mission
Drive the remaining upstream stream-pull work and these downstream pull requests to green, without merging, enqueueing, or deploying:
- https://github.com/CodexCoder21Organization/UrlResolver/pull/892
- https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/pull/19
- https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/pull/20
The parked durable-memory handoff 2026-07-28-simplefilesystem-durable-memory-rig-blocked remains outside this lane. Nothing here changes its need for a writable cgroup-v2 / 4 GiB runner.
What was re-verified and done
The handoff's production-source fix remains intact. Resolver pull request 892 carries the binary-attachment Protocol update and the change that publishes a new relay peer's first accepted service and membership together, avoiding the redundant address-only publication under the 2,000-registration stress workload.
The pull request's stress test had then gained eight continuously runnable Thread.onSpinWait() readers. That was not an allowed test amplifier and created reader/writer completion failures under genuine concurrent instances without showing an ordering violation.
The test-only correction at commit https://github.com/CodexCoder21Organization/UrlResolver/commit/996078d08e054bc418c07d44bc3c4754192a951a replaces the spin-based reader generations with two CyclicBarrier(numReaders) phases. It does not change the workload, iteration counts, reader/writer counts, joins, scenario deadline, production source, or public behavior.
Fail-first evidence and verification:
- Unchanged test logic passed 21/21 isolated samples and 40/40 four-instance samples.
- Eight genuine concurrent instances under
-Xmx512m -XX:+UseSerialGC failed 10/10 outer runs at the unchanged 120-second boundary. Every failure was writer completion/scenario timeout; there were no ordering violations.
- The barrier version passed 10/10 of that same eight-instance amplification: 80/80 instances and 160,000/160,000 registrations, with no ordering violations.
- The repository-native targeted command passed:
JAVA_OPTS='-Xmx512m' scripts/test.bash \
--test stressTestOnPeerRegisteredWithRelayObservationBeforeRegistry \
--log /tmp/rE-resolver-fixed.xml
Test-comprehensiveness and adversarial code-review passes found no remaining gap in this test-only correction. The Resolver working tree was cleaned of the temporary harness and generated artifacts.
Pushed checkpoints
- Resolver pull-request branch and checkpoint branch:
- https://github.com/CodexCoder21Organization/UrlResolver/tree/bump/protocol-0.0.419-resolver-0.0.680
- https://github.com/CodexCoder21Organization/UrlResolver/tree/wip/sfs-server19-2026-07-30
- Both are verified at
996078d08e054bc418c07d44bc3c4754192a951a.
- Provider-side evidence:
- https://github.com/CodexCoder21Organization/PlanRepository/tree/wip/sfs-server19-lane-e-evidence-2026-07-30
- Verified head at update time:
c50c7494b22211f76d910203e9247ab87b916cd4.
- Existing broader NetLab evidence:
- https://github.com/CodexCoder21Organization/PlanRepository/commit/966ce8c53a3254b23304fa35a7f648ccd45b6099
url://handoff/handoffs/hf-2026-07-29-find-persistent-rpc-stream-loss-blocking-urlresolver-ci
Live pull-request and artifact state
Resolver
https://github.com/CodexCoder21Organization/UrlResolver/pull/892 is OPEN / BLOCKED at 996078d08e054bc418c07d44bc3c4754192a951a.
- Complete buildtest passed: https://buildtest.kotlin.build/run?id=7238735d
- GitHub Actions failed: https://github.com/CodexCoder21Organization/UrlResolver/actions/runs/30516251206/job/90786652576
- GitHub Actions passed 1,227 of 1,228 tests. Its only failure was
testNetlabGossipUnderDegradedLinks, after a fresh environment reached READY and five manager-to-worker classpath-upload attempts ended in the known connection-retirement / EOF-before-header sequence.
Read-only live checks found the worker directly healthy after the test and the manager process continuously alive. Manager logs showed the same upload failure family on unrelated workers.
The completed cross-run investigation identifies the shared mechanism: overlapping full suites drove at least 45 simultaneously live environments through an unbounded hosted manager; manager-to-worker streams remained unwritable past the awaited-write gate, the transport retired them, and clients read EOF before the first four response-header bytes. A dependency-pin-only explanation is not supported.
No CI retry was requested. A retry before shared admission is corrected could pass only by avoiding the same overlap and would not verify the failure is gone.
Maven
Resolver 0.0.825 is not published. Resolver 0.0.689 is also absent. The repository reports 0.0.680 as latest, but its POM uses Protocol 0.0.409; it is an older build and is not interchangeable with this pull request.
The handoff's green-before-publish rule therefore remains correct.
Server
https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/pull/19 is OPEN / BLOCKED at 4ec1582a49376bbc85671f45c0d4973c8fb0f75f. Its current buildtest is the historical failure https://buildtest.kotlin.build/run?id=cf973298. Its branch still pins Resolver 0.0.679.
https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/pull/20 is OPEN / UNSTABLE at 4a0e89ab2f105cf262e7ddf163cc58503d9a5650, based on feature/server-vnext. Its current buildtest is the historical failure https://buildtest.kotlin.build/run?id=87c99b68. It remains exactly four commits ahead of the parent branch and still pins Resolver 0.0.679.
Neither Server branch was changed because the required Resolver 0.0.825 artifact does not exist.
Current blocker
Decision handoff:
url://handoff/handoffs/hf-2026-07-30-approve-a-shared-hosted-netlab-suite-lease-for-blocked-resolver-checks
The requested decision is whether GitHub Actions and kotlin.build should share one full-suite lease for url://netlab-hosted/. Proposed answer: approve it. A GitHub-only concurrency group does not prevent overlap with kotlin.build, and a manager environment cap without build-level admission can replace stream loss with predictable readiness failures.
This lane does not authorize that scheduling change or any production route update.
Exact next steps
- Resolve the decision handoff and implement one cross-system hosted-NetLab full-suite lease in a separate authorized lane.
- Run one isolated full suite with live-environment, concurrent-upload, heap/GC, direct-memory, and event-loop measurements. Use those results to select a finite
MAX_LIVE_ENVIRONMENTS value with margin.
- Re-request Resolver pull request 892 checks once as final confirmation and watch them through the build-watchman workflow.
- Only after both Resolver checks are green, publish
foundation.url:resolver:0.0.825 using the Maven publishing workflow.
- Immediately before updating Server pull request 19, verify it is still open, fetch and rebase
feature/server-vnext on origin/main, update the Resolver pin to 0.0.825, and run its targeted tests including the 10 MiB stream scenario under the 512 MiB build cap.
- Push pull request 19, complete independent test and adversarial reviews, and watch CI green.
- Rebase the stacked pull request 20 branch on the updated parent branch, update its pin as required, run its targeted tests, review it independently, and watch CI green.
- Do not merge, enqueue, or deploy any of the three pull requests.
Supervisor review
MERGE-READY: none.
The Resolver source/test checkpoint is review-ready and its complete buildtest is green, but the pull request is not merge-ready while GitHub Actions is red. The Server pull requests are not merge-ready and have not yet received the required 0.0.825 pin.