خطأ في الاتصال بـ Redis على localhost:6379 (Errno::EADDRNOTAVAIL)

بعد تثبيت Discourse باستخدام “Docker version 20.10.5, build 55c4c8” على نظام CentOS 8، يعمل الموقع، لكنه يتعطل دائمًا عند استدعاءات DELETE إلى /draft.json.

أنا أعمل مع Apache، وقد جربت كلًا من وكيل العكسي (reverse proxy) الخاص بـ Apache وHAProxy، لكن السلوك هو نفسه.

لا أعرف ما إذا كان هناك أي ارتباط، لكنني أجد العديد من هذه الأخطاء في ملف unicorn.stdout.log:

==> ./shared/standalone/log/rails/unicorn.stdout.log <==

2021-03-18T10:02:25.138Z pid=108 tid=ocs ERROR: Error fetching job: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)

Starting up 1 supervised sidekiqs

Loading Sidekiq in process id 119

2021-03-18T10:40:09.682Z pid=119 tid=orn ERROR: Error fetching job: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)

2021-03-18T10:40:09.684Z pid=119 tid=ohf ERROR: Error fetching job: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)

2021-03-18T10:40:09.685Z pid=119 tid=owv ERROR: Error fetching job: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)

2021-03-18T10:40:09.683Z pid=119 tid=oob ERROR: Error fetching job: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)

2021-03-18T10:40:09.683Z pid=119 tid=omr ERROR: Error fetching job: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)

Starting up 1 supervised sidekiqs

Loading Sidekiq in process id 121

هل يسجل Redis أي أخطاء في /var/discourse/shared/standalone/log/var-log/redis؟

إعجابَين (2)

هذا هو محتوى “current”:

53:M 18 Mar 2021 17:07:05.076 * 10 تغييرات خلال 300 ثانية. جاري الحفظ...
53:M 18 Mar 2021 17:07:05.076 * بدأت عملية الحفظ في الخلفية بواسطة المعرف 25018
25018:C 18 Mar 2021 17:07:05.126 * تم حفظ قاعدة البيانات على القرص
25018:C 18 Mar 2021 17:07:05.127 * RDB: تم استخدام 2 ميجابايت من الذاكرة عبر النسخ عند الكتابة
53:M 18 Mar 2021 17:07:05.177 * انتهت عملية الحفظ في الخلفية بنجاح
53:M 18 Mar 2021 17:12:06.097 * 10 تغييرات خلال 300 ثانية. جاري الحفظ...
53:M 18 Mar 2021 17:12:06.098 * بدأت عملية الحفظ في الخلفية بواسطة المعرف 25337
25337:C 18 Mar 2021 17:12:06.145 * تم حفظ قاعدة البيانات على القرص
25337:C 18 Mar 2021 17:12:06.145 * RDB: تم استخدام 2 ميجابايت من الذاكرة عبر النسخ عند الكتابة
53:M 18 Mar 2021 17:12:06.198 * انتهت عملية الحفظ في الخلفية بنجاح
إعجاب واحد (1)

تبدو هذه السجلات جيدة من وجهة نظري. هل لا تزال تواجه مشاكل أثناء التنقل في مثيلتك Discourse؟

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

لا يزال يتعذر عليّ حذف المنشورات أو الدعوات أو تعديل المنشورات الملغاة.

يبدو أن المشكلة موجودة في جميع استدعاءات طريقة HTTP DELETE. هل يمكنني القول إن Discourse يجب أن تستخدم POST بدلاً من DELETE؟ يبدو الأمر مشابهًا لما ورد في https://meta.discourse.org/t/how-can-discourse-make-post-instead-of-delete-for-smart-cdn/43666، لكنني لا أستخدم أي شبكة توصيل محتوى (CDN)، بل خادم افتراضي عادي مثبت عليه CentOS وDocker وفقًا للإرشادات من موقع Discourse.

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

جزء من سجل Haproxy يحتوي على أخطاء 408 عند استخدام HTTP DELETE، ما الذي قد يكون “يسقط” طلبات الحذف @codinghorror؟ إذا وصلت طلبات DELETE إلى Haproxy، فيجب أن تصل أيضًا إلى البرنامج داخل Docker، فهل يمكن أن يكون هناك شيء هناك “مسؤول” عن المشكلة؟

