<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>53381</bug_id>
          
          <creation_ts>2025-03-10 14:01:56 +0300</creation_ts>
          <short_desc>Скрипт create_postgresql_database и т. п. не работают в p11, sisyphus</short_desc>
          <delta_ts>2025-03-10 16:28:55 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>bacula15</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>NOTABUG</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Artem Varaksa">varaksaaa</reporter>
          <assigned_to name="Alexei Takaseev">taf</assigned_to>
          <cc>taf</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>260729</commentid>
    <comment_count>0</comment_count>
    <who name="Artem Varaksa">varaksaaa</who>
    <bug_when>2025-03-10 14:01:56 +0300</bug_when>
    <thetext>Шаги
====

0. # export BACULA=15 POSTGRESQL=17
1. # apt-get install -y mt-st postgresql$POSTGRESQL-server bacula$BACULA-{common,console,storage,client,director-{common,postgresql}}
2. # /etc/init.d/postgresql initdb &amp;&amp; echo &quot;listen_addresses = &apos;localhost&apos;&quot; &gt;&gt; /var/lib/pgsql/data/postgresql.conf
3. # systemctl enable --now postgresql &amp;&amp; systemctl status postgresql
4. # createuser -U postgres --superuser root
5. # /usr/share/bacula/scripts/create_postgresql_database &amp;&amp; \
     /usr/share/bacula/scripts/make_postgresql_tables &amp;&amp; \
     /usr/share/bacula/scripts/grant_postgresql_privileges

Примечание: воспроизводится с любой версией postgresql 14..=17
Примечание: воспроизводится и с bacula 13 (p11), и с 15 (p11+375453, sisyphus)
Примечание: не воспроизводится в p10

Фактический результат
=====================

&gt; ...
&gt; Пароль пользователя root:
&gt; psql: ошибка: подключиться к серверу через сокет &quot;/tmp/.s.PGSQL.5432&quot; не удалось: ВАЖНО:  пользователь &quot;root&quot; не прошёл проверку подлинности (по паролю)

Ожидаемый результат
===================

&gt; ...
&gt; Пароль пользователя postgres:
&gt; CREATE DATABASE
&gt; ALTER DATABASE
&gt; Creation of bacula database succeeded.
&gt; ...

Дополнительно
=============

В составе пакета есть аналогичные скрипты с названием вида *_bacula_* - при запуске с параметром postgresql они работают в p10, p11 и sisyphus, т. к. запускают вышеупомянутые скрипты с `pre_command=&quot;su - postgres -s /bin/bash -c&quot;`, например:

# /usr/share/bacula/scripts/create_bacula_database postgresql &amp;&amp; \
  /usr/share/bacula/scripts/make_bacula_tables postgresql &amp;&amp; \
  /usr/share/bacula/scripts/grant_bacula_privileges postgresql

Примечание: уже в bacula 13 был добавлен patch `bacula13-alt-fix-create-pg-database.patch`, добавляющий к `pre_command` аргумент `-s /bin/bash`, но только в скриптах вида `*_bacula_*`:
* https://git.altlinux.org/gears/b/bacula15.git?p=bacula15.git;a=commit;h=2f5379779939ce940945c219664f6c6bb7a24a8d

Возможно, предполагается использование только их, а не напрямую db-специфичных?

Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[p11+375453] [sisyphus] ALT Server 11.0 beta20250213 x86_64
bacula15-common-15.0.2-alt2.x86_64
postgresql17-server-17.4-alt1.x86_64

[p11] ALT Server 11.0 beta20250213 x86_64
bacula13-common-13.0.4-alt2.x86_64
postgresql17-server-17.4-alt1.x86_64


Не воспроизводится на виртуальных машинах:

[p10+375490] ALT Server 10.4 x86_64
bacula15-common-15.0.2-alt2.x86_64
postgresql17-server-17.4-alt0.p10.1.x86_64

[p10] ALT Server 10.4 x86_64
bacula13-common-13.0.4-alt2.x86_64
postgresql17-server-17.4-alt0.p10.1.x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260731</commentid>
    <comment_count>1</comment_count>
    <who name="Alexei Takaseev">taf</who>
    <bug_when>2025-03-10 14:15:30 +0300</bug_when>
    <thetext>Ошибка тестирования:

Во-первых, на шаге 4 созданной роли root не назначен пароль, требуется запускать createuser с ключем -P и назначить пароль. В Сизифе и p11 наличие пароля у роли СУБД является обязательным.

Во-вторых, создание базы производится вызовом скриптов create_bacula_database make_bacula_tables и grant_bacula_privileges. Вызов этих скриптов без параметров предполагает использование PostgreSQL, если нужна другая СУБД, то его тип указывается параметром (mysql или sqlite3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260746</commentid>
    <comment_count>2</comment_count>
    <who name="Artem Varaksa">varaksaaa</who>
    <bug_when>2025-03-10 16:27:29 +0300</bug_when>
    <thetext>(In reply to Alexei Takaseev from comment #1)
&gt; Во-вторых, создание базы производится вызовом скриптов
&gt; create_bacula_database make_bacula_tables и grant_bacula_privileges. Вызов
&gt; этих скриптов без параметров предполагает использование PostgreSQL, если
&gt; нужна другая СУБД, то его тип указывается параметром (mysql или sqlite3)

В wiki, упомянутой в https://bugzilla.altlinux.org/show_bug.cgi?id=53382#c2, указано использовать скрипты *_postgresql_*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260747</commentid>
    <comment_count>3</comment_count>
    <who name="Alexei Takaseev">taf</who>
    <bug_when>2025-03-10 16:28:55 +0300</bug_when>
    <thetext>(Ответ для Artem Varaksa на комментарий #2)
&gt; (In reply to Alexei Takaseev from comment #1)
&gt; &gt; Во-вторых, создание базы производится вызовом скриптов
&gt; &gt; create_bacula_database make_bacula_tables и grant_bacula_privileges. Вызов
&gt; &gt; этих скриптов без параметров предполагает использование PostgreSQL, если
&gt; &gt; нужна другая СУБД, то его тип указывается параметром (mysql или sqlite3)
&gt; 
&gt; В wiki, упомянутой в https://bugzilla.altlinux.org/show_bug.cgi?id=53382#c2,
&gt; указано использовать скрипты *_postgresql_*.

Документацию там надо править, но суть в том, что пароль надо задать в скрипте осталась та же.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>