Bug 45415

Summary: Ошибка выполнения сценария deploy postgresql
Product: Branch p10 Reporter: Vera Blagoveschenskaya <vercha>
Component: deployAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: qa-p10 <qa-p10>
Severity: normal    
Priority: P5 CC: antohami, jqt4, sin, taf
Version: не указана   
Hardware: x86_64   
OS: Linux   

Description Vera Blagoveschenskaya 2023-02-28 10:23:24 MSK
В тестировании:
x86_64
http://ftp.altlinux.org/pub/distributions/ALTLinux/p10/images/server/x86_64/alt-server-10.1-x86_64.iso
aarch64
http://ftp.altlinux.org/pub/distributions/ALTLinux/p10/images/server/aarch64/alt-server-10.1-aarch64.iso

В образе версия deploy-0.3.9-alt1

На диск добавили кроме postgresql14-server еще и postgresql14-1C-server

Вывод для x86_64:
$ isoinfo -f -R -i alt-server-10.1-x86_64.iso | fgrep postgres
/ALTLinux/RPMS.main/libqt4-sql-postgresql-4.8.7-alt23.x86_64.rpm
/ALTLinux/RPMS.main/postgresql14-14.6-alt1.x86_64.rpm
/ALTLinux/RPMS.main/postgresql14-1C-14.6-alt1.x86_64.rpm
/ALTLinux/RPMS.main/postgresql14-1C-contrib-14.6-alt1.x86_64.rpm
/ALTLinux/RPMS.main/postgresql14-1C-server-14.6-alt1.x86_64.rpm
/ALTLinux/RPMS.main/postgresql14-server-14.6-alt1.x86_64.rpm
/ALTLinux/RPMS.main/postgresql-common-1.0-alt8.noarch.rpm
/ALTLinux/RPMS.main/postgresql-jdbc-42.2.18-alt1_2jpp11.noarch.rpm
/ALTLinux/RPMS.main/sope-gdl1-postgresql-5.8.0-alt2.x86_64.rpm

Из-за этого команда deploy postgresql возвращает ошибку

# deploy postgresql
Deploying postgresql...
Executing playbook postgresql.yml

- deploy PostgreSQL database server on hosts: local -
check if PostgreSQL server is installed...
  localhost ok
install PostgreSQL server packages...
  localhost failed | item: postgresql-server | msg: 'apt-get -y install postgresql-server' failed: Виртуальный пакет postgresql-server предоставляется следующими пакетами:
  postgresql14-1C-server p10+309877.700.5.1@1671736364
  postgresql14-server p10+309877.200.5.1@1671735151
Необходимо точно указать, какой из пакетов должен быть установлен.
E: Виртуальный пакет postgresql-server предоставляется многими пакетами.

  localhost failed

- Play recap -
  localhost                  : ok=1    changed=0    unreachable=0    failed=1    rescued=0    ignored=0   
