Bug 52487

Summary: перестал работать после обновления с p10 на p11
Product: Branch p11 Reporter: Denis G. Samsonenko <d.g.samsonenko>
Component: hasher-privAssignee: qa-team <qa-team>
Status: CLOSED NOTABUG QA Contact: qa-p11 <qa-p11>
Severity: major    
Priority: P5 CC: d.g.samsonenko, iv
Version: unspecified   
Hardware: x86_64   
OS: Linux   

Description Denis G. Samsonenko 2024-12-20 11:31:15 MSK
После перехода с p10 на p11 перестал работать hasher. Конкретно не запускается сервис hasher-privd.

# rpm -q hasher-priv
hasher-priv-2.0.14-alt1.x86_64

# systemctl restart hasher-privd.service
[root@ogion etc]# systemctl status hasher-privd.service
× hasher-privd.service - A privileged helper for the hasher project
     Loaded: loaded (/usr/lib/systemd/system/hasher-privd.service; enabled; preset: disabled)
     Active: failed (Result: exit-code) since Fri 2024-12-20 15:17:47 +07; 1s ago
   Duration: 911us
       Docs: man:hasher-priv(8)
    Process: 36575 ExecStart=/usr/sbin/hasher-privd (code=exited, status=1/FAILURE)
   Main PID: 36575 (code=exited, status=1/FAILURE)
        CPU: 888us

дек 20 15:17:47 ogion.localdomain systemd[1]: hasher-privd.service: Scheduled restart job, restart counter is at 5.
дек 20 15:17:47 ogion.localdomain systemd[1]: hasher-privd.service: Start request repeated too quickly.
дек 20 15:17:47 ogion.localdomain systemd[1]: hasher-privd.service: Failed with result 'exit-code'.
дек 20 15:17:47 ogion.localdomain systemd[1]: Failed to start hasher-privd.service - A privileged helper for the hasher project.


В журнале следующее:

дек 20 15:17:45 ogion.localdomain systemd[1]: Started hasher-privd.service - A privileged helper for the hasher project.
дек 20 15:17:45 ogion.localdomain hasher-privd[36566]: hasher-privd: stat_root_ok_validator: /: bad owner: 1000
дек 20 15:17:45 ogion.localdomain systemd[1]: hasher-privd.service: Main process exited, code=exited, status=1/FAILURE
дек 20 15:17:45 ogion.localdomain systemd[1]: hasher-privd.service: Failed with result 'exit-code'.
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Scheduled restart job, restart counter is at 1.
дек 20 15:17:46 ogion.localdomain systemd[1]: Started hasher-privd.service - A privileged helper for the hasher project.
дек 20 15:17:46 ogion.localdomain hasher-privd[36569]: hasher-privd: stat_root_ok_validator: /: bad owner: 1000
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Main process exited, code=exited, status=1/FAILURE
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Failed with result 'exit-code'.
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Scheduled restart job, restart counter is at 2.
дек 20 15:17:46 ogion.localdomain systemd[1]: Started hasher-privd.service - A privileged helper for the hasher project.
дек 20 15:17:46 ogion.localdomain hasher-privd[36571]: hasher-privd: stat_root_ok_validator: /: bad owner: 1000
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Main process exited, code=exited, status=1/FAILURE
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Failed with result 'exit-code'.
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Scheduled restart job, restart counter is at 3.
дек 20 15:17:46 ogion.localdomain systemd[1]: Started hasher-privd.service - A privileged helper for the hasher project.
дек 20 15:17:46 ogion.localdomain hasher-privd[36573]: hasher-privd: stat_root_ok_validator: /: bad owner: 1000
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Main process exited, code=exited, status=1/FAILURE
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Failed with result 'exit-code'.
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Scheduled restart job, restart counter is at 4.
дек 20 15:17:46 ogion.localdomain systemd[1]: Started hasher-privd.service - A privileged helper for the hasher project.
дек 20 15:17:46 ogion.localdomain hasher-privd[36575]: hasher-privd: stat_root_ok_validator: /: bad owner: 1000
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Main process exited, code=exited, status=1/FAILURE
дек 20 15:17:46 ogion.localdomain systemd[1]: hasher-privd.service: Failed with result 'exit-code'.
дек 20 15:17:47 ogion.localdomain systemd[1]: hasher-privd.service: Scheduled restart job, restart counter is at 5.
дек 20 15:17:47 ogion.localdomain systemd[1]: hasher-privd.service: Start request repeated too quickly.
дек 20 15:17:47 ogion.localdomain systemd[1]: hasher-privd.service: Failed with result 'exit-code'.
дек 20 15:17:47 ogion.localdomain systemd[1]: Failed to start hasher-privd.service - A privileged helper for the hasher project.
Comment 1 Ivan A. Melnikov 2024-12-20 11:51:57 MSK
> дек 20 15:17:45 ogion.localdomain hasher-privd[36566]: hasher-privd: stat_root_ok_validator: /: bad owner: 1000

Пожалуйста, покажите вывод команды

stat /
Comment 2 Denis G. Samsonenko 2024-12-20 13:21:35 MSK
(Ответ для Ivan A. Melnikov на комментарий #1)
> > дек 20 15:17:45 ogion.localdomain hasher-privd[36566]: hasher-privd: stat_root_ok_validator: /: bad owner: 1000
> 
> Пожалуйста, покажите вывод команды
> 
> stat /

О, вот так я увидел, что у меня почему-то владельцем корня оказался не root, а пользователь. Видимо это случилось после моих неудачных манипуляций, когда id пользователя с 500 на 1000 менял, и проходился chown рекурсивно.

Сменил владельца корня на root, после чего hasher-privd стал запускаться.
Comment 3 Ivan A. Melnikov 2024-12-20 13:52:29 MSK
Что ж, такое поведение hasher-privd -- это by design.

Рекомендую посмотреть, что ещё могло пострадать. Возможно даже с примененнием чего-нибудь типа

rpm -Va  --nomd5 --nodigest --nosignature  | grep ^.M
Comment 4 Denis G. Samsonenko 2024-12-20 14:36:14 MSK
(Ответ для Ivan A. Melnikov на комментарий #3)
> Что ж, такое поведение hasher-privd -- это by design.
> 
> Рекомендую посмотреть, что ещё могло пострадать. Возможно даже с
> примененнием чего-нибудь типа
> 
> rpm -Va  --nomd5 --nodigest --nosignature  | grep ^.M

Спасибо! Я проверил указанным методом, вроде ничего криминального не вижу.

Вообще, я вовремя заметил, что chown -R не трогает сами симлинки, а меняет владельца там, куда эти симлинки ведут (а они могут вести и наружу). 

До этого случая я как-то не подозревал о таких особенностях работы chown.

Соответственно далее стал запускать chown -R -h, и попытался отследить и исправить, где уже накосячил.

Однако корень я проглядел, т.к. делал обычно ls -Al, а он не показывает текущую и родительскую директории. Про stat я был не в курсе.

После того, как увидел в выводе stat подозрительное, сделал ls -al на коре, и убедился, что хозяин корня неправильный.