Bug 51205 - Не работает система оповещений
Summary: Не работает система оповещений
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: pve-manager (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-08-19 20:41 MSK by Andrey Limachko
Modified: 2024-09-06 17:28 MSK (History)
6 users (show)

See Also:


Attachments
Broken pipe (87.46 KB, image/png)
2024-08-19 20:41 MSK, Andrey Limachko
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Limachko 2024-08-19 20:41:48 MSK
Created attachment 16651 [details]
Broken pipe

Установлены все возможные пакеты, имеющие отношение к pve. В том числе и libpve-rs-perl-0.8.8-alt2, libproxmox-rs-perl-0.3.3-alt2, libpve-notify-perl-8.0.5-alt2.

Шаги воспроизведения:
1. Заходим в Web UI Proxmox
2. Datacenter -> Notifications -> Notification Target -> Add
3. Пытаемся добавить любой target
4. Заполняем необходимые поля
5. Жмём Add

В результате получаем следующую ошибку (на скриншоте):
Connection error 596: Broken pipe

Прописывание параметров вручную в /etc/pve/notifications.cfg и /etc/pve/priv/notifications.cfg не помогает. Оповещения не работают, в Web UI в Notification targets пусто.

В логах ничего интересного не проскакивает. Смотрел в /var/log/ и в journald. Возможно, не там смотрел или нужно включить какой-нибудь особый отладочный режим.

Немного результатов раскопок:
В бэке оповещения обрабатываются в /usr/share/perl5/PVE/Notify.pm. Внутри используется /usr/share/perl5/Proxmox/RS/Notify.pm, через который подгружается rust библиотека /usr/lib64/perl5/auto/libpve_rs.so.
Comment 1 Elena Mishina 2024-08-21 14:55:05 MSK
Попытка создать target (просмотреть список таргетов) в консоли завершается такой ошибкой:

# pvesh create /cluster/notifications/endpoints/sendmail -name test -mailto-user root@pam 

trying to acquire cfs lock 'file-notifications_cfg' ... 
trying to acquire cfs lock 'file-priv_notifications_cfg' ... 
thread '<unnamed>' panicked at /usr/src/RPM/BUILD/proxmox-perl-rs-0.3.3/pve-rs/vendor/proxmox-notify/src/context/mod.rs:42:32: 
context for proxmox-notify has not been set yet 
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace 
fatal runtime error: failed to initiate panic, error 5 
Аварийный останов
Comment 2 Andrey Limachko 2024-08-22 13:02:13 MSK
Видимо, тут нужна особая отладочная rust-магия:

RUST_BACKTRACE=full pvesh create /cluster/notifications/endpoints/sendmail -name test -mailto-user root@pam
trying to acquire cfs lock 'file-notifications_cfg' ...
trying to acquire cfs lock 'file-priv_notifications_cfg' ...
thread '<unnamed>' panicked at /usr/src/RPM/BUILD/proxmox-perl-rs-0.3.3/pve-rs/vendor/proxmox-notify/src/context/mod.rs:42:32:
context for proxmox-notify has not been set yet
stack backtrace:
   0:     0x7fa37ca63d63 - <unknown>
   1:     0x7fa37ca81c6d - <unknown>
   2:     0x7fa37ca6132f - <unknown>
   3:     0x7fa37ca63b62 - <unknown>
   4:     0x7fa37ca419b5 - <unknown>
   5:     0x7fa37ca416c3 - <unknown>
   6:     0x7fa37ca41cf8 - <unknown>
   7:     0x7fa37ca64bea - <unknown>
   8:     0x7fa37ca63f76 - <unknown>
   9:     0x7fa37ca41a14 - <unknown>
  10:     0x7fa37c4c42d5 - <unknown>
  11:     0x7fa37ca89f51 - <unknown>
  12:     0x7fa37c4c429b - <unknown>
  13:     0x7fa37c6e6ccb - <unknown>
  14:     0x7fa37c6d8f04 - <unknown>
  15:     0x7fa37c5277af - <unknown>
  16:     0x7fa37c527246 - <unknown>
  17:     0x7fa37dd2dc38 - <unknown>
  18:     0x7fa37dd1e7b6 - Perl_runops_standard
  19:     0x7fa37dc6dbbe - perl_run
  20:     0x562b83f1f262 - main
  21:     0x7fa37da3fc8c - <unknown>
  22:     0x7fa37da3fd45 - __libc_start_main
  23:     0x562b83f1f2a1 - _start
  24:                0x0 - <unknown>
fatal runtime error: failed to initiate panic, error 5
Аварийный останов
Comment 3 Alexander Burmatov 2024-09-06 17:28:03 MSK
Исправлено в задании #355720.
Также следует обратить внимание на наличие почты у пользователя и наличие у него разрешений (/mapping/notifications).