Package: lftp Version: 4.8.4-2 Severity: important Hi Noël, First thanks for maintaining lftp!
I've got two machines that run the same version of Debian and the same version (and same configuration) of lftp and one of them, lftp behaves very weird at the end of mirror command. This manifests in the following output: ... Transferring file `foo01' Transferring file `foo02' Transferring file `foo03' New: 11 files, 0 symlinks 421696988 bytes transferred in 47 seconds (8.58 MiB/s) Retrying mirror... Getting directory contents (0) [Waiting for response...] At that point, lftp is just stuck. The exact mirror command that is executed is "mirror -R -c -v". I have attached a minimal config for which this problem occurs and hope that helps. Specifically, the timeout does not seem to kick in and I have no idea why. There's also nothing obvious in the transfer log that hints to a problem. I have also attached an strace from slightly before this happens, i.e. when the files are stat'ed the last time. It seems lftp hangs up in some infinite select loop without valuing the timeout or noticing that the server has closed the connection. FWIW, this connection uses sftp. Hope this helps. This has been bugging me for a while now and I've got no idea what this is. Thanks! Nico
set ftp:passive-mode yes set ftp:ssl-allow yes set ftp:ssl-allow-anonymous no set ftp:ssl-auth TLS set ftp:ssl-data-use-keys yes set ftp:ssl-force yes set ftp:ssl-protect-data yes set ftp:ssl-protect-fxp yes set ftp:ssl-protect-list yes set ssl:verify-certificate yes set mirror:set-permissions off set cache:enable false set ftp:use-site-idle false set ftp:use-mdtm false set ftp:lang false set ftp:use-hftp false set ftp:use-feat false set ftp:use-stat false set ftp:stat-interval 30 set ftp:sync-mode true set ftp:skey-allow false set mirror:no-empty-dirs true set net:timeout 10 set net:max-retries 2 set net:reconnect-interval-base 5 set net:reconnect-interval-multiplier 1 debug
lstat("/home/bla/foo01", {st_mode=S_IFREG|0644, st_size=21696051, ...}) = 0
lstat("/home/bla/foo02", {st_mode=S_IFREG|0644, st_size=50000000, ...}) = 0
lstat("/home/bla/foo03", {st_mode=S_IFREG|0644, st_size=540, ...}) = 0
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 7
fcntl(7, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0
fcntl(7, F_SETFD, FD_CLOEXEC) = 0
setsockopt(7, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
getsockname(4, {sa_family=AF_INET, sin_port=htons(54152),
sin_addr=inet_addr("XXXXXXXXX")}, [28->16]) = 0
bind(7, {sa_family=AF_INET, sin_port=htons(0),
sin_addr=inet_addr("XXXXXXXXXX")}, 16) = 0
getsockname(7, {sa_family=AF_INET, sin_port=htons(34865),
sin_addr=inet_addr("XXXXXXXXXX")}, [28->16]) = 0
sendmsg(4, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\27\3\3\0
\0\0\0\0\0\0\0(\206\240\225\326h%YA\234h\307~g\206\310`\337\232\233"...,
iov_len=37}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 37
brk(0x560b2eb48000) = 0x560b2eb48000
close(5) = 0
select(5, [], [4], NULL, {tv_sec=0, tv_usec=13894}) = 1 (out [4], left
{tv_sec=0, tv_usec=13892})
recvfrom(4, 0x560b2eafdbb3, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(5, [4], [], NULL, {tv_sec=0, tv_usec=13787}) = 0 (Timeout)
ioctl(0, TIOCGPGRP, [1772]) = 0
getpgrp() = 1772
ioctl(1, TIOCGWINSZ, {ws_row=48, ws_col=211, ws_xpixel=0, ws_ypixel=0}) = 0
write(1, "Getting directory contents (0) ["..., 56) = 56
write(1, "\r", 1) = 1
select(5, [4], [], NULL, {tv_sec=0, tv_usec=78028}) = 1 (in [4], left
{tv_sec=0, tv_usec=75885})
recvfrom(4, "\27\3\3\0,", 5, 0, NULL, NULL) = 5
recvfrom(4,
",r`\317\224\351\nl/\367\214\374+\273\26\2524.\234\230\245\363E\365h\275*5\26\10\10I"...,
44, 0, NULL, NULL) = 44
recvfrom(4, 0x560b2eafdbb3, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
sendmsg(4, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\27\3\3\0\36\0\0\0\0\0\0\0)AX\200\347\262\335s\221\246V\221|\320\336z:9\271v"...,
iov_len=35}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 35
select(5, [], [4], NULL, {tv_sec=0, tv_usec=74351}) = 1 (out [4], left
{tv_sec=0, tv_usec=74349})
recvfrom(4, 0x560b2eafdbb3, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(5, [4], [], NULL, {tv_sec=0, tv_usec=74195}) = 1 (in [4], left
{tv_sec=0, tv_usec=57018})
recvfrom(4, "\27\3\3\0J", 5, 0, NULL, NULL) = 5
recvfrom(4,
",r`\317\224\351\nm\302\t\r>si\356$\346DS\222\362\362\327\201\307\274D[\254S\361\264"...,
74, 0, NULL, NULL) = 74
recvfrom(4, 0x560b2eafdbb3, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
getpeername(4, {sa_family=AF_INET, sin_port=htons(43486),
sin_addr=inet_addr("YYYYYYYYYYYYY")}, [28->16]) = 0
connect(7, {sa_family=AF_INET, sin_port=htons(63183),
sin_addr=inet_addr("YYYYYYYYYYYYY")}, 16) = -1 EINPROGRESS (Operation now in
progress)
poll([{fd=7, events=POLLOUT}], 1, 0) = 0 (Timeout)
poll([{fd=7, events=POLLOUT}], 1, 0) = 0 (Timeout)
select(8, [4], [7], NULL, {tv_sec=0, tv_usec=55621}) = 1 (out [7], left
{tv_sec=0, tv_usec=38804})
poll([{fd=7, events=POLLOUT}], 1, 0) = 1 ([{fd=7, revents=POLLOUT}])
getsockopt(7, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
sendmsg(4, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\27\3\3\0\36\0\0\0\0\0\0\0*\337!0\333-^\265Ar\272\4\23\307\305O*\362\357\37"...,
iov_len=35}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 35
select(5, [], [4], NULL, {tv_sec=0, tv_usec=37761}) = 1 (out [4], left
{tv_sec=0, tv_usec=37759})
recvfrom(4, 0x560b2eafdbb3, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(5, [4], [], NULL, {tv_sec=0, tv_usec=37563}) = 1 (in [4], left
{tv_sec=0, tv_usec=20486})
recvfrom(4, "\27\3\3\0{", 5, 0, NULL, NULL) = 5
recvfrom(4,
",r`\317\224\351\nn]+C\376\356\307M\236\37;\362\32;f\253GV~1\321\201;\200\367"...,
123, 0, NULL, NULL) = 123
recvfrom(4, 0x560b2eafdbb3, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
sendmsg(7, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\26\3\1\1\276\1\0\1\272\3\3\\\346\343\366\n\270\342\265\350\355\312Z``\26
(G\274\350\31"..., iov_len=451}], msg_iovlen=1, msg_controllen=0,
msg_flags=0}, 0) = 451
recvfrom(7, 0x560b2eb15bab, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
recvfrom(7, 0x560b2eb15bab, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(8, [4 7], [], NULL, {tv_sec=0, tv_usec=19339}) = 0 (Timeout)
recvfrom(7, 0x560b2eb15bab, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(8, [4 7], [], NULL, {tv_sec=0, tv_usec=469334}) = 1 (in [7], left
{tv_sec=0, tv_usec=466031})
recvfrom(7, "\26\3\3\0A", 5, 0, NULL, NULL) = 5
recvfrom(7,
"\2\0\0=\3\3\277>p\364\310\307\201\367\304\7R\316e@?h\301\2411\206(\366>M\225\330"...,
65, 0, NULL, NULL) = 65
recvfrom(7, "\26\3\3\2\r", 5, 0, NULL, NULL) = 5
recvfrom(7,
"\v\0\2\t\0\2\6\0\2\0030\202\1\3770\202\1a\240\3\2\1\2\2\t\0\202\222\33\3438\362"...,
525, 0, NULL, NULL) = 525
recvfrom(7, "\26\3\3\0\330", 5, 0, NULL, NULL) = 5
recvfrom(7,
"\f\0\0\324\3\0\27A\4)m[\211\304o\200\234\276<\341\314\216\304\334\7+\364O^f\35\270"...,
216, 0, NULL, NULL) = 216
recvfrom(7, "\26\3\3\0\4", 5, 0, NULL, NULL) = 5
recvfrom(7, "\16\0\0\0", 4, 0, NULL, NULL) = 4
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={tv_sec=6, tv_usec=256000},
ru_stime={tv_sec=1, tv_usec=556000}, ...}) = 0
getpid() = 1777
sendmsg(7, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\26\3\3\0F\20\0\0BA\4\317\360/\314\204[\222+K\235\330\7W*\24\265\311\254\37\177\4"...,
iov_len=75}, {iov_base="\24\3\3\0\1\1", iov_len=6},
{iov_base="\26\3\3\0(\0\0\0\0\0\0\0\0d\352\332\336b\5z\341PEP\251\177\f\344\270\362\270\247"...,
iov_len=45}], msg_iovlen=3, msg_controllen=0, msg_flags=0}, 0) = 126
recvfrom(7, 0x560b2eb15ba3, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(8, [4 7], [], NULL, {tv_sec=0, tv_usec=465467}) = 1 (in [7], left
{tv_sec=0, tv_usec=447602})
recvfrom(7, "\26\3\3\0\312", 5, 0, NULL, NULL) = 5
recvfrom(7, "\4\0\0\306\0\0\34
\0\300\264>\374%;\314\360|\352pq=,!\252_~rN4\211\242"..., 202, 0, NULL, NULL) =
202
recvfrom(7, "\24\3\3\0\1", 5, 0, NULL, NULL) = 5
recvfrom(7, "\1", 1, 0, NULL, NULL) = 1
recvfrom(7, "\26\3\3\0(", 5, 0, NULL, NULL) = 5
recvfrom(7, "3\374\233\333\37\245/af\344\205qt\330&[
\300Y\n\323zH\234\233tI:~\313\240\375"..., 40, 0, NULL, NULL) = 40
recvfrom(7, 0x560b2eb15ba3, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(8, [4 7], [], NULL, {tv_sec=0, tv_usec=440806}) = 1 (in [7], left
{tv_sec=0, tv_usec=439924})
recvfrom(7, "\27\3\3\5\23", 5, 0, NULL, NULL) = 5
recvfrom(7,
"3\374\233\333\37\245/b\355\232\265\330T\327M\341\327\377E\204@k\202\266\305\227\262\256\347NY\""...,
1299, 0, NULL, NULL) = 1299
recvfrom(7, "\25\3\3\0\32", 5, 0, NULL, NULL) = 5
recvfrom(7,
"3\374\233\333\37\245/c\371\35\211\276_u\325\215Z\20|\337R\303\307\371Hn", 26,
0, NULL, NULL) = 26
sendmsg(7, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\25\3\3\0\32\0\0\0\0\0\0\0\1\271.zm\211\365\355\276\304HL\6z\6$\2179\351",
iov_len=31}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 31
close(7) = 0
select(5, [4], [], NULL, {tv_sec=0, tv_usec=439062}) = 1 (in [4], left
{tv_sec=0, tv_usec=430405})
recvfrom(4, "\27\3\3\0V", 5, 0, NULL, NULL) = 5
recvfrom(4,
",r`\317\224\351\no\311\234\305rM\36\235\370\304b\250\234\25\2632v\3470<rpJ\205-"...,
86, 0, NULL, NULL) = 86
recvfrom(4, "\27\3\3\0\310", 5, 0, NULL, NULL) = 5
recvfrom(4,
",r`\317\224\351\npZ\363|\354\221\6\235\264\247\374\7J\1\257e\250\264.yn\t\260\336\314"...,
200, 0, NULL, NULL) = 200
recvfrom(4, "\27\3\3\0\251", 5, 0, NULL, NULL) = 5
recvfrom(4,
",r`\317\224\351\nq\337_\4\256\36:\365\245\247'\277\243\320\274m\340H\327\347\320Ox(\310"...,
169, 0, NULL, NULL) = 169
recvfrom(4, 0x560b2eafdbb3, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2949, ...}) = 0
sendmsg(4, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\27\3\3\0
\0\0\0\0\0\0\0+\235\274bs(\rL@/\345X1\3\246t\36\305\215?"..., iov_len=37}],
msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 37
select(5, [], [4], NULL, {tv_sec=0, tv_usec=426662}) = 1 (out [4], left
{tv_sec=0, tv_usec=426660})
recvfrom(4, 0x560b2eafed53, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(5, [4], [], NULL, {tv_sec=0, tv_usec=426575}) = 1 (in [4], left
{tv_sec=0, tv_usec=409121})
recvfrom(4, "\27\3\3\0,", 5, 0, NULL, NULL) = 5
recvfrom(4,
",r`\317\224\351\nr\327\320;\204\376\215~]\207)\25\265<z[\347\307D\2031\324\37\225\330"...,
44, 0, NULL, NULL) = 44
recvfrom(4, 0x560b2eafed53, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(5, [4], [], NULL, {tv_sec=0, tv_usec=408505}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=0, tv_usec=251774}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=4, tv_usec=238955}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=0, tv_usec=74382}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=1, tv_usec=777794}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=6, tv_usec=97134}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=4, tv_usec=900192}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=4, tv_usec=897108}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=2, tv_usec=249843}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=4, tv_usec=914889}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=0, tv_usec=156318}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=101, tv_usec=734817}q) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=0, tv_usec=893561}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=1, tv_usec=275850}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=1, tv_usec=939922}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=4, tv_usec=745866}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=4, tv_usec=898332}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=4, tv_usec=890693}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=6, tv_usec=344188}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=6, tv_usec=92906}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=4, tv_usec=900252}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=4, tv_usec=897155}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=2, tv_usec=249919}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=4, tv_usec=915250}) = 0 (Timeout)
select(5, [4], [], NULL, {tv_sec=0, tv_usec=154247}) = 0 (Timeout)
sendmsg(4, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\27\3\3\0\36\0\0\0\0\0\0\0,\320Wa=\207\217J\220\206A\335\365G\331\233\302\313\203w"...,
iov_len=35}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 35
select(5, [], [4], NULL, {tv_sec=29, tv_usec=999848}) = 1 (out [4], left
{tv_sec=29, tv_usec=999844})
recvfrom(4, 0x560b2eaffc33, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(5, [4], [], NULL, {tv_sec=29, tv_usec=999778}) = 1 (in [4], left
{tv_sec=29, tv_usec=982298})
recvfrom(4, "\27\3\3\0008", 5, 0, NULL, NULL) = 5
recvfrom(4,
",r`\317\224\351\ns\n\\\227Q\206([\215\257\352p\6w\221\377\304\237\331\211e-\314\251\332"...,
56, 0, NULL, NULL) = 56
recvfrom(4, 0x560b2eaffc33, 5, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
select(5, [4], [], NULL, {tv_sec=29, tv_usec=981719}) = 1 (in [4], left
{tv_sec=29, tv_usec=969066})
recvfrom(4, "\27\3\3\0\36", 5, 0, NULL, NULL) = 5
recvfrom(4,
",r`\317\224\351\nt\345\312\316\257W\270\t\260\261\227\6\235\220Q\211\200\265X\207\207\343\333",
30, 0, NULL, NULL) = 30
recvfrom(4, "\25\3\3\0\32", 5, 0, NULL, NULL) = 5
recvfrom(4,
",r`\317\224\351\nu\335\207p\334I\214\377\257\2456\376\33Z\v\362\251\303\36",
26, 0, NULL, NULL) = 26
sendmsg(4, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\25\3\3\0\32\0\0\0\0\0\0\0-`\346\311u^\25\354nHW\247lj\257<@\347\361",
iov_len=31}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 31
close(4) = 0
select(0, 0x560b2d4063e0, 0x560b2d406460, NULL, {tv_sec=29, tv_usec=999545}) =
0 (Timeout)
select(0, 0x560b2d4063e0, 0x560b2d406460, NULL, {tv_sec=41, tv_usec=672310}) =
0 (Timeout)
select(0, 0x560b2d4063e0, 0x560b2d406460, NULL, {tv_sec=108, tv_usec=224606}) =
0 (Timeout)
select(0, 0x560b2d4063e0, 0x560b2d406460, NULL, {tv_sec=3191, tv_usec=726006})
= ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} ---
select(0, 0x560b2d4063e0, 0x560b2d406460, NULL, {tv_sec=3118, tv_usec=524011})
= ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} ---
select(0, 0x560b2d4063e0, 0x560b2d406460, NULL, {tv_sec=3118, tv_usec=274341})
= ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} ---
select(0, 0x560b2d4063e0, 0x560b2d406460, NULL, {tv_sec=3117, tv_usec=951790})
= ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} ---
select(0, 0x560b2d4063e0, 0x560b2d406460, NULL, {tv_sec=3117, tv_usec=664299}
signature.asc
Description: PGP signature

