هذه هي المرة الأولى التي أرى فيها الخطأ التالي عند محاولة إعادة البناء.
2022-10-04 14:39:49.780 UTC [1700] FATAL: lock file "postmaster.pid" is empty
2022-10-04 14:39:49.780 UTC [1700] HINT: Either another server is starting, or the lock file is the remnant of a previous server startup crash.
من الواضح أنني أستطيع قراءة التلميح ولكن لست متأكدًا من كيفية المتابعة. هل يمكن لأي شخص تقديم رؤية؟
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57c2a0746e93 local_discourse/app "/sbin/boot" 6 months ago Up 16 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp app
2022-10-04 15:26:43.452 UTC [1699] FATAL: lock file "postmaster.pid" is empty
2022-10-04 15:26:43.452 UTC [1699] HINT: Either another server is starting, or the lock file is the remnant of a previous server startup crash.
يحدث هذا لأن عملية البناء تعتقد أن PG قيد التشغيل بالفعل، لذا ربما يكون هناك خطأ ما في عملية ترقية PG. هل يمكنك تضمين سجلات كاملة للمشغل (مع إزالة كلمات المرور) حتى نتمكن من رؤية ما يحدث.
ربما يساعد إلقاء نظرة على نظام يعمل بشكل صحيح. أرى ملف القفل الخاص بي هنا:
# ls -l /var/discourse/shared/standalone/postgres_data/postmaster.pid
-rw------- 1 systemd-resolve input 92 Nov 15 16:20 /var/discourse/shared/standalone/postgres_data/postmaster.pid
و 15 نوفمبر هو التاريخ الذي بدأت فيه التطبيق آخر مرة. إذا دخلت إلى التطبيق، يمكنني رؤية عمليات postgres:
# cd /var/discourse/
# ./launcher enter app
تم اكتشاف بنية x86_64.
# ps auxfc|egrep -1 postm
root 45 0.0 0.0 2332 0 ? S Nov15 0:00 \_ svlogd
postgres 48 0.0 0.1 213160 1784 ? S Nov15 0:27 \_ postmaster
postgres 67 0.0 2.6 213380 26924 ? Ss Nov15 0:34 \_ postmaster
postgres 68 0.0 0.4 213292 4236 ? Ss Nov15 0:15 \_ postmaster
postgres 69 0.0 0.1 213160 1068 ? Ss Nov15 3:44 \_ postmaster
postgres 70 0.0 0.1 213840 1520 ? Ss Nov15 0:16 \_ postmaster
postgres 71 0.0 0.0 68184 380 ? Ss Nov15 0:56 \_ postmaster
postgres 72 0.0 0.0 213716 468 ? Ss Nov15 0:00 \_ postmaster
postgres 92 0.0 0.0 225364 324 ? Ss Nov15 0:01 \_ postmaster
postgres 176 0.0 0.1 217944 1484 ? Ss Nov15 0:01 \_ postmaster
postgres 9126 0.0 0.7 215052 7336 ? Ss Nov16 0:19 \_ postmaster
postgres 1574 0.0 5.7 223540 58300 ? Ss 17:28 0:00 \_ postmaster
postgres 1973 0.0 3.3 221032 33960 ? Ss 17:34 0:00 \_ postmaster
postgres 2320 0.1 3.5 218080 36120 ? Ss 17:39 0:00 \_ postmaster
postgres 2321 0.1 2.9 218068 29928 ? Ss 17:39 0:00 \_ postmaster
postgres 2336 0.0 1.4 215052 14340 ? Ss 17:40 0:00 \_ postmaster
# exit
إذا أوقفت التطبيق، أتوقع ألا أرى ملف قفل في هذا الموقع، ولا توجد عمليات postgres قيد التشغيل. (بالطبع، سأحتاج إلى تشغيل أمر ps مباشرة على المضيف، لأن الحاوية لن تكون قيد التشغيل بعد الآن.)
في وضعك، أعتقد أن هذا ما سأفعله أولاً: إيقاف التطبيق والتحقق من عدم تشغيل أي عمليات postgres. يبدو من الممكن أن يكون لديك نسختان تعملان وتتصادمان مع بعضهما البعض.
من غير المحتمل، ولكنه ممكن أيضًا أن يكون القرص قد امتلأ وهذا هو سبب كون ملف القفل فارغًا. أو ربما تكون هناك مشكلة في الأذونات بطريقة ما.
تعديل: داخل الحاوية، يوجد ملف القفل في موقع مختلف وله ملكية مختلفة:
# ./launcher enter app
تم اكتشاف بنية x86_64.
# ls -l /shared/postgres_data/postmaster.pid
-rw------- 1 postgres postgres 92 Nov 15 16:20 /shared/postgres_data/postmaster.pid
# exit
logout
#
كما يلاحظ سام، سنحتاج إلى رؤية المزيد من المعلومات.