Skip to content

Handle daemon refusal banners before module list#1890

Merged
oferchen merged 1 commit into
masterfrom
fix-rsync-unexpected-response-error
Nov 1, 2025
Merged

Handle daemon refusal banners before module list#1890
oferchen merged 1 commit into
masterfrom
fix-rsync-unexpected-response-error

Conversation

@oferchen
Copy link
Copy Markdown
Owner

@oferchen oferchen commented Nov 1, 2025

Summary

  • collect legacy @rsyncd banners sent before acknowledgement as daemon diagnostics
  • surface a feature-unavailable client error that reports the daemon's refusal message
  • add a regression test that exercises the "--daemon not enabled--" banner

Testing

  • cargo test -p rsync-core run_module_list_reports_daemon_listing_unavailable

https://chatgpt.com/codex/tasks/task_e_690647e5a92c8323a5a57347e39aca38

@oferchen oferchen merged commit 0ec2776 into master Nov 1, 2025
@oferchen oferchen deleted the fix-rsync-unexpected-response-error branch November 1, 2025 17:57
oferchen added a commit that referenced this pull request May 16, 2026
Expand the placeholder async migration plan into a comprehensive,
opinionated design covering: current synchronous threading model per
subsystem, per-subsystem cost/benefit, a phased incremental adoption
strategy, tokio runtime choice with rejected alternatives, sync/async
bridge patterns, backward-compat strategy, risk register, and open
questions.

Cross-references existing async-related tasks (#1367, #1411, #1591,
#1593, #1595, #1674, #1751, #1779, #1780, #1782, #1796, #1797, #1805,
#1806, #1889, #1890, #1891, #1892, #1934, #1935, #2136) and related
design notes so future planners have a single anchor.
oferchen added a commit that referenced this pull request May 16, 2026
Expand the placeholder async migration plan into a comprehensive,
opinionated design covering: current synchronous threading model per
subsystem, per-subsystem cost/benefit, a phased incremental adoption
strategy, tokio runtime choice with rejected alternatives, sync/async
bridge patterns, backward-compat strategy, risk register, and open
questions.

Cross-references existing async-related tasks (#1367, #1411, #1591,
#1593, #1595, #1674, #1751, #1779, #1780, #1782, #1796, #1797, #1805,
#1806, #1889, #1890, #1891, #1892, #1934, #1935, #2136) and related
design notes so future planners have a single anchor.
oferchen added a commit that referenced this pull request May 17, 2026
…, and explicit backpressure (#4272)

Three followup design notes to the umbrella SSH async I/O eval:

- ssh-async-default-linux.md (#1890): trigger conditions and 5-step
  rollout to flip the Linux default from sync to async, with the
  feature/cfg gate and the OC_RSYNC_SSH_ASYNC=0 escape hatch.
- ssh-decouple-delta-from-socket-read.md (#1891): split the SSH read
  thread from the delta applier via a bounded crossbeam-channel queue;
  MSG_DATA / MSG_INFO ordering preserved, error propagation via a
  oneshot channel, queue-depth defaults explained.
- ssh-explicit-backpressure-controls.md (#1892): user-facing
  --ssh-max-in-flight-bytes flag and OC_RSYNC_SSH_MAX_IN_FLIGHT_BYTES
  env var, implemented as a tokio Semaphore at the multiplex writer
  and receiver-side queue, default 4 MiB, with the
  max(N, MAX_PAYLOAD_LENGTH) floor that avoids single-frame deadlock.

Each doc lists 5-step impl plan plus trigger conditions and ties back
to the umbrella eval's recommendation.
oferchen added a commit that referenced this pull request May 18, 2026
Expand the placeholder async migration plan into a comprehensive,
opinionated design covering: current synchronous threading model per
subsystem, per-subsystem cost/benefit, a phased incremental adoption
strategy, tokio runtime choice with rejected alternatives, sync/async
bridge patterns, backward-compat strategy, risk register, and open
questions.

Cross-references existing async-related tasks (#1367, #1411, #1591,
#1593, #1595, #1674, #1751, #1779, #1780, #1782, #1796, #1797, #1805,
#1806, #1889, #1890, #1891, #1892, #1934, #1935, #2136) and related
design notes so future planners have a single anchor.
oferchen added a commit that referenced this pull request May 18, 2026
…, and explicit backpressure (#4272)

Three followup design notes to the umbrella SSH async I/O eval:

- ssh-async-default-linux.md (#1890): trigger conditions and 5-step
  rollout to flip the Linux default from sync to async, with the
  feature/cfg gate and the OC_RSYNC_SSH_ASYNC=0 escape hatch.
- ssh-decouple-delta-from-socket-read.md (#1891): split the SSH read
  thread from the delta applier via a bounded crossbeam-channel queue;
  MSG_DATA / MSG_INFO ordering preserved, error propagation via a
  oneshot channel, queue-depth defaults explained.
- ssh-explicit-backpressure-controls.md (#1892): user-facing
  --ssh-max-in-flight-bytes flag and OC_RSYNC_SSH_MAX_IN_FLIGHT_BYTES
  env var, implemented as a tokio Semaphore at the multiplex writer
  and receiver-side queue, default 4 MiB, with the
  max(N, MAX_PAYLOAD_LENGTH) floor that avoids single-frame deadlock.

Each doc lists 5-step impl plan plus trigger conditions and ties back
to the umbrella eval's recommendation.
oferchen added a commit that referenced this pull request May 18, 2026
Expand the placeholder async migration plan into a comprehensive,
opinionated design covering: current synchronous threading model per
subsystem, per-subsystem cost/benefit, a phased incremental adoption
strategy, tokio runtime choice with rejected alternatives, sync/async
bridge patterns, backward-compat strategy, risk register, and open
questions.

Cross-references existing async-related tasks (#1367, #1411, #1591,
#1593, #1595, #1674, #1751, #1779, #1780, #1782, #1796, #1797, #1805,
#1806, #1889, #1890, #1891, #1892, #1934, #1935, #2136) and related
design notes so future planners have a single anchor.
oferchen added a commit that referenced this pull request May 18, 2026
…, and explicit backpressure (#4272)

Three followup design notes to the umbrella SSH async I/O eval:

- ssh-async-default-linux.md (#1890): trigger conditions and 5-step
  rollout to flip the Linux default from sync to async, with the
  feature/cfg gate and the OC_RSYNC_SSH_ASYNC=0 escape hatch.
- ssh-decouple-delta-from-socket-read.md (#1891): split the SSH read
  thread from the delta applier via a bounded crossbeam-channel queue;
  MSG_DATA / MSG_INFO ordering preserved, error propagation via a
  oneshot channel, queue-depth defaults explained.
- ssh-explicit-backpressure-controls.md (#1892): user-facing
  --ssh-max-in-flight-bytes flag and OC_RSYNC_SSH_MAX_IN_FLIGHT_BYTES
  env var, implemented as a tokio Semaphore at the multiplex writer
  and receiver-side queue, default 4 MiB, with the
  max(N, MAX_PAYLOAD_LENGTH) floor that avoids single-frame deadlock.

Each doc lists 5-step impl plan plus trigger conditions and ties back
to the umbrella eval's recommendation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant