La mise à niveau depuis /admin/upgrade prend *très* longtemps

Lors de la mise à niveau d’un plugin unique depuis admin/upgrade, cela prend très longtemps.

Généralement, une reconstruction complète est effectuée en environ 7 minutes.

Elle est en cours de mise à niveau depuis le 2023-03-02T20:07:00Z, le statut actuel est :

Sortie HTOP :

EDIT : 2023-03-02T20:44:00Z - toujours à la même ligne de log. Le CPU est le même. Reconstruction CLI initiée à ce moment-là.

EDIT2 : Pour référence, le temps exact qu’une reconstruction prend sur ma machine, horodatage de fin de reconstruction : 2023-03-02T20:51:00Z

4 « J'aime »

Oui, j’ai le même problème depuis hier au moins.

Il est maintenant plus ou moins impossible de mettre à niveau depuis l’écran de mise à niveau dans un délai raisonnable pour le moment, vous êtes donc obligé de mettre à niveau depuis la ligne de commande.

La reconstruction de la CLI est terminée.

La mise à niveau de l’administrateur est toujours bloquée et il semble que le plugin n’ait pas été mis à niveau.

J’ai cliqué sur RESET UPGRADE et j’ai lancé une autre reconstruction par CLI.

1 « J'aime »

Moi aussi, j’ai exactement la même chose. Très irritant lors de la mise à niveau des plugins, cela prend vraiment très longtemps - Extrêmement gênant.

2 « J'aime »

Existe-t-il une solution de contournement ? Chaque fois que je mets à jour pour suivre les changements sur Discourse Chatbot :robot: (prend en charge ChatGPT) - plugin - Discourse Meta, cela prend tellement de temps.

Ceci est toujours un problème.

Cependant, cela semble n’affecter que les serveurs de spécifications inférieures ?

1 « J'aime »

Juste pour ajouter une voix supplémentaire plutôt que des réponses… :slight_smile:

J’ai un petit site de test DO de 1 Go avec de nombreux plugins, donc il n’est normalement pas le plus rapide. Cependant, je pense qu’il a pris beaucoup plus de temps récemment aussi, et le mien a été pris dans une bizarrerie l’autre jour comme @MarcP et j’ai dû le réinitialiser.

Je ne l’ai jamais chronométré auparavant, mais aujourd’hui je l’ai réglé sur ‘Mettre à jour tout’ et j’ai noté quand j’ai cliqué sur le bouton. Jusqu’à présent, nous avons un début à 9h30, et il est toujours en cours à 10h15. Il est actuellement en train de regrouper certains actifs. Je peux dire avec une certaine confiance que cela ne prend normalement pas plus de 45 minutes et en comptant pour faire son travail.

Bien qu’il semble qu’il ait eu des problèmes de permission pour purger les fichiers temporaires ? Pas sûr que ce soit pertinent.

4 « J'aime »

@david et moi avons trouvé la cause première. (similaire à ce que @Falco a trouvé par le passé)

Nous utilisons des indicateurs Ruby spéciaux pour essayer de limiter la mémoire pendant les mises à niveau et cela ne fonctionne plus sur Ruby 3.2.

Nous devrions avoir une PR bientôt pour résoudre le problème.

7 « J'aime »
7 « J'aime »

Note… pour que la correction prenne effet, il y a une situation un peu comme « l’œuf ou la poule ». L’ancien code est toujours chargé lorsque vous exécutez la mise à niveau.

Vous pourriez avoir besoin d’un ./launcher rebuild pour la première fois, et les fois suivantes, le programme de mise à niveau web fonctionnera correctement.

Il n’y a pas de solution facile. @cvx c’est un problème délicat… techniquement, nous devrions faire en sorte que DockerManager::Upgrader.new(user_id, repo, repo_version).upgrade exécute le nouveau code de mise à niveau lors de la mise à niveau… mais c’est une boîte de Pandore.

Solution de contournement rapide

  1. Commencez la mise à niveau du gestionnaire Docker
  2. Annulez lorsqu’il est bloqué
  3. Exécutez ./launcher restart app depuis le shell
  4. La mise à niveau depuis le web fonctionnera.

Solution de contournement facile

  1. Exécutez ./launcher rebuild app

Tout va bien après cela.

EDIT

Je ferme ceci de manière préventive car je veux que ce soit le dernier message sur ce sujet. Cela permettra aux gens de trouver facilement les solutions de contournement. Signalez pour rouvrir si le problème persiste après une reconstruction.

8 « J'aime »