تحديث = :جمجمة وعظمتان متقاطعتان:

مرحباً بالجميع

أتابع التحديثات بشكل جيد، رأيت أن هناك تحديثًا قادمًا وقمت بتثبيته، وكانت النتيجة عدم وجود واجهة مستخدم إلا في لوحة الإدارة

اتصلت عبر SSH وقمت بتحديثات الخادم للتأكد من أن كل شيء على ما يرام، لم يساعد ذلك

حاولت التراجع وحصلت على هذا

دخلت في الوضع الآمن وتم إقلاعي، لكن حصلت على واجهة مستخدم جزئية

لا يمكنني تسجيل الدخول، يقول إن اسم المستخدم الخاص بي متاح وأن بريدي الإلكتروني غير موجود

أحتاج إلى بعض المساعدة من فضلك وشكراً لك


تعديل، أعدت تشغيل الخادم وحصلت على

لم أتأثر، ذهبت للتسجيل، اعتقدت أن النسخ الاحتياطي قد حان الآن

لا يوجد نجاح هناك أيضًا


تعديل، عند تحديث نافذة مختلفة، بدا أنني قادر على التسجيل

ثم

لا يزال لا يوجد نجاح


عبر SSH، لا تزال الأمور تبدو كما كانت


تعديل

image

DISCOURSE DOCTOR Sun Nov 12 01:54:06 UTC 2023
OS: Linux ip-10-0-159-37 6.2.0-1015-aws #15~22.04.1-Ubuntu SMP Fri Oct  6 21:37:24 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux


Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.full30.com
SMTP_ADDRESS=smtp.sendgrid.net
DEVELOPER_EMAILS=REDACTED
SMTP_PASSWORD=REDACTED
SMTP_PORT=587
SMTP_USER_NAME=apikey
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED LETSENCRYPT_ACCOUNT_EMAIL

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 24.0.7, build afdd53b

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                 COMMAND        CREATED        STATUS                      PORTS     NAMES
0be0150fecde   local_discourse/app   \"/sbin/boot\"   5 months ago   Exited (5) 11 minutes ago             app