Error deploy postgresql
Comment 1 Антон Мидюков 2023-02-28 14:00:38 MSK
А как этот deploy будет работать, если подключены онлайн репозитории?
Это ошибка пакета deploy, как мне кажется.
Comment 2 Vera Blagoveschenskaya 2023-02-28 14:26:17 MSK
(Ответ для Антон Мидюков на комментарий #1)
> А как этот deploy будет работать, если подключены онлайн репозитории?
> Это ошибка пакета deploy, как мне кажется.

Действительно.
Comment 3 Alexei Takaseev 2023-02-28 16:10:37 MSK
В этом случае ошибка в том, что сделана попытка установки пакета postgresql-server, этот Provides выставляется всеми ветками PG и предоставляется для удовлетворения зависимости пакетам, которым нужен просто сервер PG без привязки к конкретной версии. Устанавливать надо postgresqlXY-server.
Comment 4 Evgeny Sinelnikov 2023-02-28 16:23:34 MSK
Мне кажется странным заставлять, при наличии исправленной уязвимости для 14 версии, заставлять переходить на 15.
- https://www.postgresql.org/support/security/CVE-2022-41862/

В чем проблема иметь две версии postgresql14-1C и postgresql15-1C в одном репозитории?

В чем будет проблема с использованием вот такой таски?
#315989 AWAITING #1 [test-only] p10 postgresql14-1C.git=14.7-alt1
Comment 5 Антон Мидюков 2023-02-28 16:29:11 MSK
(Ответ для Evgeny Sinelnikov на комментарий #4)
> Мне кажется странным заставлять, при наличии исправленной уязвимости для 14
> версии, заставлять переходить на 15.
> - https://www.postgresql.org/support/security/CVE-2022-41862/
> 
> В чем проблема иметь две версии postgresql14-1C и postgresql15-1C в одном
> репозитории?
> 
> В чем будет проблема с использованием вот такой таски?
> #315989 AWAITING #1 [test-only] p10 postgresql14-1C.git=14.7-alt1

Это оффтоп именно для этой баги.
Comment 6 Vera Blagoveschenskaya 2023-02-28 16:32:48 MSK
Насколько я понимаю, проблема не в присутствии 14 и 15 версий, а в 2х вариантах 14 версии:

Виртуальный пакет postgresql-server предоставляется следующими пакетами:
  postgresql14-1C-server p10+309877.700.5.1@1671736364
  postgresql14-server p10+309877.200.5.1@1671735151
Comment 7 Alexei Takaseev 2023-02-28 16:54:24 MSK
(Ответ для Vera Blagoveschenskaya на комментарий #6)
> Насколько я понимаю, проблема не в присутствии 14 и 15 версий, а в 2х
> вариантах 14 версии:
> 
> Виртуальный пакет postgresql-server предоставляется следующими пакетами:
>   postgresql14-1C-server p10+309877.700.5.1@1671736364
>   postgresql14-server p10+309877.200.5.1@1671735151

В некотором роде да. Вот картина уже для пары 15 и 15-1С:

15
INFO/PROVIDES:
postgresql-server = 15.2-alt1
postgresql15-server = 15.2-alt1:p10+314938.100.2.1

15-1С
INFO/PROVIDES:
postgresql-server = 15.2-alt1
postgresql15-1C-server = 15.2-alt1:p10+314938.600.2.1

Как писал выше, ставить надо с явным указанием версии ветки
Comment 8 Evgeny Sinelnikov 2023-03-01 00:30:31 MSK
(Ответ для Антон Мидюков на комментарий #5)
> (Ответ для Evgeny Sinelnikov на комментарий #4)
[...]
> > В чем будет проблема с использованием вот такой таски?
> > #315989 AWAITING #1 [test-only] p10 postgresql14-1C.git=14.7-alt1
> 
> Это оффтоп именно для этой баги.

Ни в коем случае.

(Ответ для Alexei Takaseev на комментарий #7)
> (Ответ для Vera Blagoveschenskaya на комментарий #6)
> > Насколько я понимаю, проблема не в присутствии 14 и 15 версий, а в 2х
> > вариантах 14 версии:
> > 
> > Виртуальный пакет postgresql-server предоставляется следующими пакетами:
> >   postgresql14-1C-server p10+309877.700.5.1@1671736364
> >   postgresql14-server p10+309877.200.5.1@1671735151
> 
> В некотором роде да. Вот картина уже для пары 15 и 15-1С:
> 
> 15
> INFO/PROVIDES:
> postgresql-server = 15.2-alt1
> postgresql15-server = 15.2-alt1:p10+314938.100.2.1
> 
> 15-1С
> INFO/PROVIDES:
> postgresql-server = 15.2-alt1
> postgresql15-1C-server = 15.2-alt1:p10+314938.600.2.1
> 
> Как писал выше, ставить надо с явным указанием версии ветки

Я не понимаю что и для чего нужно ставить.

Проблемы, созданные удалением пакета сервера в стабильном бранче:
- не работает deploy на релизном образе сервера;
- для уже установленных решений сломано обновление и навязана задача переезда на новую версию со всеми вытекающими...

По мне так это просто недопустимое.

Ни одной проблемы с установкой postgresql14-1C-14.7-alt1 я пока не вижу.

Поставил из таски:
$ rpm -q --provides postgresql14-1C
postgresql = 14.7-alt1
postgresql14-1C = 14.7-alt1:p10+315989.100.1.1

В чём, собственно, сложность сохранить на время переезда старую версию сервера 14 версии?

Отправляю этот пакет на тестирование.
Comment 9 Evgeny Sinelnikov 2023-03-01 00:40:16 MSK
(Ответ для Evgeny Sinelnikov на комментарий #8)
> (Ответ для Антон Мидюков на комментарий #5)
> > (Ответ для Evgeny Sinelnikov на комментарий #4)
> [...]
> > > В чем будет проблема с использованием вот такой таски?
> > > #315989 AWAITING #1 [test-only] p10 postgresql14-1C.git=14.7-alt1
> > 
> > Это оффтоп именно для этой баги.
> 
> Ни в коем случае.

Так... прошу прощения, может быть и нет...

То есть deploy вытаскивает виртуальный пакет postgresql-server и на полном репозитории работать вообще неспособен. Печаль...

Ну, тогда удаление или восстановление postgresql14-1C тут уже не поможет, да...

$ rpm -q --provides postgresql14-1C-server
postgresql-server = 14.7-alt1
postgresql14-1C-server = 14.7-alt1:p10+315989.100.1.1

Это +1 баг в Errata и повод для доработки deploy.
Comment 10 Alexei Takaseev 2023-03-02 15:44:45 MSK
Потестировал в разных комбинациях версий и веток, и https://bugzilla.altlinux.org/show_bug.cgi?id=45415#c7 подтверждается, что производить установку через apt-get install postgresql-server нельзя. Если бы в образе былоа не пара 14/14-1С,а больше, то список был бы таким:

# apt-get install postgresql-server
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Виртуальный пакет postgresql-server предоставляется следующими пакетами:
  postgresql15-1C-server sisyphus+314842.700.3.1@1675925253
  postgresql15-server sisyphus+314842.100.3.1@1675923740
  postgresql14-server sisyphus+314842.600.3.1@1675924940
  postgresql13-server sisyphus+314842.500.3.1@1675924632
  postgresql12-server sisyphus+314842.300.3.1@1675924334
  postgresql11-server sisyphus+315498.100.1.1@1676876844
Необходимо точно указать, какой из пакетов должен быть установлен.
E: Виртуальный пакет postgresql-server предоставляется многими пакетами.


Может в deploy сделать вместо сейчас одного "postgresql" шесть "postgresql11", "postgresql12", "postgresql13", "postgresql14", "postgresql15", "postgresql15-1С"? У которых будет соответствующий with_items. Для PG10 прописывать ничего не нужно, ветка EOL, в репо остается только для поддержания уже установленных систем, новые инсталляции на этой версии крайне не рекомендуются.
Comment 11 Vera Blagoveschenskaya 2024-04-03 13:13:35 MSK
Актуально для Server 10.2:

Пакеты на диске:
$ isoinfo -f -R -i alt-server-10.2-x86_64.iso | fgrep postgres
/ALTLinux/RPMS.main/libqt4-sql-postgresql-4.8.7-alt23.x86_64.rpm
/ALTLinux/RPMS.main/postgresql14-14.11-alt0.p10.1.x86_64.rpm
/ALTLinux/RPMS.main/postgresql14-1C-14.7-alt2.x86_64.rpm
/ALTLinux/RPMS.main/postgresql14-1C-contrib-14.7-alt2.x86_64.rpm
/ALTLinux/RPMS.main/postgresql14-1C-server-14.7-alt2.x86_64.rpm
/ALTLinux/RPMS.main/postgresql14-server-14.11-alt0.p10.1.x86_64.rpm
/ALTLinux/RPMS.main/postgresql-common-1.0-alt8.noarch.rpm
/ALTLinux/RPMS.main/postgresql-jdbc-42.6.0-alt1_1jpp11.noarch.rpm
/ALTLinux/RPMS.main/sope-gdl1-postgresql-5.9.1-alt1.x86_64.rpm