Насколько помнится - раньше работало. vsftpd-2.2.1-alt1. Захожу на ftp. В папке несколько iso файлов. Те, которые 600..700 Mb - видны. Те, которые больше 2 Gb - не показываются. Думал дело в клиенте. Попробовал несколькими заходить. Одинаково.
Странно, но факт. Причём ни файла, ни ошибок: lftp localhost:/pub> ls -l *.img lftp localhost:/pub> ls -l test.img lftp localhost:/pub> pad:/var/ftp/pub> ls -lh test.img -rw-r--r-- 1 mike mike 2.5G Nov 3 17:17 test.img pad:/var/ftp/pub> rpm -q vsftpd vsftpd-2.2.1-alt1
This cannot happen. Please strace the server to find out what's going on.
strace на вид нормальный, поскольку glibc всегда использует системные вызовы *stat64, после чего, если вызывался 32-разрядный вариант функции, а в st_size вернулось значение, не влезающее в 32-разрядный тип, возвращает ошибку EOVERFLOW, но в strace её не видно. А вот в nm sysutils.o после сборки видно отсутствие символов *stat64, которые были там в 2.2.0-alt1. Похоже, в commit 397e7b5ca7739f670521e299464294f8feaf2c9a перемещение #include "port/porting_junk.h" из vsftpd/sysutil.c в vsftpd/sysutil.h привело к тому, что заголовки из glibc включаются до #define _FILE_OFFSET_BITS 64 в vsftpd/sysutil.c, и последующее определение _FILE_OFFSET_BITS уже не обрабатывается.
vsftpd-2.2.1-alt2 -> sisyphus: * Wed Nov 11 2009 Dmitry V. Levin <ldv@altlinux> 2.2.1-alt2 - Fixed regression in LFS support introduced in previous release (thanks to Sergey Vlasov; closes: #22128).
(In reply to comment #2) > This cannot happen. Английский per se не спас от очередной ошибки, что характерно. Мож недельку отпуска? :) 2 vsu: вау!