Mar 20 01:47:46 id22302.example.com haproxy[43043]: 176.243.177.232:61760 [20/Mar/2021:01:47:16.622] http-in discourse_socket/server3 0/0/0/30004/30034 408 71 - - CD-- 3/3/2/2/0 0/0 "DELETE /draft.json HTTP/1.1"

Mar 20 01:47:46 id22302.example.com haproxy[43043]: 176.243.177.232:61760 [20/Mar/2021:01:47:16.622] http-in discourse_socket/server3 0/0/0/30004/30034 408 71 - - CD-- 3/3/2/2/0 0/0 "DELETE /draft.json HTTP/1.1"

Mar 20 01:48:09 id22302.example.com haproxy[43043]: 176.243.177.232:61505 [20/Mar/2021:01:47:43.921] http-in discourse_socket/server3 0/0/0/25081/25081 200 396 - - ---- 2/2/1/1/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll HTTP/1.1"

Mar 20 01:48:09 id22302.example.com haproxy[43043]: 176.243.177.232:61505 [20/Mar/2021:01:47:43.921] http-in discourse_socket/server3 0/0/0/25081/25081 200 396 - - ---- 2/2/1/1/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll HTTP/1.1"

Mar 20 01:48:12 id22302.example.com haproxy[43043]: 176.243.177.232:61887 [20/Mar/2021:01:47:42.886] http-in discourse_socket/server3 0/0/0/30007/30037 408 71 - - CD-- 2/2/1/1/0 0/0 "DELETE /draft.json HTTP/1.1"

Mar 20 01:48:12 id22302.example.com haproxy[43043]: 176.243.177.232:61887 [20/Mar/2021:01:47:42.886] http-in discourse_socket/server3 0/0/0/30007/30037 408 71 - - CD-- 2/2/1/1/0 0/0 "DELETE /draft.json HTTP/1.1"

Mar 20 01:48:25 id22302.example.com haproxy[43043]: 176.243.177.232:62083 [20/Mar/2021:01:48:25.863] http-in discourse_socket/server3 0/0/0/122/122 200 404 - - ---- 2/2/1/1/0 0/0 "POST /topics/timings HTTP/1.1"

Mar 20 01:48:25 id22302.example.com haproxy[43043]: 176.243.177.232:62083 [20/Mar/2021:01:48:25.863] http-in discourse_socket/server3 0/0/0/122/122 200 404 - - ---- 2/2/1/1/0 0/0 "POST /topics/timings HTTP/1.1"

Mar 20 01:48:34 id22302.example.com haproxy[43043]: 176.243.177.232:61505 [20/Mar/2021:01:48:09.193] http-in discourse_socket/server3 0/0/0/25044/25044 200 396 - - ---- 2/2/0/0/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll HTTP/1.1"

Mar 20 01:48:34 id22302.example.com haproxy[43043]: 176.243.177.232:61505 [20/Mar/2021:01:48:09.193] http-in discourse_socket/server3 0/0/0/25044/25044 200 396 - - ---- 2/2/0/0/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll HTTP/1.1"

Mar 20 01:48:59 id22302.example.com haproxy[43043]: 176.243.177.232:61505 [20/Mar/2021:01:48:34.487] http-in discourse_socket/server3 0/0/0/25087/25087 200 396 - - ---- 1/1/0/0/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll HTTP/1.1"

Mar 20 01:48:59 id22302.example.com haproxy[43043]: 176.243.177.232:61505 [20/Mar/2021:01:48:34.487] http-in discourse_socket/server3 0/0/0/25087/25087 200 396 - - ---- 1/1/0/0/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll HTTP/1.1"

Mar 20 01:49:35 id22302.example.com haproxy[43043]: 176.243.177.232:62413 [20/Mar/2021:01:49:35.637] http-in discourse_socket/server3 0/0/0/87/87 200 417 - - ---- 1/1/0/0/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll?dlp=t HTTP/1.1"

Mar 20 01:49:35 id22302.example.com haproxy[43043]: 176.243.177.232:62413 [20/Mar/2021:01:49:35.637] http-in discourse_socket/server3 0/0/0/87/87 200 417 - - ---- 1/1/0/0/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll?dlp=t HTTP/1.1"

Mar 20 01:50:36 id22302.example.com haproxy[43043]: 176.243.177.232:62714 [20/Mar/2021:01:50:36.568] http-in discourse_socket/server3 0/0/0/81/81 200 417 - - ---- 1/1/0/0/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll?dlp=t HTTP/1.1"

