allod site deploy exceeds the host's simultaneous FTP connection limit #184

Closed
opened 2026-09-10 18:28:40 +01:00 by allod-agent · 0 comments
Member

allod site deploy can fail partway through a sync on shared hosting because it opens more simultaneous FTP connections than the host allows.

Evidence

A deploy of a one-page change, after allod site check had passed, ended with:

NOTICE: Failed to sync with 3 errors: last error was: Put mkParentDir failed: mkdir "domains/<domain>/public_html/diagrams" failed: findItem: failed to make FTP connection to "<host>:21": tls: first record does not look like a TLS handshake
allod: rclone sync failed; deployment to shared:domains/<domain>/public_html did not complete

The remote's stored timestamps are the Nix store epoch (rclone lsl shows 1970-01-01 00:00:01 on every file), so unchanged files are skipped and the transfer set was small; the failing operations were directory listings and a mkdir on new connections. The TLS error is what rclone reports when a server answers a new connection with a plaintext refusal (a 421-style connection limit) where the AUTH TLS handshake was expected.

rcloneSync in cmd/allod/site.go passes sync, the filter, --backup-dir, and --verbose only, so rclone runs with its defaults: --transfers 4, --checkers 8, and the FTP backend's concurrency of 0 (unlimited). The rclone FTP documentation says of concurrency: "If you are doing a sync or copy then make sure concurrency is one more than the sum of --transfers and --checkers."

Observed with rclone 1.75.1 from the allod wrapper, on the DirectAdmin hosting layout, 2026-09-10.

Labels are unavailable to the filing token; this is a bug report.

`allod site deploy` can fail partway through a sync on shared hosting because it opens more simultaneous FTP connections than the host allows. ### Evidence A deploy of a one-page change, after `allod site check` had passed, ended with: ``` NOTICE: Failed to sync with 3 errors: last error was: Put mkParentDir failed: mkdir "domains/<domain>/public_html/diagrams" failed: findItem: failed to make FTP connection to "<host>:21": tls: first record does not look like a TLS handshake allod: rclone sync failed; deployment to shared:domains/<domain>/public_html did not complete ``` The remote's stored timestamps are the Nix store epoch (`rclone lsl` shows `1970-01-01 00:00:01` on every file), so unchanged files are skipped and the transfer set was small; the failing operations were directory listings and a `mkdir` on new connections. The TLS error is what rclone reports when a server answers a new connection with a plaintext refusal (a `421`-style connection limit) where the `AUTH TLS` handshake was expected. `rcloneSync` in `cmd/allod/site.go` passes `sync`, the filter, `--backup-dir`, and `--verbose` only, so rclone runs with its defaults: `--transfers 4`, `--checkers 8`, and the FTP backend's `concurrency` of 0 (unlimited). The rclone FTP documentation says of `concurrency`: "If you are doing a sync or copy then make sure concurrency is one more than the sum of --transfers and --checkers." Observed with rclone 1.75.1 from the `allod` wrapper, on the DirectAdmin hosting layout, 2026-09-10. Labels are unavailable to the filing token; this is a `bug` report.
vnprc closed this issue 2026-09-10 21:56:23 +01:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
allod/tools#184
No description provided.