==================== SERIOUS PROBLEM!!!! ====================
app not running!
Attempting to rebuild
==================== REBUILD LOG ====================
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20231023-1945: Pulling from discourse/base
Digest: sha256:2b0eb484d20888cc2daadb690dcfa73522105650c1420212e99345a36a424d77
Status: Image is up to date for discourse/base:2.0.20231023-1945
docker.io/discourse/base:2.0.20231023-1945
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2023-11-12T01:54:13.829288 #1]  INFO -- : Reading from stdin
I, [2023-11-12T01:54:13.834181 #1]  INFO -- :
> locale-gen $LANG && update-locale
I, [2023-11-12T01:54:13.862453 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2023-11-12T01:54:13.862638 #1]  INFO -- :
> mkdir -p /shared/postgres_run
I, [2023-11-12T01:54:13.865023 #1]  INFO -- :

I, [2023-11-12T01:54:13.865390 #1]  INFO -- :
> chown postgres:postgres /shared/postgres_run
I, [2023-11-12T01:54:13.867489 #1]  INFO -- :

I, [2023-11-12T01:54:13.867791 #1]  INFO -- :
> chmod 775 /shared/postgres_run
I, [2023-11-12T01:54:13.869643 #1]  INFO -- :

I, [2023-11-12T01:54:13.869925 #1]  INFO -- :
> rm -fr /var/run/postgresql
I, [2023-11-12T01:54:13.871930 #1]  INFO -- :

I, [2023-11-12T01:54:13.872203 #1]  INFO -- :
> ln -s /shared/postgres_run /var/run/postgresql
I, [2023-11-12T01:54:13.874058 #1]  INFO -- :

/tmp/discourse-debug.txt
إعجابَين (2)

يبدو هذا مهماً:

Warning: Could not create server TCP listening socket *:6379: bind: Address already in use

أعتقد أن Redis من المتوقع أن يعمل على المنفذ 6379.

هل يمكن أن يتسبب عدم القدرة على إنشاء خادم Redis في حدوث مشاكل مع عمليات الترحيل؟

Error: relation "summary_sections" already exists

لسبب ما، يتم تشغيل عملية ترحيل إنشاء جدول summary_sections مرة أخرى. هل هناك أي أخطاء أخرى مكررة في الجداول في سجلاتك؟

أعتقد أن السؤال الآخر هو، هل لديك ملف نسخ احتياطي حديث؟

6 إعجابات

لول، نعم، أعتقد نفس الشيء تقريبًا، الإجابة للأسف هي بالنظر إلى خادمي أرى 5 نوفمبر كأحدث نسخة، حيث لا يمكنني تسجيل الدخول كمسؤول لا يمكنني رؤية ما إذا كان هناك ربما نسخة أحدث تم إنشاؤها بواسطة Discourse

ولكن… هذا هو صباح اليوم،

forum

إذا لم أتمكن من تسجيل الدخول إلى لوحة تحكم المسؤول لعمل نسخة احتياطية، فلا أعرف حقًا ماذا أفعل؟

شكرًا على الرد، آمل أن أتمكن من العودة للعمل بسرعة حتى لو على نسخة احتياطية عمرها أسبوع.

روبرت

إعجاب واحد (1)

أنا غير مألوف جدًا مع السجلات، لقد كنت أفعل هذا لمدة خمس سنوات مع القليل جدًا من المشكلات التي يسهل إصلاحها لدرجة أنه لم يكن هناك سبب لذلك، وليس لدي فريق تقني للسؤال، هل يمكنك إرشادي للحصول عليها ونشرها وهل سيتم تنقيحها مثل ملف الطبيب إذا قمت بتحميلها؟

لقد واجهت مشكلة أيضًا مع هذا التحديث الأخير لموقع جديد، ربما قاطعت التثبيت عن طريق الخطأ ثم أبلغ الموقع عن تحديثه وفي نفس الوقت يحتاج إلى تحديث عاجل، ولكنه لم يتمكن من التحديث لأنه أكمل للتو آخر تحديث.

أدى إعادة بناء التطبيق من وحدة التحكم إلى حل هذه المشكلة، ولم تكن هناك حاجة للاستعادة من النسخة الاحتياطية.

سيكون من الجيد معرفة كيفية إعادة تشغيل الموقع من النسخة الاحتياطية، ولا أعرف أيضًا كيفية القيام بذلك.

إعجابَين (2)

فقط لأحاول مرة أخرى قمت بـ

cd /var/discourse
git pull
./launcher rebuild app

وحصلت مرة أخرى على

أخطاء/تحذيرات على النحو التالي

image

لم يساعد الطبيب مرة أخرى، احتفظت بتقريره ولكن لا شيء جديد فيه

إعجاب واحد (1)

إعادة بناء أخرى الآن مع أخطاء مماثلة:

137:M 12 Nov 2023 13:09:14.143 # تحذير: لم يتمكن من إنشاء مقبس استماع خادم TCP *:6379: bind: العنوان قيد الاستخدام بالفعل
137:M 12 Nov 2023 13:09:14.143 # فشل الاستماع على المنفذ 6379 (TCP)، الإجهاض.

ومع ذلك، لا يزال الأمر مستمرًا، أتذكر رؤية هذه الأخطاء من قبل ولكن التثبيت اكتمل.

هل قمت بتسجيل الدخول إلى وحدة تحكم الخادم باستخدام ssh بصفتك المستخدم الجذر؟

في بعض الأحيان أثناء التثبيت، يستغرق الأمر وقتًا طويلاً لإكماله، ويبدو أنه أكثر من 10 دقائق، وقد اعتقدت أنه يتعطل في البداية ولكن بعد الانتظار لفترة كافية، اكتمل.

الكثير من الأخطاء حول الاعتمادية النظيرة غير الصحيحة/غير الملباة.

ثم يتوقف بعد السطر “تم إنهاء الحفظ في الخلفية بنجاح”، والذي يبدو وكأنه خاتمة ولكن يبدو أنه ليس كذلك، هذا هو المكان الذي يمكن أن يستغرق عشر دقائق للانتقال إلى الخطوة التالية.

إعجابَين (2)

لعرض تفاصيل السجل، يمكنك القيام بشيء مثل هذا:

قم بتسجيل الدخول كـ root أو قم بتنفيذ “sudo su
ثم قم بتنفيذ الأوامر:

cd /var/discourse
./launcher enter app
tail -f log/production.log

بعد تشغيل الأمر الأخير، تحتاج إلى إجراء طلب HTTP إلى Discourse الخاص بك. ستظهر رسالة خطأ جديدة في واجهة الأوامر الخاصة بك. بعد ذلك، يمكنك إيقاف تنفيذ أمر tail باستخدام Ctrl+C وعرض الرسالة أو نسخها.

للخروج من واجهة الأوامر للحاوية، يمكنك استخدام الأمر exit.

إعجابَين (2)

نعم

استجابة خطأ من الخادم: الحاوية 0be0150fecde6af5e98c0f12b97d24ccc1333fee2e96f02174ac63b79df8efbc لا تعمل
tail: لا يمكن فتح ‘log/production.log’ للقراءة: لا يوجد مثل هذا الملف أو الدليل
tail: لم يتم العثور على ملفات متبقية

لقد حاولت طلب HTTP كـ curl “https://forum.full30.com"

وحصلت على

curl: (3) URL باستخدام تنسيق سيء/غير قانوني أو URL مفقود

إذًا… ربما لم أفهم ببساطة ما كنت تقصده بطلب HTTP :man_shrugging:

مع كون هذا هو أحدث نسخة احتياطية لديك، وبما أنني لست خبيرًا في هذا النوع من الأشياء، فلست متأكدًا من أنه يجب علي تقديم المشورة هنا.

على حد علمي، فإن المشكلة المتعلقة بـ Warning: Could not create server TCP listening socket *:6379 من المحتمل أن تكون غير مرتبطة بالأخطاء التي تتلقاها بشأن عمليات الترحيل. على سبيل المثال:

INFO -- cd /var/www/discourse and su discourse -c 'bundle exec rake db:migrate'

ERROR: database "discourse" already exists

Error: role "discourse" already exists

Error: relation "summary_sections" already exists

يبدو أن هذه الأخطاء تشير إلى أن قاعدة بياناتك تالفة بطريقة ما. يجب أن يؤدي الأمر bundle exec rake db:migrate (الموجود في قسم INFO من مقتطف سجلاتك الذي نشرته أعلاه) إلى قيام Discourse بالتحقق من جدول schema_migrations في قاعدة البيانات لمعرفة عمليات الترحيل التي تم تشغيلها مسبقًا. هذا يمنع تشغيل نفس عملية الترحيل عدة مرات. لذا، تخميني هو أن جدول schema_migrations في قاعدة بياناتك تالف، أو أن إدخالات مكررة قد شقت طريقها بطريقة ما إلى مجلد db/migrations، أو أن الملفات في مجلد db/migrations قد تمت إعادة تسميتها بطريقة ما. لست متأكدًا مما يمكن أن يؤدي إلى حدوث أي من هذه الأشياء.

قد أغري نفسي بالدخول إلى التطبيق باستخدام ./launcher enter app وتشغيل عملية الترحيل يدويًا من هناك لمعرفة ما إذا كان ذلك سيحدث أي فرق. لكن انتظر قبل القيام بذلك. نأمل أن يرى شخص لديه معرفة أكبر ببرامج التشغيل النصية هذا المنشور ويصحح أي شيء كتبته خاطئ.

3 إعجابات

فضولي بشأن رأيك، أو رأي أي شخص

نحن نخطط لنقل خادم آخر، هل سيكون هذا وقتًا جيدًا حيث يبدو أن هذه المشاكل تتمحور حول

PG::DuplicateTable: ERROR: relation "summary_sections" already exists

وعناصر “موجودة بالفعل” أخرى؟

هل يمكن أن يساعد النقل؟

أعتقد أن هذا سيحل المشكلة. لا يضر تجربة إنشاء تثبيت جديد واستيراد أحدث ملف نسخ احتياطي إليه.

إعجابَين (2)

يبدو أن الموقع يعتبره بالفعل تثبيتًا جديدًا، لاحظ بعض لقطات الشاشة الخاصة بي

حدث ذلك ببساطة عندما استخدمت الوضع الآمن، إنه انهيار كبير جدًا لمجرد تحديث، والأغرب إذا كان مجرد نسختي من discourse قد تعطلت

لقد قمت بعمليات سحب git وما إلى ذلك، لا يختلف الأمر عن البناء الجديد، إذا كنت مخطئًا فيرجى إخباري كيف

حاولت

./launcher start-cmd app

./launcher cleanup

حذفت 18 ميجابايت من الصور، وقمت بسحب/إعادة بناء/فشل/فحص جديد وما زلت لا أرى أي نتيجة

كل معلوماتي لا تزال موجودة عندما أصل إلى تطبيقي على الأقل

أنا متأكد بنسبة 95% من أن أخطاء الجدول المكرر يمكن تجاهلها بأمان. (أتذكر رؤيتها في كل ترقية على منتدانا)

إعجاب واحد (1)

لقد تجاهلتهم، لكنني ما زلت غير قادر على العودة للاتصال بالإنترنت.

ما رأيك في تلك الأخطاء؟

هل يمكنك نشر سجل كامل من إعادة بناء؟

إعجاب واحد (1)

كانت لديّ بالأمس نفس المشكلة. اعتقدت أنها مشكلة في الخادم لأن التحديثات السابقة كانت تتصرف بشكل مشابه، وقررت أن أعمل على حلها مؤقتًا

/launcher rebuild app

قمت بتنزيل أحدث نسخة احتياطية ونشر خادم جديد. استعادة النسخة الاحتياطية كانت سهلة للغاية وبشكل غامض تم تحديث كل شيء بالفعل.

إعجاب واحد (1)
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 645 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
adb2c505fd2f1289f44586496fea24ff31264f73c26eb524baf16602a189f
root@ip-10-0-159-37:/var/discourse#

ماذا يعني ذلك بالضبط؟

نعم، ما الذي يجب أن أتطلع إلى إزالته أولاً؟