Mar 20 01:50:36 id22302.example.com haproxy[43043]: 176.243.177.232:62714 [20/Mar/2021:01:50:36.568] http-in discourse_socket/server3 0/0/0/81/81 200 417 - - ---- 1/1/0/0/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll?dlp=t HTTP/1.1"

Mar 20 01:51:37 id22302.example.com haproxy[43043]: 176.243.177.232:62993 [20/Mar/2021:01:51:37.541] http-in discourse_socket/server3 0/0/0/78/78 200 417 - - ---- 1/1/0/0/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll?dlp=t HTTP/1.1"

Mar 20 01:51:37 id22302.example.com haproxy[43043]: 176.243.177.232:62993 [20/Mar/2021:01:51:37.541] http-in discourse_socket/server3 0/0/0/78/78 200 417 - - ---- 1/1/0/0/0 0/0 "POST /message-bus/742b0b89384944a7b6376e2d6978889d/poll?dlp=t HTTP/1.1"

هذا هو production.log، لم أرَ أبدًا طلب حذف يظهر، لكنني أرى كل شيء آخر مسجلاً (فتح موضوع، تعديل، حفظ، إلخ):

Completed 200 OK in 81ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 14861)

Started GET "/composer_messages?composer_action=edit&topic_id=10&post_id=13" for 176.243.226.205 at 2021-03-20 15:51:09 +0100

Processing by ComposerMessagesController#index as JSON

Parameters: {"composer_action"=>"edit", "topic_id"=>"10", "post_id"=>"13"}

Completed 200 OK in 1191ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 16940)

Started POST "/presence/publish" for 176.243.226.205 at 2021-03-20 15:51:14 +0100

Processing by Presence::PresencesController#handle_message as */*

Parameters: {"state"=>"editing", "topic_id"=>"10", "post_id"=>"13"}

Completed 200 OK in 9ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 3192)

Started PUT "/t/e-previsto-un-ritorno-di-freddo-nutro/10" for 176.243.226.205 at 2021-03-20 15:51:17 +0100

Processing by TopicsController#update as */*

Parameters: {"title"=>"E' previsto un ritorno di freddo, nutro?", "category_id"=>1, "slug"=>"e-previsto-un-ritorno-di-freddo-nutro", "topic_id"=>"10", "topic"=>{"title"=>"E' previsto un ritorno di freddo, nutro?", "category_id"=>1}}

Completed 200 OK in 19ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 5149)

Started POST "/presence/publish" for 176.243.226.205 at 2021-03-20 15:51:17 +0100

Processing by Presence::PresencesController#handle_message as */*

Parameters: {"state"=>"closed", "topic_id"=>"10"}

Completed 200 OK in 10ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 3159)

Started PUT "/posts/13" for 176.243.226.205 at 2021-03-20 15:51:17 +0100

Processing by PostsController#update as */*

Parameters: {"post"=>{"edit_reason"=>"", "cooked"=>"<p>post di test per vedere. ssss</p>", "raw"=>"post di test per vedere. ssss", "topic_id"=>"10", "raw_old"=>""}, "id"=>"13"}

Completed 200 OK in 3296ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 86638)

Started GET "/t/10.json" for 176.243.226.205 at 2021-03-20 15:51:20 +0100

Processing by TopicsController#show as JSON

Parameters: {"id"=>"10"}

Completed 200 OK in 143ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 52707)

Started GET "/draft.json?draft_key=topic_10" for 176.243.226.205 at 2021-03-20 15:51:27 +0100

Processing by DraftController#show as JSON

Parameters: {"draft_key"=>"topic_10"}

Completed 200 OK in 38ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 4317)

Started GET "/posts/13" for 176.243.226.205 at 2021-03-20 15:51:27 +0100

Processing by PostsController#show as JSON

Parameters: {"id"=>"13"}

Completed 200 OK in 16ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 5026)

Started POST "/presence/publish" for 176.243.226.205 at 2021-03-20 15:51:29 +0100

Processing by Presence::PresencesController#handle_message as */*

Parameters: {"state"=>"editing", "topic_id"=>"10", "post_id"=>"13"}

Completed 200 OK in 20ms (Views: 0.3ms | ActiveRecord: 0.0ms | Allocations: 3304)

Started GET "/posts/13" for 176.243.226.205 at 2021-03-20 15:51:38 +0100

Processing by PostsController#show as JSON

