[devel] Обновление до Samba-4.7 (проблема с tty-ask-password-agent)
Ivan A. Melnikov
iv на altlinux.org
Пн Мар 26 16:09:49 MSK 2018
> В общем, проблему удалось локализовать. К такому странному эффекту у
> нас приводит опция --foreground, которая прописана в новых
> service-файлах.
Там забавно: в сервис-файле там написно "Type=notify", но sd_notify(3) samba
вызывает только когда она стартует как демон; естественно, с --forground
она себя демоном не считает:
http://git.altlinux.org/people/sin/packages/samba.git?p=samba.git;a=blob;f=source4/smbd/server.c;h=60e2797eb74941ba570a9c2cd55a56ffad9b5ef3;hb=HEAD#l430
> Причина фантомного запуска systemd-tty-ask-password-agent,
> предположительно, связана с дефолтным поведением systemd, при наличии
> открытых файловых дескрипторов
systemd-tty-ask-password-agent тут похоже вообще не при чём, он там всегда
светится.
> Планирую убрать опцию --foreground, а --no-process-group оставить.
Разумно.
2018-03-26 16:25 GMT+04:00 Evgeny Sinelnikov <sin на altlinux.org>:
> Здравствуйте,
>
> В общем, проблему удалось локализовать. К такому странному эффекту у
> нас приводит опция --foreground, которая прописана в новых
> service-файлах.
>
> commit e90e3d7efb555dc430ba47c433c96f4f4835f33f
> Author: Andreas Schneider <asn на samba.org>
> Date: Fri Nov 10 09:32:27 2017 +0100
>
> systemd: Start processes in forground and without a process group
>
> We should not double fork in notify mode or systemd think something
> during startup will be wrong and send SIGTERM to the process. So
> sometimes the daemon will not start up correctly.
>
> systemd will also handle the process group.
>
> BUG: https://bugzilla.samba.org/show_bug.cgi?id=13129
>
> Signed-off-by: Andreas Schneider <asn на samba.org>
> Reviewed-by: Andrew Bartlett <abartlet на samba.org>
>
> (cherry picked from commit 8b6f58194da7e849cdb9d20712dff49b17a93a77)
>
> diff --git a/packaging/systemd/samba.service b/packaging/systemd/samba.service
> index 824f89c..1b64c3b 100644
> --- a/packaging/systemd/samba.service
> +++ b/packaging/systemd/samba.service
> @@ -8,7 +8,7 @@ NotifyAccess=all
> PIDFile=/run/samba.pid
> LimitNOFILE=16384
> EnvironmentFile=-/etc/sysconfig/samba
> -ExecStart=/usr/sbin/samba $SAMBAOPTIONS
> +ExecStart=/usr/sbin/samba --foreground --no-process-group $SAMBAOPTIONS
> ExecReload=/usr/bin/kill -HUP $MAINPID
>
> [Install]
>
> Причина фантомного запуска systemd-tty-ask-password-agent,
> предположительно, связана с дефолтным поведением systemd, при наличии
> открытых файловых дескрипторов (тут нужно внимательнее посмотреть на
> поведение опции --foreground, такое поведение должно быть только с
> опцией --interactive).
>
> Планирую убрать опцию --foreground, а --no-process-group оставить.
>
>
>
> 26 марта 2018 г., 1:51 пользователь Evgeny Sinelnikov
> <sin на altlinux.org> написал:
>> Здравствуйте,
>>
>> я подготовил сборку samba-4.7.6:
>> #201848 TESTED #3 [test-only] sisyphus libtalloc.git=2.1.12-alt1%ubt
>> libtdb.git=1.3.15-alt1%ubt libtevent.git=0.9.36-alt1%ubt
>> libldb.git=1.3.2-alt1%ubt samba.git=4.7.6-alt1%ubt
>> samba-DC.git=dc/4.7.6-alt1%ubt openchange.git=2.4-alt23.zentyal23%ubt
>> sssd.git=1.16.1-alt2%ubt freeipa.git=4.6.3-alt4%ubt
>>
>> но столкнулся со странной проблемой при обновлении (на текущей
>> samba-4.6.14 я такой проблемы не наблюдаю) - при старте samba (которая
>> успешно запускается) через systemctl процесс systemd где-то подвисает:
>> root 1329 0.0 0.3 49048 5164 ? Ss 00:09 0:00
>> /usr/sbin/sshd -D
>> root 16841 0.0 0.4 85592 6236 ? Ss 00:24 0:00 \_
>> sshd: vagrant [priv]
>> vagrant 16845 0.1 0.3 85592 4820 ? S 00:24 0:00 |
>> \_ sshd: vagrant на pts/0
>> vagrant 16846 0.1 0.3 19464 5476 pts/0 Ss 00:24 0:00 |
>> \_ -bash
>> root 16956 0.0 0.2 49224 3644 pts/0 S+ 00:26 0:00 |
>> \_ sudo apt-get dist-upgrade
>> root 16957 16.8 10.5 213056 156756 pts/0 S+ 00:26 0:03 |
>> \_ apt-get dist-upgrade
>> root 16980 0.0 0.1 8464 2524 pts/0 S+ 00:26 0:00 |
>> \_ /bin/sh /tmp/.private/root/rpm-tmp.4NuIOg 2
>> root 16981 0.0 0.1 8464 2408 pts/0 S+ 00:26 0:00 |
>> \_ /bin/sh /usr/sbin/post_service samba
>> root 16997 0.0 0.3 66800 5632 pts/0 S+ 00:26 0:00 |
>> \_ systemctl try-restart samba.service
>>
>> При повторном рестарте вручную видно следующую картину:
>> root 1329 0.0 0.3 49048 5164 ? Ss 00:09 0:00
>> /usr/sbin/sshd -D
>> root 16841 0.0 0.4 85592 6236 ? Ss 00:24 0:00 \_
>> sshd: vagrant [priv]
>> vagrant 16845 0.0 0.3 85592 4820 ? S 00:24 0:00 |
>> \_ sshd: vagrant на pts/0
>> vagrant 16846 0.0 0.3 19464 5476 pts/0 Ss 00:24 0:00 |
>> \_ -bash
>> root 18160 0.0 0.2 49224 3668 pts/0 S+ 00:34 0:00 |
>> \_ sudo systemctl restart samba
>> root 18161 0.0 0.3 66800 5612 pts/0 S+ 00:34 0:00 |
>> \_ systemctl restart samba
>> root 18162 0.0 0.2 65044 3156 pts/0 S+ 00:34 0:00 |
>> \_ /sbin/systemd-tty-ask-password-agent --watch
>>
>> Ошибка эта воспроизводится в различных конфигурациях и дистрибутивах:
>> - https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1456789
>> - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=774153
>> - https://github.com/NixOS/nixpkgs/issues/2584
>>
>> У нас что-то подобное тоже проявляется:
>> https://bugzilla.altlinux.org/show_bug.cgi?id=34298
>>
>> Очевидно тут ещё вот что - проблема проявляется только в новой версии.
>> А значит в ней есть какая-то важная особенность. В чём она состоит я
>> пока не разобрался.
>>
>>
>> PS: Есть по сборке несколько моментов, которые нужно учесть, но сейчас
>> речь не о них:
>> - версии libtevent-0.9.36 и ldb-1.3.2 (стоит ли её использовать вместо
>> ldb-1.2.3? С ходу я ничего крамольного по ABI не встретил и решил
>> потестировать);
>> - сборку с нативным Kerberos я отложил до следующего релиза alt2,
>> чтобы ловить регрессии по частям.
>>
>> --
>> Sin (Sinelnikov Evgeny)
>
>
>
> --
> Sin (Sinelnikov Evgeny)
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
--
WBR,
Ivan A. Melnikov
Подробная информация о списке рассылки Devel