Skip to content

fix(imex): flush each tar entry immediately after appending#8370

Closed
link2xt wants to merge 1 commit into
mainfrom
link2xt/yqvttvnlmxov
Closed

fix(imex): flush each tar entry immediately after appending#8370
link2xt wants to merge 1 commit into
mainfrom
link2xt/yqvttvnlmxov

Conversation

@link2xt

@link2xt link2xt commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

When streaming over the network we don't want
to buffer tar entries, but send them immediately.

This is an attempt to fix timeout errors on the receiver side when transferring large files that look like

Failed to import backup from QUIC stream: Failed to unpack file: failed to unpack /home/user/.config/DeltaChat/accounts/<uuid>/dc.db-blobs/blobs_backup/$BLOBDIR/<filename>.mp4: failed to unpack blobs_backup/$BLOBDIR/<filename>.mp4 into /home/user/.config/DeltaChat/accounts/<uuid>/dc.db-blobs/blobs_backup/$BLOBDIR/<filename>.mp4: connection lost: timed out"

When streaming over the network we don't want
to buffer tar entries, but send them immediately.

This is an attempt to fix timeout errors on the receiver side
when transferring large files that look like

Failed to import backup from QUIC stream: Failed to unpack file: failed to unpack `/home/user/.config/DeltaChat/accounts/<uuid>/dc.db-blobs/blobs_backup/$BLOBDIR/<filename>.mp4`: failed to unpack `blobs_backup/$BLOBDIR/<filename>.mp4` into `/home/user/.config/DeltaChat/accounts/<uuid>/dc.db-blobs/blobs_backup/$BLOBDIR/<filename>.mp4`: connection lost: timed out"
@link2xt

link2xt commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator Author

IIRC flushing iroh streams is a noop, however.

@link2xt

link2xt commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator Author

"connection lost" is likely this error, from iroh-quinn 0.13 (permalink pointing to this tag):
https://github.com/n0-computer/noq/blob/a8cca03aa9303688a13a20b9bfbe9025a5c0fd81/quinn/src/recv_stream.rs#L517-L519

And "timed out" is this one:
https://github.com/n0-computer/noq/blob/a8cca03aa9303688a13a20b9bfbe9025a5c0fd81/quinn-proto/src/connection/mod.rs#L3900-L3906

Will need to look into max_idle_timout and keep alive interval. Maybe enabling keepalives is solving the problem.
EDIT: opened #8371

@link2xt link2xt closed this Jun 26, 2026
@link2xt

link2xt commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator Author

The problem seems to be on the receiver side, and flushing QUIC streams is likely a noop indeed.

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.

1 participant