Parameters: {"id"=>"13"}

Completed 200 OK in 121ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 56890)

أيضًا، سجل PUMA لا يُظهر طلبات DELETE

2021-03-20 16:01:38 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021:16:01:38 +0100] "GET /t/e-previsto-un-ritorno-di-freddo-nutro/10 HTTP/1.1" 200 - 1.0685

2021-03-20 16:01:39 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021:16:01:39 +0100] "GET /uploads/default/optimized/1X/_129430568242d1b7f853bb13ebea28b3f6af4e7_2_32x32.png HTTP/1.1" 200 11945 0.0119

2021-03-20 16:01:39 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021 16:01:39] "POST /message-bus/557c51e14e57450c8c76ab216af0a279/poll HTTP/1.1" HIJACKED -1 0.0956

2021-03-20 16:01:42 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021:16:01:42 +0100] "POST /message-bus/557c51e14e57450c8c76ab216af0a279/poll HTTP/1.1" 200 - 0.0128

2021-03-20 16:01:43 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021 16:01:43] "POST /message-bus/557c51e14e57450c8c76ab216af0a279/poll HTTP/1.1" HIJACKED -1 0.0886

2021-03-20 16:01:54 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021:16:01:54 +0100] "GET /t/e-previsto-un-ritorno-di-freddo-nutro/10 HTTP/1.1" 200 - 0.1436

2021-03-20 16:01:55 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021:16:01:55 +0100] "GET /uploads/default/optimized/1X/_129430568242d1b7f853bb13ebea28b3f6af4e7_2_32x32.png HTTP/1.1" 200 11945 0.0383

2021-03-20 16:01:56 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021 16:01:56] "POST /message-bus/1bddd2f9aaf54ec5a589bc74c9c8a409/poll HTTP/1.1" HIJACKED -1 0.0453

2021-03-20 16:01:59 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021:16:01:59 +0100] "POST /message-bus/1bddd2f9aaf54ec5a589bc74c9c8a409/poll HTTP/1.1" 200 - 0.0129

2021-03-20 16:01:59 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021 16:01:59] "POST /message-bus/1bddd2f9aaf54ec5a589bc74c9c8a409/poll HTTP/1.1" HIJACKED -1 0.0096

2021-03-20 16:02:07 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021:16:02:07 +0100] "GET /draft.json?draft_key=topic_10 HTTP/1.1" 200 - 0.0131

2021-03-20 16:02:08 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021:16:02:08 +0100] "GET /posts/13 HTTP/1.1" 200 - 0.3559

2021-03-20 16:02:08 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021:16:02:08 +0100] "GET /composer_messages?composer_action=edit&topic_id=10&post_id=13 HTTP/1.1" 200 - 0.2087

2021-03-20 16:02:12 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021:16:02:12 +0100] "POST /presence/publish HTTP/1.1" 200 - 0.0155

2021-03-20 16:02:24 +0100 : |Puma| 176.243.226.205 - - [20/Mar/2021 16:02:24] "POST /message-bus/1bddd2f9aaf54ec5a589bc74c9c8a409/

هذا يعني أن وكيل العكس الخاص بك مُعد بشكل خاطئ ويقوم بإسقاط الطلبات غير GET/POST. هذه مشكلة شائعة جدًا، وهي أحد الأسباب التي تجعلنا نوفر وكيل عكسي مُعد مسبقًا داخل الحاوية حتى لا يحتاج الناس إلى التعديل على ذلك.

إذا قمت بإزالة HAProxy والسماذ للحاوية نفسها بالاستماع على المنفذ 80/443، فهل لا تزال المشكلة تحدث؟

إعجابَين (2)

@Falco لقد جربت للتو، ولا يزال المشكلة قائمة. هل يمكن أن يكون Puma نفسه هو خادم الويب الذي يتجاهل طلبات الحذف؟

لا نستخدم Puma في بيئة الإنتاج إذا قمت بتثبيته وفقًا لـ التثبيت القياسي الرسمي لـ Discourse.

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

تخمين بعيد، لكن هل لديك جدار حماية (WAF) من أي نوع أمام هذا النطاق @Andrea_Giovacchini؟

إعجابَين (2)

لقد جربت تثبيتًا بديلًا بعد تجربة التثبيت الرسمي الذي واجه نفس المشكلة

