De a fonte :
int32 max_blength = protocol_version < 30 ? OLD_MAX_BLOCK_SIZE : MAX_BLOCK_SIZE;
sum->blength = read_int(f);
if (sum->blength < 0 || sum->blength > max_blength) {
rprintf(FERROR, "Invalid block length %ld [%s]\n",
(long)sum->blength, who_am_i());
exit_cleanup(RERR_PROTOCOL);
}
Onde :
#define OLD_MAX_BLOCK_SIZE ((int32)1 << 29)
#define MAX_BLOCK_SIZE ((int32)1 << 17)
Qual é 536870912
(512M) e 131072
(128k), respectivamente.
A alteração foi feita na versão v3.0.0 e o suporte para OLD_
foi adicionado na v3.0.3 . (Links explicam algumas das razões por trás das mudanças.)
-
[PATCH] Um patch para tentar fazer com que arquivos realmente grandes sejam manipulados sem sobrecarregar na pesquisa de hashtable do lado do remetente.
-
[PATCH] Corrigido o envio de arquivos grandes com versões mais antigas do rsync manipulando o limite de tamanho de bloco antigo para protocolos < 29.