Bug 51894 - Не работает веб интерфейс
Summary: Не работает веб интерфейс
Status: REOPENED
Alias: None
Product: Branch p11
Classification: Unclassified
Component: ravada (show other bugs)
Version: unspecified
Hardware: x86_64 Linux
: P5 normal
Assignee: Andrew Vasilyev
QA Contact: qa-p11@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-10-30 17:59 MSK by Pavel Sivolapov
Modified: 2025-04-08 11:07 MSK (History)
3 users (show)

See Also:


Attachments
Скриншот (655.80 KB, image/png)
2025-04-07 15:54 MSK, Artem Varaksa
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pavel Sivolapov 2024-10-30 17:59:28 MSK
Стенды:
Alt Server 11.0 x86_64 - обновлен до sisyphus
Alt Workstation 11.0 x86_64 - обновлен до sisyphus

Версия пакета:
ravada-2.3.1-alt1.noarch

Шаги воспроизведения:
1. Установить пакет:
   # apt-get install ravada

2. Выполнить настройку до момента включения служб rvd_back и rvd_front
   https://www.altlinux.org/VDI/Ravada

3. Запустить службы:
# systemctl enable --now rvd_back
# systemctl enable --now rvd_front   

4. Перейти в веб интерфейс:
   http://<ip>:8081
5. Залогиниться под созданным пользователем на этапе настройки

Ожидаемый результат:
Открылся веб интерфейс

Реальный результат:
Белый экран. В f12 есть ошибки 404 на ресурсы по адресу:
http://localhost:8081/fallback/*

Пример:
http://localhost:8081/fallback/angular-1.8.2/angular-resource.min.js

Сравнение # curl http://localhost:8081/fallback

Версия ravada-2.3.1-alt1
<script src="/fallback/angular-1.8.2/angular-resource.min.js"></script>

Версия ravada-1.7.2-alt1
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular-resource.min.js"></script>

fallback отключен в /usr/sbin/rvd_front 
,fallback => 0

В гите ravada https://github.com/UPC/ravada/blob/main/script/rvd_front
,fallback => $CONFIG_FRONT->{fallback}

Чинится исправлением строки в /etc/rvd_front.conf
,fallback => 1 
на
,fallback => 0 

Или сборкой пакета с файлом fallback.conf и правильно заданными переменными
Comment 1 Andrew Vasilyev 2024-10-30 18:12:09 MSK
  Пожалуйста, проверьте из задания #361186