الآن جربت مرة أخرى الإعداد الرسمي (discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub)، لكنه فشل عند تشغيل “./launcher rebuild app” مع الرسالة التالية (قبل يومين لم يكن يفشل، لكنه كان أيضًا متأثرًا بمشكلة الحذف DELETE)

تأكد من نجاح أمر `gem install libv8 -v '8.4.255.0' --source 'https://rubygems.org/'` قبل التجميع (bundling).

في ملف Gemfile:
  تم حل mini_racer إلى الإصدار 0.3.1، الذي يعتمد على
    libv8

/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/installer/parallel_installer.rb:220:in `handle_error'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/installer/parallel_installer.rb:102:in `call'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/installer/parallel_installer.rb:71:in `call'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/installer.rb:270:in `install_in_parallel'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/installer.rb:210:in `install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/installer.rb:90:in `block in run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/process_lock.rb:12:in `block in lock'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/process_lock.rb:9:in `open'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/process_lock.rb:9:in `lock'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/installer.rb:72:in `run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/installer.rb:24:in `install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/cli/install.rb:64:in `run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/cli.rb:259:in `block in install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/settings.rb:115:in `temporary'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/cli.rb:258:in `install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/cli.rb:30:in `dispatch'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/cli.rb:24:in `start'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/exe/bundle:49:in `block in <top (required)>'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/lib/bundler/friendly_errors.rb:130:in `with_friendly_errors'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.15/exe/bundle:37:in `<top (required)>'
  /usr/local/bin/bundle:23:in `load'
  /usr/local/bin/bundle:23:in `<main>'

I, [2021-03-20T23:42:40.998961 #1]  INFO -- : إنهاء العمليات غير المتزامنة
I, [2021-03-20T23:42:40.998991 #1]  INFO -- : إرسال إشارة INT إلى HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 66
I, [2021-03-20T23:42:40.999030 #1]  INFO -- : إرسال إشارة TERM إلى exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 183
2021-03-20 23:42:40.999 UTC [66] LOG:  تم استلام طلب إيقاف سريع
183:signal-handler (1616283760) تم استلام إشارة SIGTERM وجدولة الإيقاف...
2021-03-20 23:42:41.013 UTC [66] LOG:  إلغاء أي معاملات نشطة
2021-03-20 23:42:41.014 UTC [66] LOG:  خرج العامل الخلفي "logical replication launcher" (معرف العملية 75) مع رمز خروج 1
2021-03-20 23:42:41.016 UTC [70] LOG:  جاري الإغلاق
183:M 20 Mar 2021 23:42:41.058 # تم طلب الإيقاف من قبل المستخدم...
183:M 20 Mar 2021 23:42:41.058 * حفظ لقطة RDB النهائية قبل الخروج.
183:M 20 Mar 2021 23:42:41.061 * تم حفظ قاعدة البيانات على القرص
183:M 20 Mar 2021 23:42:41.061 # أصبح Redis جاهزًا للخروج، وداعًا...
2021-03-20 23:42:41.263 UTC [66] LOG:  تم إيقاف نظام قاعدة البيانات


فشل
--------------------
خطأ Pups::ExecError: فشل الأمر cd /var/www/discourse && su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development' مع رمز عودة #<Process::Status: pid 348 exit 5>
موقع الفشل: /pups/lib/pups/exec_command.rb:112:in `spawn'
فشل التنفيذ مع المعلمات {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'"]}
9b0ca932a7dd52ccdd11e268910e3edcd8369c0c08f65e7f8686d542b9be473b
** فشل التمهيد ** يرجى التمرير للأعلى والبحث عن رسائل الخطأ السابقة، فقد يكون هناك أكثر من خطأ.
قد يساعد ./discourse-doctor في تشخيص المشكلة.
➜  discourse git:(master) ✗

@Falco حاولت إعداد الإعداد الرسمي مرة أخرى ولكن باستخدام “tests-passed” بدلاً من stable، ولم يظهر خطأ مكتبة mini_racer، لكنني ما زلت أواجه مشكلة الحذف (DELETE)، كما هو موضح في الفيديو الذي يعرض تتبع سجل nginx والمتصفح مع فتح وحدة التحكم.

تظهر طلبات POST فورًا في سجل nginx، بينما تظهر طلبات DELETE فقط بعد حدوث خطأ، وهو أمر غريب.

هذا هو تسجيل الشاشة:
https://drive.google.com/file/d/1SEOdZjjVkQTpqT3ZQJ7SaR-Ib2mO6m4M/view?usp=sharing

تم إجراء هذا الاختبار كما أُقترح مني، بتشغيل discourse مباشرة على المنفذ 80 دون وجود برامج أخرى مثل HAPROXY في المنتصف.

إعجابَين (2)

رائع، سأقوم بالنظر في الأمر ومحاولة إعادة إنتاجه غدًا، شكرًا على البلاغ.

3 إعجابات

نعم، النسخة “المستقرة” معطلة للأسف في الوقت الحالي بسبب مشكلة رجعية في bundler.

سنعمل على إصلاحها خلال اليوم القادم

إعجابَين (2)

@Falco هل تمكنت من إعادة إنتاج المشكلة؟

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

مرحبًا @Andrea_Giovacchini،

أولاً، هناك مشكلتان مختلفتان:

  1. طلبات الحذف (DELETE) المحظورة.

  2. إعادة البناء المعطلة للمستخدمين على الفرع “stable”.

تم إصلاح المشكلة رقم 2 اليوم عبر https://meta.discourse.org/t/cant-rebuild-current-stable/183859/6?u=falco

أما بخصوص المشكلة رقم 1، فإليك نتائج تحقيقي:

لدي تثبيت جديد تمامًا لـ Discourse، وعند إرسال أمر DELETE تجريبي أحصل على:

curl -X DELETE https://falcoland.falco.dev/draft.json
["BAD CSRF"]%                                                

وهذا متوقع، حيث يجب أن يصاحب هذا الأمر أيضًا كوكي (cookie) صالح لجلسة المستخدم.

في الوقت نفسه، على موقعك:

curl -X DELETE http://apicolturaitalianawebinar.it/draft.json -v
*   Trying 213.229.86.117:80...
* Connected to apicolturaitalianawebinar.it (213.229.86.117) port 80 (#0)
> DELETE /draft.json HTTP/1.1
> Host: apicolturaitalianawebinar.it
> User-Agent: curl/7.75.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
< Date: Mon, 22 Mar 2021 18:51:55 GMT
< Server: Apache/2.4.37 (centos) OpenSSL/1.1.1g Phusion_Passenger/6.0.4 mod_perl/2.0.11 Perl/v5.26.3
< X-Runtime: 0.001594
< X-Request-Id: ebe50251-0f06-4b71-acd0-887fb2666abb
< X-Powered-By: Phusion Passenger 6.0.4
< Content-Length: 1351
< Status: 404 Not Found
< Content-Type: text/html; charset=UTF-8
< 

يُظهر لي استجابة 404 من Phusion Passenger. وهذا لا يبدو وكأنه تثبيت عادي لـ Discourse :thinking:.

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

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

إعجابَين (2)

@Falco لقد قمت برفعه مرة أخرى على http://discourse.apicolturaitalianafb.it/ ويمكنك تجربته، مع التثبيت القياسي وفقًا للوثائق هنا.

أمر Curl يعطي خطأ CSRF، ويظهر فورًا في سجلات nginx الداخلية لـ Discourse، لكن الحذف من الواجهة لا يعمل ويظهر في السجل متأخرًا بحوالي 35 ثانية كما في الفيديو الذي أرسلته.

إذا وضعت discourse.apicolturaitalianafb.it:8880 كاسم المضيف في ملف app.yml، وأعدت البناء ثم ذهبت إلى http://discourse.apicolturaitalianafb.it:8880، فإنه يعمل بشكل طبيعي، لكنني لا أستطيع استخدامه بهذه الطريقة.

بما أن Apache يعمل كموقع إنتاجي، جربت وضعه خلف haproxy وفقًا للوثائق في هذا الموقع، فتوقف حذف الرسائل من Discourse عن العمل، بينما يعمل أمر curl الخاص بك. جربت أيضًا الوكيل العكسي لـ Apache، فيعمل أمر curl لكن الحذف من Discourse لا يعمل. جربت أيضًا إعداد Discourse للعمل عبر منفذ Unix ثم الوكيل العكسي إليه، لكن المشكلة نفسها.

بالنسبة لي، الدليل هو أن الوكيل العكسي لا “يوقف” عمليات الحذف، بل أن سكريبتات JavaScript في Discourse تتوقف لسبب ما عن تنفيذ حذف HTML بشكل صحيح.

هل التثبيت الجديد الذي جربته مباشرة معرض للعامة؟