Если количество элементов в папке на ftp сервере превышает 29 - сервер разрывает соединение данных. Причины такого поведения, кроются в sandbox в котором запускается vsftpd. При перечислении файлов в запрошенной папке, vsftpd успешно перечисляет их, а затем пытается отсортировать вызовом qsort. Если количество элементов для сортировки qsort превышает 31, то под них выделяется память, а перед её выделением происходит проверка количества установленного ОЗУ машины. Для проверки используется ядерная функция sysinfo, которая запрещена песочницей. В качеств исправления предлагаю добавить следующие строки в файл seccompsandbox.c, функция seccomp_sandbox_setup_base: /* Needed for qsort. */ allow_nr(__NR_sysinfo); Изменённый файл seccompsandbox.c прилагаю.
Created attachment 7944 [details] Исправление проблемы
Другой вариант ухода от проблемы (не её исправление), добавить в файл конфига vsftpd строку отключающую песочницу - seccomp_sandbox=NO Проблема всё-ещё воспроизводится на vsftpd: version 3.0.3 в alt starterkit p9 Подобный баг уже появлялся ранее https://bugzilla.altlinux.org/show_bug.cgi?id=27752
vsftpd-3.0.3-alt2 -> sisyphus: Sat Dec 19 2020 Dmitry V. Levin <ldv@altlinux> 3.0.3-alt2 - Updated seccomp filter (closes: #27752, #35901). - Fixed build with gcc-10.