الترقية من /admin/upgrade تستغرق وقتاً طويلاً جداً

أثناء ترقية ملحق واحد من admin/upgrade يستغرق الأمر وقتًا طويلاً.

عادةً ما يتم إعادة بناء كامل في حوالي 7 دقائق.

كانت تتم الترقية منذ 2023-03-02T20:07:00Z، والحالة الآن:

مخرجات HTOP:

تعديل: 2023-03-02T20:44:00Z - لا تزال عند نفس سطر السجل. وحدة المعالجة المركزية لا تزال كما هي. بدأت إعادة البناء عبر سطر الأوامر في هذه المرحلة.

تعديل2: للإشارة إلى الوقت الدقيق الذي تستغرقه إعادة البناء على جهازي، الطابع الزمني لإكمال إعادة البناء: 2023-03-02T20:51:00Z

4 إعجابات

نعم، لقد كنت أواجه نفس الشيء منذ الأمس على الأقل.

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

اكتملت إعادة بناء واجهة سطر الأوامر (CLI).

لا يزال ترقية المسؤول عالقة ولا يبدو أن المكون الإضافي قد تمت ترقيته.

لقد نقرت على “إعادة تعيين الترقية” وبدأت عملية إعادة بناء أخرى لواجهة سطر الأوامر.

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

وأنا أيضاً، لدي نفس الشيء تماماً. مزعج جداً عند ترقية الإضافات، يستغرق وقتاً طويلاً جداً - غير ملائم للغاية.

إعجابَين (2)

هل هناك أي حل بديل لهذا؟ في كل مرة أقوم بالترقية لمواكبة التغييرات في Discourse Chatbot :robot: (يدعم ChatGPT) - المكون الإضافي - Discourse Meta، يستغرق الأمر وقتًا طويلاً جدًا.

لا تزال هذه مشكلة.

ومع ذلك، يبدو أنها تؤثر فقط على الخوادم ذات المواصفات الأقل؟

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

لإضافة صوت إضافي بدلاً من أي إجابات… :slight_smile:

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

لم أقم بقياس الوقت من قبل، ولكن اليوم قمت بتعيينه على “تحديث الكل” وسجلت وقت النقر على الزر. حتى الآن بدأنا الساعة 9:30 صباحًا، ولا يزال مستمرًا في الساعة 10:15. إنه يقوم حاليًا بتجميع بعض الأصول. يمكنني القول بثقة معقولة أنه لا يستغرق عادةً أكثر من 45 دقيقة وما زال مستمرًا للقيام بعمله.

على الرغم من أنه يبدو أن لديه بعض مشكلات الأذونات في مسح الملفات المؤقتة؟ لست متأكدًا مما إذا كان ذلك ذا صلة.

4 إعجابات

لقد وجدت أنا و @david السبب الجذري. (على غرار ما وجده @Falco في الماضي)

نحن نستخدم علامات Ruby خاصة لمحاولة الحد من الذاكرة أثناء الترقيات ولم يعد هذا يعمل على Ruby 3.2.

يجب أن يكون لدينا طلب سحب (PR) قريبًا لإصلاح المشكلة.

7 إعجابات
7 إعجابات

ملاحظة… لكي يسري الإصلاح، هناك موقف يشبه “الدجاجة والبيضة”. لا يزال الكود القديم يتم تحميله عند تشغيل الترقية.
قد تحتاج إلى ./launcher rebuild للمرة الأولى، وفي المرات اللاحقة سيكون مُحدِّث الويب على ما يرام.
لا توجد طريقة سهلة لتجاوز هذا. @cvx إنها مشكلة صعبة… من الناحية الفنية، يجب أن نجعل DockerManager::Upgrader.new(user_id, repo, repo_version).upgrade يقوم بتشغيل كود الترقية الجديد عند الترقية… ولكن هذا يشبه فتح علبة ثعابين.

حل سريع

  1. ابدأ في ترقية مدير Docker
  2. قم بالإلغاء عندما يتعثر
  3. قم بتشغيل ./launcher restart app من الطرفية
  4. ستعمل الترقية من الويب.

حل سهل

  1. قم بتشغيل ./launcher rebuild app
    كل شيء سيكون على ما يرام بعد ذلك.

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

8 إعجابات