[devel] Обновление до Samba-4.7 (проблема с tty-ask-password-agent)

Evgeny Sinelnikov sin на altlinux.org
Пн Мар 26 15:25:42 MSK 2018


Здравствуйте,

В общем, проблему удалось локализовать. К такому странному эффекту у
нас приводит опция --foreground, которая прописана в новых
service-файлах.

commit e90e3d7efb555dc430ba47c433c96f4f4835f33f
Author: Andreas Schneider <asn at 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 at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at 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 at 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 at 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 at 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