Мое почтение, коллегам.
Не могу решить, насколько это относится к самбе.
Живет себе FreeBSD 10.0
Живет на ней samba36. По тихоньку пробую перейти на samba41.
Подошел к фазе испытаний.
Делаю pkg delete samba36
Собираю из портов samba41
До инициализации не доходил пока. Когда приходит время (конец воскресенья :) ), делаю pkg delete samba41 и собираю из портов samba36Вообщем все работало себе, баловался экспериментами.
И вот в ноябре делаю тоже самое, а происходит что-то странное.
Скрипт установки самбы41 не доходит до конца. На самом последнем этапе, перед выводом samba.org все висит. Делаешь Ctrl-c, выходим в шелл.
Делаем ls - отображает.
Делае ls -l (далее ll), снова висит. Снимается Ctrl-C.
Подключение по ttys не проходит. В логах появляется core dump модуля auth (пишу по памяти).Делаем перезагрузку. При загрузке, после вывода строки про ELF и следующей про библиотеки сервер начинает висеть. Снимаем Ctrl-c, сервер шагает к следующей задаче по загрузке. До вывода login так и не доходит, на очередной задаче зависает глухо.
Начал вычислять библиотеку.
Выяснил следующее.
Если из каталога /usr/local/lib удалить libgensec.so.0 - все оживает. ll делается и все остальное. Библиотека порождается из самбы41.После снова самбы41 и сборки самба36 - все продолжает жить как ничего не было.
Ну думаю, что не туда встало. Виндовые привычки, блин, сложно искореняются.
Ставлю систему заново.
Накатываю на новую систему все, что стояло до этого. Восстанавливаю конфиги и прочее.
Ставлю самбу41 - все тоже самое. Блин.Беру тестовый сервак. Ставлю на него систему - на нем самба41 живет.
Беру логи рабочего сервака. Ставлю все в той же последовательности с теми же опциями - самба41 живет. Снова блин. Отличие одно - на тестовом серваке пакеты ставил, но не запускал их.Может кто знает, в чем может быть проблема?
Пока только зреет вариант - на тестовом серваке запустить все то, что крутится на рабочем и по пробовать снова инсталять самбу41. Но это от моей не учености связей в библиотеках. Что цепляется за эту библиотеку? Есть еще вариант - может ведь быть еще другая библиотеке, при удалении которой тоже все заживет. В смысле две библиотеки вместе не живут.
Можно еще попробовать библиотеки с тестового перенести на рабочий. По дороге вычислить, что будет лишним.Беда, вообщем. Заковыка страшная.
З.Ы. Ясно дело, уже есть копия раздела, на котором не идет. Рабочий сервак мытарить перестал, страшно ведь :)
Проблема выдимо в pkg, точнее в его встроенной возможности аудита портов, в результате что-то не собирается... Вы на тестовый сервак перенесите порты с рабочего, убедитесь в воспроизводимости проблемы, после чего можно поиграть настройками pkg.conf(PORTAUDIT_SITE), убить файл /var/db/pkg/vuln.xml... В крайнем случае можно ведь собрать софт на тестовом серваке, убедиться в его работоспособности, создать пакеты и установить их на рабочий через pkg add ...
> Проблема выдимо в pkg, точнее в его встроенной возможности аудита портов,
> в результате что-то не собирается... Вы на тестовый сервак перенесите порты
> с рабочего, убедитесь в воспроизводимости проблемы, после чего можно поиграть настройками
> pkg.conf(PORTAUDIT_SITE), убить файл /var/db/pkg/vuln.xml... В крайнем случае можно
> ведь собрать софт на тестовом серваке, убедиться в его работоспособности, создать
> пакеты и установить их на рабочий через pkg add ...Меня вводит в недоумение сложность воспроизведения проблемы на тестовом серваке.
Не получается на тестовой установки воспроизвести проблему. Я даже последовательность установки пакетов повторил (само собой их состав тоже).
Ан нет, не воспроизводится.
При этом при установки на рабочий сервак сразу ее воспроизвел.Буду пробовать воспроизводить проблему на тестовом серваке. Там и видно будет где играть.
Есть какой-нибудь механизм переноса портов с рабочего на тестовый, кроме установки по новой?
Или просто снять дамп (что уже сделал) и ковырять его на тестовом серваке?
> Есть какой-нибудь механизм переноса портов с рабочего на тестовый, кроме установки по
> новой?
> Или просто снять дамп (что уже сделал) и ковырять его на тестовом
> серваке?Да вроде просто тупым копированием /usr/ports + /var/db/ports ну и связанное с pkg /etc/pkg + /usr/local/etc/pkg.cong + /var/db/pkg
>> Есть какой-нибудь механизм переноса портов с рабочего на тестовый, кроме установки по
>> новой?
>> Или просто снять дамп (что уже сделал) и ковырять его на тестовом
>> серваке?
> Да вроде просто тупым копированием /usr/ports + /var/db/ports ну и
> связанное с pkg /etc/pkg + /usr/local/etc/pkg.cong + /var/db/pkgЯ наверное не так выразился. Я имел ввиду перенос установленных портов.
Я уже пробовал собирать на тестовом сервере порты с опциями по портам с рабочего сервера (/var/db/ports). Тестовый поднялся нормально.Вот и родилась одна из версий - сделать полную копию установленного в систему и начать его мучить. Хотя это наверно и есть полный дамп :) Я уже в соснах блуждаю.
> Вот и родилась одна из версий - сделать полную копию установленного в
> систему и начать его мучить. Хотя это наверно и есть полный
> дамп :) Я уже в соснах блуждаю.А версия то ос одинаковая, я имею в виду и номер и установленные патчи и само ядро, содержимое /etc/make.conf, /boot/loader.conf, ну и версию самого pkg, можно также с рабочего забрать установленный софт через пакаджи и установить его на тестовый... дамп конечно хорошо, но это и время и нагрузка на рабочий сервак...
> А версия то ос одинаковая, я имею в виду и
> номер и установленные патчи и само ядро, содержимое /etc/make.conf, /boot/loader.conf,
> ну и версию самого pkg, можно также с рабочего забрать
> установленный софт через пакаджи и установить его на тестовый... дамп конечно
> хорошо, но это и время и нагрузка на рабочий сервак...Версия ОС одинаковая (и ядро и патчи). Кофиги то же одинаковые (одного нет, второй совпадает).
По поводу дампу у меня все проще. Я когда ставил новую установку, я делал на новый диск. Поэтому у меня есть копия старого диска в исходном состоянии. Есть с чем баловаться.
Провел эксперимент.
Скопировал /etc в тестовый сервер. И эффект повторился!
Сейчас буду разбирать - что за конфиг так себя ведет.
pkg.conf там нет :)
> Провел эксперимент.
> Скопировал /etc в тестовый сервер. И эффект повторился!
> Сейчас буду разбирать - что за конфиг так себя ведет.
> pkg.conf там нет :)smb.conf мне кажется виноват. в 4 версии немного по другому выглядит
>> Провел эксперимент.
>> Скопировал /etc в тестовый сервер. И эффект повторился!
>> Сейчас буду разбирать - что за конфиг так себя ведет.
>> pkg.conf там нет :)
> smb.conf мне кажется виноват. в 4 версии немного по другому выглядитДругими словами при некорретных параметрах samba сьедает все ресурсы проца?
>>> Провел эксперимент.
>>> Скопировал /etc в тестовый сервер. И эффект повторился!
>>> Сейчас буду разбирать - что за конфиг так себя ведет.
>>> pkg.conf там нет :)
>> smb.conf мне кажется виноват. в 4 версии немного по другому выглядит
> Другими словами при некорретных параметрах samba сьедает все ресурсы проца?А ресурсы проца никто не ест. В смысле он не загружен. Это не "завис" в смысле поедания ресурсов. Это что-то другое.
>> Провел эксперимент.
>> Скопировал /etc в тестовый сервер. И эффект повторился!
>> Сейчас буду разбирать - что за конфиг так себя ведет.
>> pkg.conf там нет :)
> smb.conf мне кажется виноват. в 4 версии немного по другому выглядитНе, не он.
Два момента.
1. До него дело еще не доходит. Совсем не доходит. То, что выглядит как завис начинается в конце установки. А smb.conf начнет играть роль уже при запуске.
2. smb.conf не лежит в /etc он лежит в другом каталоге.Пока лишь нашел, что проблема реагирует на содержимое nsswitch.conf
На что именно еще не вычислил, тестовый сервер ушел в завис, а я на работу :)
Но вечером постараюсь дорыть.
это было только предположение, хоть бы лог загрузки показали. а то после праздников экстрасенсев не найти
> это было только предположение, хоть бы лог загрузки показали. а то после
> праздников экстрасенсев не найтиЛог загрузки чего? Самбы?
Так проблема не при загрузки самбы, а при ее установки.
Суть какая.
В каталоге samba41 делаем make. Все хорошо.
Делаем make install
Установка идет, доходит почти до конца и замирает. Выглядит, как зависает. На самом деле хорошо реагирует на Ctrl+C.
Делаем Ctrl+C. Выходим в shell. Делаем ls -l. Снова замирает. Пока не нажмешь Ctrl+C. И так пока не удалишь библиотеку libgensec.so
Вход по ttys не делается.
Перезагрузка тоже вешается (как и ls -l).И вот дошел до того, что все начинается, если в etc лежит мой файл nsswitch.conf
Вечером найду, чего с ним не так.
Итак, я вычислил строку.
Если в файле nsswitch.conf, в строке
group: files winbind
будет winbind, то при установи самбы41 она замрет и дальше библиотек libgensec.so не даст серверу существовать.
Почему - я незнаю.