Comment 2 Pavel Sivolapov 2024-10-31 10:58:48 MSK
(Ответ для Andrew Vasilyev на комментарий #1)
>   Пожалуйста, проверьте из задания #361186

Файл fallback.conf появился, но эффекта не возымело.

Может поэтому?
https://github.com/UPC/ravada/blob/main/etc/get_fallback.pl

my $DIR_FALLBACK = getcwd.'/public/fallback';

mkdir $DIR_FALLBACK or die "Error: $! $DIR_FALLBACK"
    if ! -e $DIR_FALLBACK;

Скрипт опирается на ссылки из fallback.conf и скачивает эти файлы в определенные директории внутри директории /usr/share/ravada/public/fallback

Данной директории нет в пакете

# rpm -ql ravada | grep fallback
/etc/fallback.conf
Comment 3 Andrew Vasilyev 2024-10-31 13:06:19 MSK
(Ответ для Pavel Sivolapov на комментарий #2)
> https://github.com/UPC/ravada/blob/main/etc/get_fallback.pl
> 
> my $DIR_FALLBACK = getcwd.'/public/fallback';
> 
> mkdir $DIR_FALLBACK or die "Error: $! $DIR_FALLBACK"
>     if ! -e $DIR_FALLBACK;

  Но этот скрипт не пакуется и нигде не вызывается в коде ravada :(

> Скрипт опирается на ссылки из fallback.conf и скачивает эти файлы в

  В скрипте явная ошибка, конфиг он ищет в текущем каталоге:

my $FILE_CONFIG = 'etc/fallback.conf';
...
open my $in,'<',$FILE_CONFIG or die "$! $FILE_CONFIG";

  Т.е. нужно искать другой способ решения проблемы :(
Comment 4 Pavel Sivolapov 2024-10-31 16:57:03 MSK
(Ответ для Andrew Vasilyev на комментарий #3)

>   Но этот скрипт не пакуется и нигде не вызывается в коде ravada :(

https://github.com/UPC/ravada/blob/main/deb/debianize.pl#L372C1-L372C16

get_fallback();

Принтит всё что в get_fallback.pl и выполняет, то что в нём

Доп:
https://github.com/UPC/ravada/issues/1968
https://ravada.readthedocs.io/en/latest/docs/local_resources.html

Разработчики не стали бы мерджить fallback просто так...
https://github.com/UPC/ravada/pull/1124/commits/7e9797a586bc533f0db57c9518afbaf7ed7cc430

>   В скрипте явная ошибка, конфиг он ищет в текущем каталоге:
> 
> my $FILE_CONFIG = 'etc/fallback.conf';
> ...
> open my $in,'<',$FILE_CONFIG or die "$! $FILE_CONFIG";
> 
>   Т.е. нужно искать другой способ решения проблемы :(

Используют /etc для файлов не входящих в итоговый пакет, звучит логично.
Comment 5 Andrew Vasilyev 2024-10-31 17:51:41 MSK
(Ответ для Pavel Sivolapov на комментарий #4)
> (Ответ для Andrew Vasilyev на комментарий #3)
> >   Но этот скрипт не пакуется и нигде не вызывается в коде ravada :(
> 
> https://github.com/UPC/ravada/blob/main/deb/debianize.pl#L372C1-L372C16
> 
> get_fallback();
> 
> Принтит всё что в get_fallback.pl и выполняет, то что в нём

  Этот скрипт выполняется при сборке в Debian, у нас он отсутствует.
  И именно ему нужен локальный etc/fallback.conf из дерева исходников.
  В систему этот конфиг не ставится и никем не используется.

> Доп:
> https://github.com/UPC/ravada/issues/1968
> https://ravada.readthedocs.io/en/latest/docs/local_resources.html
> 
> Разработчики не стали бы мерджить fallback просто так...
> https://github.com/UPC/ravada/pull/1124/commits/
> 7e9797a586bc533f0db57c9518afbaf7ed7cc430
> 
> >   В скрипте явная ошибка, конфиг он ищет в текущем каталоге:
> > 
> > my $FILE_CONFIG = 'etc/fallback.conf';
> > ...
> > open my $in,'<',$FILE_CONFIG or die "$! $FILE_CONFIG";
> > 
> >   Т.е. нужно искать другой способ решения проблемы :(
> 
> Используют /etc для файлов не входящих в итоговый пакет, звучит логично.

  Ещё раз: не /etc,
Comment 6 Andrew Vasilyev 2024-10-31 17:53:10 MSK
  Уехал битый комментарий :(

> (Ответ для Andrew Vasilyev на комментарий #3)
> >   Но этот скрипт не пакуется и нигде не вызывается в коде ravada :(
> 
> https://github.com/UPC/ravada/blob/main/deb/debianize.pl#L372C1-L372C16
> 
> get_fallback();
> 
> Принтит всё что в get_fallback.pl и выполняет, то что в нём

  Этот скрипт выполняется при сборке в Debian, у нас он отсутствует.
  И именно ему нужен локальный etc/fallback.conf из дерева исходников.
  В систему этот конфиг не ставится и никем не используется.

> Доп:
> https://github.com/UPC/ravada/issues/1968
> https://ravada.readthedocs.io/en/latest/docs/local_resources.html
> 
> Разработчики не стали бы мерджить fallback просто так...
> https://github.com/UPC/ravada/pull/1124/commits/
> 7e9797a586bc533f0db57c9518afbaf7ed7cc430
> 
> >   В скрипте явная ошибка, конфиг он ищет в текущем каталоге:
> > 
> > my $FILE_CONFIG = 'etc/fallback.conf';
> > ...
> > open my $in,'<',$FILE_CONFIG or die "$! $FILE_CONFIG";
> > 
> >   Т.е. нужно искать другой способ решения проблемы :(
> 
> Используют /etc для файлов не входящих в итоговый пакет, звучит логично.

  Ещё раз: не /etc, а etc/..., т.е. тот etc/, что в дереве исходников.
Comment 7 Andrew Vasilyev 2024-10-31 17:58:37 MSK
  Видится 2 варианта решения:

1. Отключить fallback в /etc/rvd_front.conf при начальной установке.

2. Запаковать содержимое указанных в etc/fallback.conf сайтов в
  /usr/share/ravada/public/fallback и тащить его с собой.

  IMHO, 2-й вариант так себе :(
Comment 8 Pavel Sivolapov 2024-10-31 18:06:29 MSK
(Ответ для Andrew Vasilyev на комментарий #7)
>   Видится 2 варианта решения:
> 
> 1. Отключить fallback в /etc/rvd_front.conf при начальной установке.
> 
> 2. Запаковать содержимое указанных в etc/fallback.conf сайтов в
>   /usr/share/ravada/public/fallback и тащить его с собой.
> 
>   IMHO, 2-й вариант так себе :(

Второй вариант сработает, если будет правильное дерево директорий, чтобы обращения были на нужные файлы, и если будут изменения версий используемых ресурсов, то и содержимое файлов придется обновлять.

Первый вариант хорош тем, что дефолтное значение fallback и так 0 в /usr/sbin/rvd_front
Comment 9 Andrew Vasilyev 2024-10-31 19:29:53 MSK
(Ответ для Pavel Sivolapov на комментарий #8)
> Первый вариант хорош тем, что дефолтное значение fallback и так 0 в
> /usr/sbin/rvd_front

  Сделал fallback = 0, то же задание.
Comment 10 Pavel Sivolapov 2024-11-01 12:04:14 MSK
(Ответ для Andrew Vasilyev на комментарий #9)

>   Сделал fallback = 0, то же задание.

Не воспроизводится.
Comment 11 Andrew Vasilyev 2024-11-01 14:59:12 MSK
  По-хорошему нужно будет добавить get_fallback.pl и конфиг к нему в
  пакет, чтобы админ мог заполнить /usr/share/ravada/public/fallback/
  на работающей системе.
Comment 12 Alexander Makeenkov 2024-11-01 15:04:51 MSK
(Ответ для Andrew Vasilyev на комментарий #1)
>   Пожалуйста, проверьте из задания #361186

(Ответ для Pavel Sivolapov на комментарий #10)
> (Ответ для Andrew Vasilyev на комментарий #9)
> 
> >   Сделал fallback = 0, то же задание.
> 
> Не воспроизводится.

А коммит в репозиторий планируется?
Задание 361186 удалено.
Comment 13 Andrew Vasilyev 2024-11-01 15:45:43 MSK
(Ответ для Alexander Makeenkov на комментарий #12)
> А коммит в репозиторий планируется?
> Задание 361186 удалено.

#361427 AWAITING #1.2 sisyphus/andy ravada.git=2.3.1-alt2
Comment 14 Repository Robot 2024-11-01 17:55:39 MSK
ravada-2.3.1-alt2 -> sisyphus:

 Thu Oct 31 2024 Andrew A. Vasilyev <andy@altlinux> 2.3.1-alt2
 - change fallback in config to default=0 (ALT #51894)
 - add sysusers support
Comment 15 Andrew Vasilyev 2024-11-01 18:09:21 MSK
  В задании #361460 упакован скрипт get_fallback.pl,
  который, по идее, должен скачать что-то в public/fallback,
  после чего можно попробовать сделать fallback => 1 в /etc/rvd_front.conf
Comment 16 Artem Varaksa 2025-04-07 13:08:55 MSK
Ошибка всё ещё воспроизводится в p11.

[p11] ALT Server 11.0 beta20250213 x86_64
ravada-2.2.2-alt1.noarch
Comment 17 Andrew Vasilyev 2025-04-07 14:39:31 MSK
(Ответ для Artem Varaksa на комментарий #16)
> Ошибка всё ещё воспроизводится в p11.
> 
> [p11] ALT Server 11.0 beta20250213 x86_64
> ravada-2.2.2-alt1.noarch

  Пожалуйста, проверьте из задания #380713
Comment 18 Artem Varaksa 2025-04-07 15:54:03 MSK
Created attachment 18160 [details]
Скриншот

Проверил с test-only try 1 TESTED 380713.

Возникают другие ошибки уже на экране авторизации. Поля для ввода логина/пароля появляются, но потом сразу исчезают (см. скриншот).

Ошибки в консоли бразуера:

> GET http://<ip>:8081/ 401 (Unauthorized)
>
> booking.module.js?v=2.3.3:10 Uncaught SyntaxError: The requested module './booking.services.js' does not provide an export named 'svcLocal' (at booking.module.js?v=2.3.3:10:42)
>
> jquery-3.5.1.slim.min.js:2 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.8.2/$injector/modulerr?p0=ravada.app&p1=Error%3A%20%5B%24injector%3Amodulerr%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.8.2%2F%24injector%2Fmodulerr%3Fp0%3Dravada.booking%26p1%3DError%253A%2520%255B%2524injector%253Anomod%255D%2520http%253A%252F%252Ferrors.angularjs.org%252F1.8.2%252F%2524injector%252Fnomod%253Fp0%253Dravada.booking%250A%2520%2520%2520%2520at%2520https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.8.2%252Fangular.min.js%253A7%253A168%250A%2520%2520%2520%2520at%2520https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.8.2%252Fangular.min.js%253A26%253A503%250A%2520%2520%2520%2520at%2520b%2520(https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.8.2%252Fangular.min.js%253A26%253A25)%250A%2520%2520%2520%2520at%2520https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.8.2%252Fangular.min.js%253A26%253A277%250A%2520%2520%2520%2520at%2520https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.8.2%252Fangular.min.js%253A43%253A201%250A%2520%2520%2520%2520at%2520r%2520(https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.8.2%252Fangular.min.js%253A8%253A76)%250A%2520%2520%2520%2520at%2520g%2520(https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.8.2%252Fangular.min.js%253A43%253A49)%250A%2520%2520%2520%2520at%2520https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.8.2%252Fangular.min.js%253A43%253A233%250A%2520%2520%2520%2520at%2520r%2520(https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.8.2%252Fangular.min.js%253A8%253A76)%250A%2520%2520%2520%2520at%2520g%2520(https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.8.2%252Fangular.min.js%253A43%253A49)%0A%20%20%20%20at%20https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.8.2%2Fangular.min.js%3A7%3A168%0A%20%20%20%20at%20https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.8.2%2Fangular.min.js%3A43%3A491%0A%20%20%20%20at%20r%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.8.2%2Fangular.min.js%3A8%3A76)%0A%20%20%20%20at%20g%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.8.2%2Fangular.min.js%3A43%3A49)%0A%20%20%20%20at%20https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.8.2%2Fangular.min.js%3A43%3A233%0A%20%20%20%20at%20r%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.8.2%2Fangular.min.js%3A8%3A76)%0A%20%20%20%20at%20g%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.8.2%2Fangular.min.js%3A43%3A49)%0A%20%20%20%20at%20fb%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.8.2%2Fangular.min.js%3A47%3A153)%0A%20%20%20%20at%20c%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.8.2%2Fangular.min.js%3A22%3A57)%0A%20%20%20%20at%20Wc%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.8.2%2Fangular.min.js%3A22%3A370)
>     at angular.js:99:1
>     at angular.js:5127:15
>     at r (angular.js:388:11)
>     at g (angular.js:5087:5)
>     at fb (angular.js:5004:19)
>     at c (angular.js:1963:20)
>     at Wc (angular.js:1984:12)
>     at Ee (angular.js:1869:5)
>     at HTMLDocument.<anonymous> (angular.js:36595:5)
>     at e (jquery-3.5.1.slim.min.js:2:30211)
> (anonymous) @ angular.js:99
> (anonymous) @ angular.js:5127
> r @ angular.js:388
> g @ angular.js:5087
> fb @ angular.js:5004
> c @ angular.js:1963
> Wc @ angular.js:1984
> Ee @ angular.js:1869
> (anonymous) @ angular.js:36595
> e @ jquery-3.5.1.slim.min.js:2
> t @ jquery-3.5.1.slim.min.js:2
> setTimeout (async)
> E.readyException @ jquery-3.5.1.slim.min.js:2
> (anonymous) @ jquery-3.5.1.slim.min.js:2
> e @ jquery-3.5.1.slim.min.js:2
> t @ jquery-3.5.1.slim.min.js:2
> setTimeout (async)
> (anonymous) @ jquery-3.5.1.slim.min.js:2
> c @ jquery-3.5.1.slim.min.js:2
> fireWith @ jquery-3.5.1.slim.min.js:2
> fire @ jquery-3.5.1.slim.min.js:2
> c @ jquery-3.5.1.slim.min.js:2
> fireWith @ jquery-3.5.1.slim.min.js:2
> t @ jquery-3.5.1.slim.min.js:2
> setTimeout (async)
> (anonymous) @ jquery-3.5.1.slim.min.js:2
> c @ jquery-3.5.1.slim.min.js:2
> fireWith @ jquery-3.5.1.slim.min.js:2
> fire @ jquery-3.5.1.slim.min.js:2
> c @ jquery-3.5.1.slim.min.js:2
> fireWith @ jquery-3.5.1.slim.min.js:2
> ready @ jquery-3.5.1.slim.min.js:2
> F @ jquery-3.5.1.slim.min.js:2
>
> Third-party cookie is blocked in Chrome as part of Privacy Sandbox.
Comment 19 Artem Varaksa 2025-04-07 15:55:54 MSK
> Проверил с test-only try 1 TESTED 380713.

ravada-2.3.3-alt1.noarch
Comment 20 Andrew Vasilyev 2025-04-07 18:01:51 MSK
(Ответ для Artem Varaksa на комментарий #18)
> Создано вложение 18160 [details] [подробности]
> Скриншот
> 
> Проверил с test-only try 1 TESTED 380713.
> 
> Возникают другие ошибки уже на экране авторизации. Поля для ввода
> логина/пароля появляются, но потом сразу исчезают (см. скриншот).
> 
> Ошибки в консоли бразуера:
> 
> > GET http://<ip>:8081/ 401 (Unauthorized)
> >
> > booking.module.js?v=2.3.3:10 Uncaught SyntaxError: The requested module './booking.services.js' does not provide an export named 'svcLocal' (at booking.module.js?v=2.3.3:10:42)

  А точно js в браузере обновился? В booking.services.js вижу:

export {
...
    svcLocal
...
svcLocal.$inject = ["$resource"];

function svcLocal($resource) {
...
Comment 21 Artem Varaksa 2025-04-08 11:07:17 MSK
Попробовал в sisyphus, а также c Disable cache в DevTools в p11+380713.1.
Вход и страницы веб-интерфейса на первый взгляд работают.

Однако не уверен, что данное поведение можно считать корректным, при изменении версии со стороны браузеры должны корректно загружаться все новые файлы без необходимости force refresh / использования DevTools.

Также странно, что в ошибке выше упоминается явно `booking.module.js?v=2.3.3`, т. е. по идее браузер должен был загрузить корректную новую версию, т. к. путь изменился за счёт изменения версии.