المنتدى معطل بسبب فشل الـ rebuilds على Tests-Pass

متابعة النقاش من تحديث PostgreSQL 13:

واجهت مشكلة أثناء تحديث إصدار 2.7.0beta1 Tests-Pass بهدف إزالة بعض الإضافات التي تسبب مشاكل.

قمت بتعديل ملف app.yml الخاص بنا للبقاء على PostgreSQL 12. فشلت عملية إعادة البناء وأرى ما يلي:

فشل
--------------------
Pups::ExecError: فشل أمر su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' مع إرجاع #<Process::Status: pid 1637 exit 2>
موقع الفشل: /pups/lib/pups/exec_command.rb:112:in `spawn'
فشل التنفيذ مع المعاملات "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
I, [2020-12-11T18:36:32.257585 #1]  INFO -- : إنهاء العمليات غير المتزامنة
df2fcc37c368d13eac3b4a6db4b592028405a0ea91ff39fb8cbb8bcbdc4846fd
** فشل التمهيد ** يرجى التمرير للأعلى والبحث عن رسائل الخطأ السابقة، قد يكون هناك أكثر من خطأ.
قد يساعدك ./discourse-doctor في تشخيص المشكلة.
السجل الكامل

$ sudo ./launcher rebuild app
التأكد من أن برنامج التشغيل محدث
جلب origin
برنامج التشغيل محدث
إيقاف الحاوية القديمة

  • /usr/bin/docker stop -t 60 app
    app
    cd /pups && git pull && /pups/bin/pups --stdin
    محدث بالفعل.
    I, [2020-12-11T18:35:42.128663 #1] INFO – : تحميل --stdin
    I, [2020-12-11T18:35:42.145184 #1] INFO – : > DEBIAN_FRONTEND=noninteractive apt-get purge -y postgresql-13 postgresql-client-13 postgresql-contrib-13
    I, [2020-12-11T18:35:47.812698 #1] INFO – : قراءة قوائم الحزم…
    بناء شجرة التبعيات…
    قراءة حالة المعلومات…
    تم تثبيت الحزم التالية تلقائيًا ولم تعد مطلوبة:
    libllvm7 pgdg-keyring postgresql-client-common postgresql-common ssl-cert
    استخدم ‘apt autoremove’ لإزالتها.
    سيتم إزالة الحزم التالية:
    postgresql-13* postgresql-client-13*
    0 تم ترقية، 0 تم تثبيتها حديثًا، 2 سيتم إزالتها و 0 غير مرفوعة.
    بعد هذا الإجراء، سيتم تحرير 54.3 ميجابايت من مساحة القرص.
    (قراءة قاعدة البيانات … 43863 ملفًا ودليلًا مثبتًا حاليًا.)
    إزالة postgresql-13 (13.1-1.pgdg100+1) …
    invoke-rc.d: تعذر تحديد مستوى التشغيل الحالي
    invoke-rc.d: رفضت سياسة policy-rc.d تنفيذ الإيقاف.
    إزالة postgresql-client-13 (13.1-1.pgdg100+1) …
    معالجة المحفزات لـ postgresql-common (223.pgdg100+1) …
    بناء قواميس PostgreSQL من حزم myspell/hunspell المثبتة…
    إزالة ملفات القواميس القديمة:
    (قراءة قاعدة البيانات … 42050 ملفًا ودليلًا مثبتًا حاليًا.)
    تنظيف ملفات التكوين لـ postgresql-13 (13.1-1.pgdg100+1) …
    إسقاط المجموعة الرئيسية…

I, [2020-12-11T18:35:47.813593 #1] INFO – : > apt-get update && apt-get install -y postgresql-12 postgresql-client-12 postgresql-contrib-12
debconf: تأخير تكوين الحزمة لأن apt-utils غير مثبت
I, [2020-12-11T18:36:26.125598 #1] INFO – : Get:1 Index of /pub/repos/apt/ buster-pgdg InRelease [104 kB]
Get:2 Index of /debian-security buster/updates InRelease [65.4 kB]
Hit:3 Index of /debian buster InRelease
Get:4 Index of /debian buster-updates InRelease [51.9 kB]
Hit:5 https://deb.nodesource.com/node_10.x buster InRelease
Get:6 Index of /pub/repos/apt/ buster-pgdg/main amd64 Packages [216 kB]
Get:7 Index of /debian-security buster/updates/main amd64 Packages [254 kB]
تم جلب 690 kB في 2 ثانية (342 kB/s)
قراءة قوائم الحزم…
قراءة قوائم الحزم…
بناء شجرة التبعيات…
قراءة حالة المعلومات…
اقتراحات:
postgresql-doc-12
سيتم تثبيت الحزم الجديدة التالية:
postgresql-12 postgresql-client-12
0 تم ترقية، 2 تم تثبيتها حديثًا، 0 سيتم إزالتها و 5 غير مرفوعة.
يحتاج إلى جلب 16.1 ميجابايت من الأرشيف.
بعد هذا الإجراء، سيتم استخدام 54.0 ميجابايت إضافية من مساحة القرص.
Get:1 Index of /pub/repos/apt/ buster-pgdg/main amd64 postgresql-client-12 amd64 12.5-1.pgdg100+1 [1,422 kB]
Get:2 Index of /pub/repos/apt/ buster-pgdg/main amd64 postgresql-12 amd64 12.5-1.pgdg100+1 [14.7 MB]
تم جلب 16.1 ميجابايت في 5 ثوانٍ (3,052 kB/s)
تحديد حزمة postgresql-client-12 غير المحددة سابقًا.
(قراءة قاعدة البيانات … 42050 ملفًا ودليلًا مثبتًا حاليًا.)
التحضير لفك ضغط …/postgresql-client-12_12.5-1.pgdg100+1_amd64.deb …
فك ضغط postgresql-client-12 (12.5-1.pgdg100+1) …
تحديد حزمة postgresql-12 غير المحددة سابقًا.
التحضير لفك ضغط …/postgresql-12_12.5-1.pgdg100+1_amd64.deb …
فك ضغط postgresql-12 (12.5-1.pgdg100+1) …
إعداد postgresql-client-12 (12.5-1.pgdg100+1) …
update-alternatives: استخدام /usr/share/postgresql/12/man/man1/psql.1.gz لتوفير /usr/share/man/man1/psql.1.gz (psql.1.gz) في الوضع التلقائي
إعداد postgresql-12 (12.5-1.pgdg100+1) …
إنشاء مجموعة PostgreSQL جديدة 12/main …
/usr/lib/postgresql/12/bin/initdb -D /var/lib/postgresql/12/main --auth-local peer --auth-host md5
ستكون الملفات الخاصة بنظام قاعدة البيانات هذه مملوكة للمستخدم “postgres”.
يجب أن يكون هذا المستخدم أيضًا مالك عملية الخادم.

سيتم تهيئة مجموعة قاعدة البيانات باستخدام اللغة المحلية “C.UTF-8”.
تم تعيين ترميز قاعدة البيانات الافتراضي وفقًا لذلك إلى “UTF8”.
سيتم تعيين تكوين البحث النصي الافتراضي على “الإنجليزية”.

تم تعطيل تجزئات صفحات البيانات.

إصلاح الأذونات على الدليل الحالي /var/lib/postgresql/12/main … تم
إنشاء الدوال الفرعية … تم
اختيار تنفيذ الذاكرة المشتركة الديناميكية … posix
اختيار max_connections الافتراضي … 100
اختيار shared_buffers الافتراضي … 128MB
اختيار المنطقة الزمنية الافتراضية … Etc/UTC
إنشاء ملفات التكوين … تم
تشغيل نص التمهيد … تم
تنفيذ تهيئة ما بعد التمهيد … تم
مزامنة البيانات مع القرص … تم

نجح الأمر. يمكنك الآن تشغيل خادم قاعدة البيانات باستخدام:

pg_ctlcluster 12 main start

Ver Cluster Port Status Owner Data directory Log file
12 main 5432 down postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
update-alternatives: استخدام /usr/share/postgresql/12/man/man1/postmaster.1.gz لتوفير /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) في الوضع التلقائي
invoke-rc.d: تعذر تحديد مستوى التشغيل الحالي
invoke-rc.d: رفضت سياسة policy-rc.d تنفيذ التشغيل.
معالجة المحفزات لـ postgresql-common (223.pgdg100+1) …
بناء قواميس PostgreSQL من حزم myspell/hunspell المثبتة…
إزالة ملفات القواميس القديمة:

I, [2020-12-11T18:36:26.126230 #1] INFO – : > mkdir -p /shared/postgres_run
I, [2020-12-11T18:36:26.135185 #1] INFO – :
I, [2020-12-11T18:36:26.135798 #1] INFO – : > chown postgres:postgres /shared/postgres_run
I, [2020-12-11T18:36:26.146730 #1] INFO – :
I, [2020-12-11T18:36:26.147724 #1] INFO – : > chmod 775 /shared/postgres_run
I, [2020-12-11T18:36:26.161275 #1] INFO – :
I, [2020-12-11T18:36:26.162652 #1] INFO – : > rm -fr /var/run/postgresql
I, [2020-12-11T18:36:26.175256 #1] INFO – :
I, [2020-12-11T18:36:26.176159 #1] INFO – : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-12-11T18:36:26.184044 #1] INFO – :
I, [2020-12-11T18:36:26.184889 #1] INFO – : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2020/12/11 18:36:26 socat[1595] E connect(6, AF=1 “/shared/postgres_run/.s.PGSQL.5432”, 36): لا يوجد مثل هذا الملف أو الدليل
I, [2020-12-11T18:36:26.198536 #1] INFO – :
I, [2020-12-11T18:36:26.198946 #1] INFO – : > rm -fr /shared/postgres_run/.s*
I, [2020-12-11T18:36:26.213075 #1] INFO – :
I, [2020-12-11T18:36:26.217247 #1] INFO – : > rm -fr /shared/postgres_run/.pid
I, [2020-12-11T18:36:26.234701 #1] INFO – :
I, [2020-12-11T18:36:26.235766 #1] INFO – : > mkdir -p /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-12-11T18:36:26.252691 #1] INFO – :
I, [2020-12-11T18:36:26.253254 #1] INFO – : > chown postgres:postgres /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-12-11T18:36:26.265460 #1] INFO – :
I, [2020-12-11T18:36:26.305117 #1] INFO – : ملف > /etc/service/postgres/run chmod: +x chown:
I, [2020-12-11T18:36:26.340226 #1] INFO – : ملف > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2020-12-11T18:36:26.341055 #1] INFO – : > chown -R root /var/lib/postgresql/12/main
I, [2020-12-11T18:36:26.395341 #1] INFO – :
I, [2020-12-11T18:36:26.397567 #1] INFO – : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/12/bin/initdb -D /shared/postgres_data || exit 0
I, [2020-12-11T18:36:26.410438 #1] INFO – :
I, [2020-12-11T18:36:26.410620 #1] INFO – : > chown -R postgres:postgres /shared/postgres_data
I, [2020-12-11T18:36:26.483230 #1] INFO – :
I, [2020-12-11T18:36:26.483480 #1] INFO – : > chown -R postgres:postgres /var/run/postgresql
I, [2020-12-11T18:36:26.498060 #1] INFO – :
I, [2020-12-11T18:36:26.498607 #1] INFO – : استبدال data_directory = ‘/var/lib/postgresql/12/main’ بـ data_directory = ‘/shared/postgres_data’ في /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.499830 #1] INFO – : استبدال (?-mix:#?listen_addresses =.) بـ listen_addresses = '
’ في /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.501216 #1] INFO – : استبدال (?-mix:#?synchronous_commit =.) بـ synchronous_commit = $db_synchronous_commit في /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.503288 #1] INFO – : استبدال (?-mix:#?shared_buffers =.) بـ shared_buffers = $db_shared_buffers في /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.503960 #1] INFO – : استبدال (?-mix:#?work_mem =.) بـ work_mem = $db_work_mem في /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.505121 #1] INFO – : استبدال (?-mix:#?default_text_search_config =.) بـ default_text_search_config = ‘$db_default_text_search_config’ في /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.509117 #1] INFO – : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2020-12-11T18:36:26.529609 #1] INFO – :
I, [2020-12-11T18:36:26.530771 #1] INFO – : استبدال (?-mix:#?checkpoint_segments =.) بـ checkpoint_segments = $db_checkpoint_segments في /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.533329 #1] INFO – : استبدال (?-mix:#?logging_collector =.) بـ logging_collector = $db_logging_collector في /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.534342 #1] INFO – : استبدال (?-mix:#?log_min_duration_statement =.) بـ log_min_duration_statement = $db_log_min_duration_statement في /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.535368 #1] INFO – : استبدال (?-mix:^#local +replication +postgres +peer$) بـ local replication postgres peer في /etc/postgresql/12/main/pg_hba.conf
I, [2020-12-11T18:36:26.536115 #1] INFO – : استبدال (?-mix:^host.*all.*all.127.$) بـ host all all 0.0.0.0/0 md5 في /etc/postgresql/12/main/pg_hba.conf
I, [2020-12-11T18:36:26.536854 #1] INFO – : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/12/bin/postmaster -D /etc/postgresql/12/main
I, [2020-12-11T18:36:26.542081 #1] INFO – : > sleep 5
2020-12-11 18:36:26.649 UTC [1611] FATAL: ملفات قاعدة البيانات غير متوافقة مع الخادم
2020-12-11 18:36:26.649 UTC [1611] DETAIL: تم تهيئة دليل البيانات بواسطة إصدار PostgreSQL 13، وهو غير متوافق مع هذا الإصدار 12.5 (Debian 12.5-1.pgdg100+1).
I, [2020-12-11T18:36:31.555237 #1] INFO – :
I, [2020-12-11T18:36:31.556039 #1] INFO – : > su postgres -c ‘createdb discourse’ || true
createdb: خطأ: تعذر الاتصال بقاعدة البيانات template1: تعذر الاتصال بالخادم: لا يوجد مثل هذا الملف أو الدليل
هل الخادم يعمل محليًا ويقبل
الاتصالات على منفذ Unix “/var/run/postgresql/.s.PGSQL.5432”؟
I, [2020-12-11T18:36:31.718921 #1] INFO – :
I, [2020-12-11T18:36:31.719321 #1] INFO – : > su postgres -c ‘psql discourse -c “create user discourse;”’ || true
psql: خطأ: تعذر الاتصال بالخادم: لا يوجد مثل هذا الملف أو الدليل
هل الخادم يعمل محليًا ويقبل
الاتصالات على منفذ Unix “/var/run/postgresql/.s.PGSQL.5432”؟
I, [2020-12-11T18:36:31.892475 #1] INFO – :
I, [2020-12-11T18:36:31.893214 #1] INFO – : > su postgres -c ‘psql discourse -c “grant all privileges on database discourse to discourse;”’ || true
psql: خطأ: تعذر الاتصال بالخادم: لا يوجد مثل هذا الملف أو الدليل
هل الخادم يعمل محليًا ويقبل
الاتصالات على منفذ Unix “/var/run/postgresql/.s.PGSQL.5432”؟
I, [2020-12-11T18:36:32.067027 #1] INFO – :
I, [2020-12-11T18:36:32.067426 #1] INFO – : > su postgres -c ‘psql discourse -c “alter schema public owner to discourse;”’
psql: خطأ: تعذر الاتصال بالخادم: لا يوجد مثل هذا الملف أو الدليل
هل الخادم يعمل محليًا ويقبل
الاتصالات على منفذ Unix “/var/run/postgresql/.s.PGSQL.5432”؟
I, [2020-12-11T18:36:32.256513 #1] INFO – :

فشل

Pups::ExecError: فشل أمر su postgres -c ‘psql discourse -c “alter schema public owner to discourse;”’ مع إرجاع #<Process::Status: pid 1637 exit 2>
موقع الفشل: /pups/lib/pups/exec_command.rb:112:in `spawn’
فشل التنفيذ مع المعاملات “su postgres -c ‘psql $db_name -c "alter schema public owner to $db_user;"’”
I, [2020-12-11T18:36:32.257585 #1] INFO – : إنهاء العمليات غير المتزامنة
df2fcc37c368d13eac3b4a6db4b592028405a0ea91ff39fb8cbb8bcbdc4846fd
** فشل التمهيد ** يرجى التمرير للأعلى والبحث عن رسائل الخطأ السابقة، قد يكون هناك أكثر من خطأ.
قد يساعدك ./discourse-doctor في تشخيص المشكلة.

أنا مشوش قليلاً، لكن يبدو أننا بالفعل على النسخة 13 من PostgreSQL. قمت باستعادة ملف app.yml الخاص بـ postgres الافتراضي، وأعدت تشغيل عملية إعادة البناء، وعاد المنتدى للعمل مرة أخرى. تم الحل.