Bug 41706 - Segmentation fault при создании Samba-домена через ЦУС
Summary: Segmentation fault при создании Samba-домена через ЦУС
Status: CLOSED WORKSFORME
Alias: None
Product: Sisyphus
Classification: Development
Component: samba-dc (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Evgeny Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-01-13 11:25 MSK by Nikita Obukhov
Modified: 2022-06-06 16:16 MSK (History)
11 users (show)

See Also:


Attachments
/tmp/samba-dc-provision-13.01.2022-10:46:22-samba.test.log (9.19 KB, application/octet-stream)
2022-01-13 11:25 MSK, Nikita Obukhov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nikita Obukhov 2022-01-13 11:25:32 MSK
Created attachment 10118 [details]
/tmp/samba-dc-provision-13.01.2022-10:46:22-samba.test.log

Настройка производится по документации Альт Сервер 10.0 Редакция ноябрь, 2021
https://docs.altlinux.org/ru-RU/alt-server/10.0/html/alt-server/sambadc--chapter.html
Сервер установлен в профиле Сервер Samba-DC (Контроллер AD)
Версия samba-dc: 4.14.10-alt2
Шаги воспроизведения:
Остановить конфликтующие службы krb5kdc и slapd, а также bind: 
# for service in smb nmb krb5kdc slapd bind; do chkconfig $service off; service $service stop; done

Очистить базы и конфигурацию Samba
# rm -f /etc/samba/smb.conf
# rm -rf /var/lib/samba
# rm -rf /var/cache/samba
# mkdir -p /var/lib/samba/sysvol

Должно быть установлено правильное имя узла и домена для сервера
HOSTNAME=ad.samba.test в /etc/sysconfig/network
# hostnamectl set-hostname ad.samba.test
# domainname test.alt

В веб-альтераторе в модуле Ethernet-интерфейсы указать имя компьютера и DNS 127.0.0.1

В модуле Домен указать имя домена, отметить пункт Active Directory, указать IP-адреса внешних DNS-серверов, задать пароль администратора домена и нажать кнопку Применить

Ожидаемый результат:
Успешное создание домена

Реальный результат:
Ошибка создания домена Active Directory. Подробности в файле /tmp/samba-dc-provision-13.01.2022-10:46:22-samba.test.log

После этого очистил базу и конфигурацию Samba и попробовал создать домен через команду:
# samba-tool domain provision --realm=samba.test --domain samba --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc
Возникает аналогичная ошибка.

Так же на чистой системе, выполнил аналогичные действия но создание домена выполнил через консоль, без пункта 46.2.3

Домен успешно создан.
Comment 1 Andrey Cherepanov 2022-01-13 12:22:32 MSK
Не воспроизводится даже без подкачки.
samba-dc-4.14.10-alt2.x86_64
# free
               total        used        free      shared  buff/cache   available
Mem:         2031432      105116     1320812         712      605504     1776232
Swap:              0           0           0

Проверьте целостность и загруженность памяти. Создайте подкачку по http://altlinux.org/Swap
Comment 2 Nikita Obukhov 2022-01-13 15:41:13 MSK
Добавил файл подкачки:
# free -h
               total        used        free      shared  buff/cache   available
Mem:           3,8Gi       118Mi       3,5Gi       716Ki       193Mi       3,5Gi
Swap:          4,0Gi          0B       4,0Gi

Ошибка все равно воспроизводится.
Comment 3 Andrey Cherepanov 2022-01-13 17:25:44 MSK
Проверяйте память. Запускайте через gdb с отладкой.
Comment 4 Anton Shevtsov 2022-02-16 14:56:50 MSK
Столкнулся с этой же проблемой.
Проблема проявляется у меня только в виртуальной среде (virt-manager), в virtualbox - все ок
Comment 5 Anton Farygin 2022-02-16 14:57:55 MSK
а если тип процессора сменить на HOST - не полегчает ?
Comment 6 Anton Shevtsov 2022-02-16 15:09:23 MSK
(Ответ для Anton Farygin на комментарий #5)
> а если тип процессора сменить на HOST - не полегчает ?

так и стоит по умолчанию
Comment 7 Evgeny Sinelnikov 2022-02-16 15:13:46 MSK
Мне кажется, что дело вовсе не в системе виртуализации, а в том как получен образ. Для samba-dc на Heimdal должно быть так:

[root@dc0 ~]# readlink -f /usr/bin/samba-tool
/usr/lib64/samba-dc/bin/samba-tool
[root@dc0 ~]# grep -v -e "^# " -e "^#$" /usr/lib64/samba-dc/bin/samba-tool | head
#!/usr/bin/python3


import sys

sys.path.insert(0, "/usr/lib64/samba-dc/python3.9")

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)


У Heimdal сборки свои модули питоновские должны подключаться из каталога /usr/lib64/samba-dc:

[root@dc0 ~]# alternatives-list |grep samba
/usr/bin/pdbedit points to /usr/lib64/samba-dc/bin/pdbedit
/usr/bin/samba-tool-plus points to /usr/lib64/samba-dc/bin/samba-tool-plus
/usr/sbin/samba_kcc points to /usr/lib64/samba-dc/sbin/samba_kcc
/usr/bin/samba-tool points to /usr/lib64/samba-dc/bin/samba-tool
/usr/sbin/samba_dnsupdate points to /usr/lib64/samba-dc/sbin/samba_dnsupdate
/usr/sbin/nmbd points to /usr/lib64/samba-dc/sbin/nmbd
/usr/bin/ntlm_auth points to /usr/lib64/samba-dc/bin/ntlm_auth
/usr/sbin/smbd points to /usr/lib64/samba-dc/sbin/smbd
/usr/sbin/samba_upgradedns points to /usr/lib64/samba-dc/sbin/samba_upgradedns
/usr/sbin/samba_downgrade_db points to /usr/lib64/samba-dc/sbin/samba_downgrade_db
/usr/lib64/samba/ldb points to /usr/lib64/samba-dc/ldb
/usr/sbin/samba_spnupdate points to /usr/lib64/samba-dc/sbin/samba_spnupdate
/usr/sbin/samba points to /usr/lib64/samba-dc/sbin/samba
/usr/bin/wbinfo points to /usr/lib64/samba-dc/bin/wbinfo
/usr/sbin/winbindd points to /usr/lib64/samba-dc/sbin/winbindd
/usr/bin/samba_downgrade_db points to /usr/lib64/samba/sbin/samba_downgrade_db
/usr/sbin/eventlogadm points to /usr/lib64/samba-dc/sbin/eventlogadm


Такое ощущение, что какая-то из установок "разломана", поэтому оно у нас и не воспроизводится.
Comment 8 Anton Shevtsov 2022-02-16 15:23:41 MSK
[root@dc ~]# readlink -f /usr/bin/samba-tool
/usr/lib64/samba-dc/bin/samba-tool
[root@dc ~]# grep -v -e "^# " -e "^#$" /usr/lib64/samba-dc/bin/samba-tool | head
#!/usr/bin/python3


import sys

sys.path.insert(0, "/usr/lib64/samba-dc/python3.9")

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

[root@dc ~]# alternatives-list |grep samba
/usr/sbin/samba_spnupdate points to /usr/lib64/samba-dc/sbin/samba_spnupdate
/usr/sbin/smbd points to /usr/lib64/samba-dc/sbin/smbd
/usr/sbin/winbindd points to /usr/lib64/samba-dc/sbin/winbindd
/usr/bin/samba-tool points to /usr/lib64/samba-dc/bin/samba-tool
/usr/sbin/eventlogadm points to /usr/lib64/samba-dc/sbin/eventlogadm
/usr/sbin/samba points to /usr/lib64/samba-dc/sbin/samba
/usr/lib64/samba/ldb points to /usr/lib64/samba-dc/ldb
/usr/bin/ntlm_auth points to /usr/lib64/samba-dc/bin/ntlm_auth
/usr/bin/wbinfo points to /usr/lib64/samba-dc/bin/wbinfo
/usr/bin/pdbedit points to /usr/lib64/samba-dc/bin/pdbedit
/usr/sbin/samba_kcc points to /usr/lib64/samba-dc/sbin/samba_kcc
/usr/sbin/samba_upgradedns points to /usr/lib64/samba-dc/sbin/samba_upgradedns
/usr/sbin/nmbd points to /usr/lib64/samba-dc/sbin/nmbd
/usr/sbin/samba_dnsupdate points to /usr/lib64/samba-dc/sbin/samba_dnsupdate
/usr/sbin/samba_downgrade_db points to /usr/lib64/samba-dc/sbin/samba_downgrade_db
/usr/bin/samba_downgrade_db points to /usr/lib64/samba/sbin/samba_downgrade_db
Comment 9 Anton Shevtsov 2022-02-16 15:25:11 MSK
поясню..
скачал с гетальт.ру сегодня
ничего руками не ставил, только то что инсталлятор дал,
потом dist-upgrade, update-kernel и по мануалу copy-paste
Comment 10 Anton Shevtsov 2022-02-16 20:41:31 MSK
Продолжил поиск закономернстей.
На машине под п9, в virt-manager развернул 10ый сервер, и все прошло удачно.
На workstation p10, в virt-manager развернул 10ый сервер - segfault.. хотя в целом, все виртаулки работают, никаких нареканий, только samba-tool падает
Comment 11 Anton Farygin 2022-02-16 22:21:55 MSK
Если это так легко воспроизводится, то проще разработчику samba запустить под gdb и посмотреть где падает.
Comment 12 Evgeny Sinelnikov 2022-02-16 23:02:07 MSK
(Ответ для Anton Shevtsov на комментарий #10)
> Продолжил поиск закономернстей.
> На машине под п9, в virt-manager развернул 10ый сервер, и все прошло удачно.
> На workstation p10, в virt-manager развернул 10ый сервер - segfault.. хотя в
> целом, все виртаулки работают, никаких нареканий, только samba-tool падает

Там, где падает, можно получить вывод команд:
# alternatives-list | grep samba
# readlink -f /usr/bin/samba-tool
# grep -v -e "^# " -e "^#$" /usr/lib64/samba-dc/bin/samba-tool | head
# readlink -f /usr/lib64/samba/ldb

?

Я ведь правильно понимаю, что после попытки поднять домен через ЦУС система входит в такое состояние, что даже через консоль напрямую возникает ошибка?

И воспроизводится это только на kvm-виртулке, поднятой через virt-manager?

Если всё так, то я делаю такой набор предположений:
- либо образ kvm-виртуалке отличается от других;
- либо одни и те же действия на очень похожих образах kvm- и не kvm-виртуалках приводят систему в различные состояния.
Comment 13 Evgeny Sinelnikov 2022-02-17 02:14:24 MSK
(Ответ для Anton Farygin на комментарий #11)
> Если это так легко воспроизводится, то проще разработчику samba запустить
> под gdb и посмотреть где падает.

Проблематично искать что-то вслепую. Буду благодарен, если кто-нибудь с этим поможет. Не уверен, что это так просто. Это только так кажется. На это можно пару дней убить.

Я бы хотел снять часть подозрений и рассчитываю получить ответы на вопросы выше об окружении и состоянии, в котором проблема воспроизводится.
Comment 14 Evgeny Sinelnikov 2022-02-17 02:16:07 MSK
(Ответ для Evgeny Sinelnikov на комментарий #12)
Здесь, ошибка. Нужно так.
...
> # grep -v -e "^# " -e "^#$" /usr/bin/samba-tool | head
...
Comment 15 Anton Shevtsov 2022-02-17 07:35:01 MSK
Удивительное дело.
С утра проделал на Workstation p10 все те же манипуляции, что делал множство раз вчера - и все идет как по маслу, без ошибок.
То же железо, тот же образ, тот же копипаст из мануалов..
Я в растерянности.
Comment 16 Egor S. Orlov 2022-05-05 13:48:43 MSK
У меня стабильно повторяется этот Segfault безотносительно физического узла или среды виртуализации при условии развертывании AD альтератором. 
Использование samba-tool после alterator-а приводит к аналогичному результату.
Если сразу ставить средствами samba-tool - домен поднимается без ошибок.
АльтСервер p10, текущие обновления, samba-dc-4.14.12-alt2.x86_64

Запрошенный Евгением вывод команд (отличий не вижу)

-- before alterator

# alternatives-list | grep samba
/usr/bin/pdbedit points to /usr/lib64/samba-dc/bin/pdbedit
/usr/sbin/samba_kcc points to /usr/lib64/samba-dc/sbin/samba_kcc
/usr/bin/samba-tool points to /usr/lib64/samba-dc/bin/samba-tool
/usr/sbin/samba_dnsupdate points to /usr/lib64/samba-dc/sbin/samba_dnsupdate
/usr/sbin/nmbd points to /usr/lib64/samba-dc/sbin/nmbd
/usr/bin/ntlm_auth points to /usr/lib64/samba-dc/bin/ntlm_auth
/usr/sbin/smbd points to /usr/lib64/samba-dc/sbin/smbd
/usr/sbin/samba_upgradedns points to /usr/lib64/samba-dc/sbin/samba_upgradedns
/usr/sbin/samba_downgrade_db points to /usr/lib64/samba-dc/sbin/samba_downgrade_db
/usr/lib64/samba/ldb points to /usr/lib64/samba-dc/ldb
/usr/sbin/samba_spnupdate points to /usr/lib64/samba-dc/sbin/samba_spnupdate
/usr/sbin/samba points to /usr/lib64/samba-dc/sbin/samba
/usr/bin/wbinfo points to /usr/lib64/samba-dc/bin/wbinfo
/usr/sbin/winbindd points to /usr/lib64/samba-dc/sbin/winbindd
/usr/bin/samba_downgrade_db points to /usr/lib64/samba/sbin/samba_downgrade_db
/usr/sbin/eventlogadm points to /usr/lib64/samba-dc/sbin/eventlogadm

# readlink -f /usr/bin/samba-tool
/usr/lib64/samba-dc/bin/samba-tool

# grep -v -e "^# " -e "^#$" /usr/bin/samba-tool | head
#!/usr/bin/python3


import sys

sys.path.insert(0, "/usr/lib64/samba-dc/python3.9")

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

# readlink -f /usr/lib64/samba/ldb
/usr/lib64/samba-dc/ldb



-- after alterator

# alternatives-list | grep samba
/usr/bin/pdbedit points to /usr/lib64/samba-dc/bin/pdbedit
/usr/sbin/samba_kcc points to /usr/lib64/samba-dc/sbin/samba_kcc
/usr/bin/samba-tool points to /usr/lib64/samba-dc/bin/samba-tool
/usr/sbin/samba_dnsupdate points to /usr/lib64/samba-dc/sbin/samba_dnsupdate
/usr/sbin/nmbd points to /usr/lib64/samba-dc/sbin/nmbd
/usr/bin/ntlm_auth points to /usr/lib64/samba-dc/bin/ntlm_auth
/usr/sbin/smbd points to /usr/lib64/samba-dc/sbin/smbd
/usr/sbin/samba_upgradedns points to /usr/lib64/samba-dc/sbin/samba_upgradedns
/usr/sbin/samba_downgrade_db points to /usr/lib64/samba-dc/sbin/samba_downgrade_db
/usr/lib64/samba/ldb points to /usr/lib64/samba-dc/ldb
/usr/sbin/samba_spnupdate points to /usr/lib64/samba-dc/sbin/samba_spnupdate
/usr/sbin/samba points to /usr/lib64/samba-dc/sbin/samba
/usr/bin/wbinfo points to /usr/lib64/samba-dc/bin/wbinfo
/usr/sbin/winbindd points to /usr/lib64/samba-dc/sbin/winbindd
/usr/bin/samba_downgrade_db points to /usr/lib64/samba/sbin/samba_downgrade_db
/usr/sbin/eventlogadm points to /usr/lib64/samba-dc/sbin/eventlogadm

# readlink -f /usr/bin/samba-tool
/usr/lib64/samba-dc/bin/samba-tool

# grep -v -e "^# " -e "^#$" /usr/bin/samba-tool | head
#!/usr/bin/python3


import sys

sys.path.insert(0, "/usr/lib64/samba-dc/python3.9")

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

# readlink -f /usr/lib64/samba/ldb
/usr/lib64/samba-dc/ldb
Comment 17 Alexander Makeenkov 2022-06-06 16:16:18 MSK
В p10 с пакетом libshell-0.4.10-alt1 из задания 301129 ошибка не воспроизводится (настройка домена через альтератор, виртуальная среда Proxmox, система ALT Server 10).

C предыдущей версией libshell-0.4.9-alt1 воспроизводится стабильно.