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