Update: even without --block-size rsync hangs with 100% CPU.

# rsync -va --inplace --no-whole-file --progress --stats /var/lib/libvirt/images/... /mnt/tmp4/


0x00005619df81a4c0 in hash_search (len=<optimized out>, buf=<optimized out>, s=<optimized out>, f=<optimized out>) at match.c:206
206     match.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0 0x00005619df81a4c0 in hash_search (len=<optimized out>, buf=<optimized out>, s=<optimized out>, f=<optimized out>) at match.c:206 #1 match_sums (f=f@entry=4, s=s@entry=0x5619e04333a0, buf=buf@entry=0x5619e04333d0, len=107390828544) at match.c:396 #2 0x00005619df80e6c1 in send_files (f_in=f_in@entry=5, f_out=f_out@entry=4) at sender.c:389 #3 0x00005619df8189ac in client_run (f_in=5, f_out=4, pid=pid@entry=668556, argc=argc@entry=1, argv=argv@entry=0x5619e0409660) at main.c:1317 #4 0x00005619df7f861a in start_client (argv=<optimized out>, argc=1) at main.c:1580
#5  main (argc=<optimized out>, argv=<optimized out>) at main.c:1812
(gdb) info locals
l = <optimized out>
done_csum2 = 1
hash_entry = <optimized out>
i = 667490
prev = 0x7fbb95ded798
aligned_i = <optimized out>
more = <optimized out>
aligned_offset = <optimized out>
end = 107390697473
k = 131072
want_i = <optimized out>
backup = <optimized out>
s1 = 1310720
sum = <optimized out>
offset = 45707824536
sum2 = "1\205_\250A]\025\370SF\303\362\342>k\243"
s2 = 785055744
map = <optimized out>
offset = <optimized out>
aligned_offset = <optimized out>
end = <optimized out>
k = <optimized out>
want_i = <optimized out>
aligned_i = <optimized out>
backup = <optimized out>
sum2 = {<optimized out> <repeats 16 times>}
s1 = <optimized out>
s2 = <optimized out>
sum = <optimized out>
more = <optimized out>
map = <optimized out>
null_hash = <optimized out>
check_want_i = <optimized out>
done_csum2 = <optimized out>
hash_entry = <optimized out>
i = <optimized out>
prev = <optimized out>
l = <optimized out>
(gdb) info registers
rax            0xffffffff          4294967295
rbx            0x1                 1
rcx            0x7fbb94477010      140443623321616
rdx            0x5                 5
rsi            0x19aad850          430626896
rdi            0x855fa841          2237638721
rbp            0x7fbb95ded760      0x7fbb95ded760
rsp            0x7ffd76aa33b0      0x7ffd76aa33b0
r8             0x0                 0
r9             0x1                 1
r10            0x5619e04333a0      94669136671648
r11            0x7fbb95ded798      140443650021272
r12            0x1976750           26699600
r13            0xa2f62             667490
r14            0xa2f62             667490
r15            0xaa4660d98         45707824536
rip            0x5619df81a4c0      0x5619df81a4c0 <match_sums+1328>
eflags         0x283               [ CF SF IF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0


Yeah, that's not that helpful... but that might be:


(gdb) l
warning: Source file is more recent than executable.
201                             int32 l;
202
203 /* When updating in-place, the chunk's offset must be 204 * either >= our offset or identical data at that offset. 205 * Remove any bypassed entries that we can never use. */ 206 if (updating_basis_file && s->sums[i].offset < offset 207 && !(s->sums[i].flags & SUMFLG_SAME_OFFSET)) {
208                                     *prev = s->sums[i].chain;
209                                     continue;
210                             }
(gdb) n
211                             prev = &s->sums[i].chain;
(gdb) n
213                             if (sum != s->sums[i].sum1)
(gdb) n
217 l = (int32)MIN((OFF_T)s->blength, len-offset);
(gdb) n
218                             if (l != s->sums[i].len)
(gdb) n
221                             if (DEBUG_GTE(DELTASUM, 3)) {
(gdb) n
227                             if (!done_csum2) {
(gdb) n
233 if (memcmp(sum2,s->sums[i].sum2,s->s2length) != 0) {
(gdb) n
234                                     false_alarms++;
(gdb) n
235                                     continue;
(gdb) n
307                     } while ((i = s->sums[i].chain) >= 0);
(gdb) n
206 if (updating_basis_file && s->sums[i].offset < offset
(gdb) n
211                             prev = &s->sums[i].chain;
(gdb) n
213                             if (sum != s->sums[i].sum1)
(gdb) n
217 l = (int32)MIN((OFF_T)s->blength, len-offset);
(gdb) n
218                             if (l != s->sums[i].len)
(gdb) n
221                             if (DEBUG_GTE(DELTASUM, 3)) {
(gdb) n
227                             if (!done_csum2) {
(gdb) n
233 if (memcmp(sum2,s->sums[i].sum2,s->s2length) != 0) {
(gdb) n
234                                     false_alarms++;
(gdb) print i
$1 = 667489
(gdb) print s->sums[i].chain
value has been optimized out
(gdb) print false_alarms
$2 = -745410538
(gdb) n
235                                     continue;
(gdb) n
307                     } while ((i = s->sums[i].chain) >= 0);
(gdb) n
206 if (updating_basis_file && s->sums[i].offset < offset
(gdb) print i
$3 = 667488
(gdb) b 206
Breakpoint 1 at 0x5619df81a4a3: file match.c, line 206.
(gdb) c
Continuing.

Breakpoint 1, hash_search (len=<optimized out>, buf=<optimized out>, s=<optimized out>, f=<optimized out>) at match.c:206 206 if (updating_basis_file && s->sums[i].offset < offset
(gdb) print i
$4 = 667487
(gdb) c
Continuing.

Breakpoint 1, hash_search (len=<optimized out>, buf=<optimized out>, s=<optimized out>, f=<optimized out>) at match.c:206 206 if (updating_basis_file && s->sums[i].offset < offset
(gdb) print i
$5 = 667486
(gdb) c
Continuing.

Breakpoint 1, hash_search (len=<optimized out>, buf=<optimized out>, s=<optimized out>, f=<optimized out>) at match.c:206 206 if (updating_basis_file && s->sums[i].offset < offset
(gdb) print i
$6 = 667485
(gdb) c
Continuing.

Breakpoint 1, hash_search (len=<optimized out>, buf=<optimized out>, s=<optimized out>, f=<optimized out>) at match.c:206 206 if (updating_basis_file && s->sums[i].offset < offset
(gdb) print i
$7 = 667484


This time rsync was hung at
 45,706,764,560  42%   16.99MB/s    0:59:06  ^C

Reply via email to