#1148243 csync2: large transfers abort on a non-fatal GNUTLS_E_AGAIN

Package:
csync2
Source:
csync2
Description:
cluster synchronization tool
Submitter:
Kévin DUCHESNE
Date:
2026-09-18 12:47:01 UTC
Severity:
normal
Tags:
#1148243#5
Date:
2026-09-18 06:54:26 UTC
From:
To:
Hi,

Following up on our mail exchange here is the report you asked for.

On a GnuTLS build, a large synchronisation never finishes in one run. It aborts after roughly 7.4 GiB moved over a single connection, with

    Read-error while receiving data.      # receiving node
    Write-error while sending data.       # sending node

and resumes where it stopped on the next run. Pushing ~31 GB / 56k files to two peers took seven runs of csync2 to converge.

What ruled out a flaky link is that the abort point is deterministic: 8.0 GB, then 15.4 GB, then 22.9 GB transferred, the same figures on two different peers
and again after rebuilding the package from source.

I patched READ() and WRITE() in conn.c to log what GnuTLS actually returns before csync2 gives up. Both ends report the same thing:

    sender:   rc=-28 (Resource temporarily unavailable, try again.) count=512
    receiver: rc=-28 (Resource temporarily unavailable, try again.) fatal=0 count=512