С некоторых пор в сериях ядер между 3.0 и 3.6 в CIFS появилась поломка, которая проявляется в неработоспособности автодополнения в bash. Сегодня у меня выявилась более серьёзная часть этой проблемы: - не работает apt по протоколу file: через CIFS каталоги. Выглядит проблема следующим образом: mkaptbox --apt-config ~/etc/apt.sisyphus-i586-etersoft.conf /tmp/hasher Невозможно получить file:/var/ftp/pub/ALTLinux/Sisyphus/i586/base/pkglist.classic File not found Невозможно получить file:/var/ftp/pub/ALTLinux/Sisyphus/noarch/base/pkglist.classic File not found Невозможно получить file:/var/ftp/pub/Etersoft/LINUX@Etersoft/Sisyphus/i586/base/pkglist.addon File not found Невозможно получить file:/var/ftp/pub/Etersoft/LINUX@Etersoft/Sisyphus/i586/base/pkglist.nonfree File not found Невозможно получить file:/var/ftp/pub/Etersoft/LINUX@Etersoft/Sisyphus/noarch/base/pkglist.addon File not found Невозможно получить file:/var/ftp/pub/Etersoft/LINUX@Etersoft/Sisyphus/noarch/base/pkglist.nonfree File not found E: Некоторые индексные файлы не удалось скачать, они либо были проигнорированы, либо вместо них были использованы старые версии. Проверено, на ядрах 3.0.13-std-def-alt0.M60P.1 и 3.0.51-std-def-alt0.M60P.1 проблема не проявляется. На ядре 3.6.7-std-def-alt3 проблема имеется. Файлы apt: $ cat ~/etc/apt.sisyphus-i586-etersoft.conf Dir::Etc::main "/dev/null"; Dir::Etc::parts "/var/empty"; Dir::Etc::SourceParts "/var/empty"; RPM::Ignore { "vim-plugin-vimruby"; }; Dir::Etc::SourceList "/home/sin/etc/sources.sisyphus-i586-etersoft.list"; $ cat /home/sin/etc/sources.sisyphus-i586-etersoft.list rpm file:/var/ftp/pub/ALTLinux/Sisyphus i586 classic rpm file:/var/ftp/pub/ALTLinux/Sisyphus noarch classic rpm file:/var/ftp/pub/Etersoft/LINUX@Etersoft/Sisyphus i586 addon nonfree rpm file:/var/ftp/pub/Etersoft/LINUX@Etersoft/Sisyphus noarch addon nonfree
На ядре 3.0.51-std-def-alt0.M60P.1 в бранче p6 проверен etercifs 4.8.2 (сборка kernel-source-etercifs-2.6.39-1.71) 5.4.4 (сборка kernel-source-etercifs-3.0-1.74) Проблема в этих сборках не выявлена... Стоит отметить, что в бранч p6 приехала новая samba и пакет cifs-utils, что приводит к необходимости обновления etercifs.
Created attachment 2709 [details] Вывод в dmesg для ядра 3.6.7-std-def-alt3 Вывод в dmesg при выполнении команды $ mkaptbox --apt-config ~/etc/apt.sisyphus-i586-etersoft.conf /tmp/hasher Перед эти установлен режим отладки: # echo 1 > /proc/fs/cifs/cifsFYI $ uname -r 3.6.7-std-def-alt3
Проверено на 3.4.20-un-def-alt0.M60P.1 с родным cifs и etercifs-5.4.4 (сборка kernel-source-etercifs-3.4-1.78). Работает...
Возможно, проблема связана с https://bugs.etersoft.ru/show_bug.cgi?id=8795.
Не обнаружил в описании баги, на какой машине проявляется, какой сервер монтируется, какие параметры.
Получил от sin@, доступ к машине. Исследовал проблему. apt использует stat вызов для проверки доступности файла, что на 32 битной машине падает, если номера айнодов 64 битные. Поэтому нужно либо использовать stat64, либо компилировать с опцией -D_FILE_OFFSET_BITS=64. Так же есть вариант использовать опцию монтирования noserverino. Проблема повторяет то, что у нас было с WINE тут: http://bugs.etersoft.ru/show_bug.cgi?id=7302#c3. Бага не в cifs - закрываю.
Составил задачу "Системный вызов stat() для проверки файлов" в багзиле ALTLinux: https://bugzilla.altlinux.org/show_bug.cgi?id=28214 Вариант с опцией монтирования noserverino проверил - работает. Только не понятно, что при этом может сломаться.