Erreur lors de la modification d'un post avec une image (NginX Proxy Manager ?)

Non, non. J’ai 18 To d’espace libre… LOL.

1 « J'aime »

Ok. J’ai utilisé :

./launcher rebuild app

Je vois toujours :

I, [2022-04-29T16:46:00.618865 #1]  INFO -- : > cd /var/www/discourse & [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production & yarn cache clean'
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".

et cela se termine par :

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 720 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
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.
29d02d2c0c6e0dde4f6d7b625db30c7b69626a80ec8100a44e8caf88565d1c7e

J’obtiens l’erreur suivante et pourtant /home/discourse est en 777. Qu’est-ce qui se passe ???

warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
node:fs:1336
  handleErrorFromBinding(ctx);
  ^

Error: EACCES: permission denied, mkdir '/home/discourse/.config/configstore'
You don't have access to this file.

Je vois également les erreurs suivantes et pourtant mon /home/discourse est en 777 et même cela ne lui donne pas accès. Comment la propriété et l’accès sont-ils censés être définis ? L’utilisateur discourse n’existe qu’à l’intérieur du conteneur.

I, [2022-04-29T16:45:47.705749 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'
[DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local deployment 'true'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local without 'test development'`, and stop using this flag
`/home/discourse` is not writable.

La seule autre erreur que je vois est une erreur concernant le port 6379. Est-ce que je manque quelque chose en termes d’ouverture de ports ?

130:M 29 Apr 2022 16:45:10.722 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
130:M 29 Apr 2022 16:45:10.722 # Failed listening on port 6379 (TCP), aborting.
Updating files: 100% (31051/31051), done.

Après cela, j’ai exécuté discourse-doctor puisque le forum était arrêté. Malgré ce qu’il dit ci-dessous, le forum a été redémarré :

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 722 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
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.
922dd1e5bd9c3ec682864fff915eb2c12f4bf88805d555bc78f067ac2910540a
==================== END REBUILD LOG ====================
Failed to rebuild app.

Checking your domain name . . .

Connection to discussion.scottibyte.com succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . .
x86_64 arch detected.

starting up existing container
+ /usr/bin/docker start app
app
ce20d9cd2ce   local_discourse/app   "/sbin/boot"   12 days ago   Up Less than a second   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   app
Restarted the container.


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git

No non-official plugins detected.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

Le discourse-doctor a trouvé les erreurs suivantes :

 d.indkey, pg_get_indexdef(d.indexrelid), t.oid,
	                pg_catalog.obj_description(i.oid, 'pg_class') AS comment
	FROM pg_class t
	INNER JOIN pg_index d ON t.oid = d.indrelid
	INNER JOIN pg_class i ON d.indexrelid = i.oid
	LEFT JOIN pg_namespace n ON n.oid = i.relnamespace
	WHERE i.relkind IN ('i', 'I')
	  AND d.indisprimary = 'f'
	  AND t.relname = 'user_search_data'
	  AND n.nspname = ANY (current_schemas(false))
	ORDER BY i.relname
	
2022-04-29 16:59:55.223 UTC [720] discourse@discourse LOG:  duration: 174.472 ms  execute <unnamed>: INSERT INTO "user_search_data" ("raw_data","user_id","locale","version","search_data") VALUES ('system system', -1, 'en', 3, '''system'':1A,2B ') ON CONFLICT ("user_id") DO UPDATE SET "raw_data"=excluded."raw_data","locale"=excluded."locale","version"=excluded."version","search_data"=excluded."search_data" RETURNING "user_id"
I, [2022-04-29T16:59:55.668214 #1]  INFO -- : 
I, [2022-04-29T16:59:55.668479 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile'
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
node:fs:1336
  handleErrorFromBinding(ctx);
  ^

Error: EACCES: permission denied, mkdir '/home/discourse/.config/configstore'
You don't have access to this file.

    at Object.mkdirSync (node:fs:1336:3)
    at AsyncFunction.module.exports.sync (/var/www/discourse/app/assets/javascripts/node_modules/make-dir/index.js:114:6)
    at Configstore.set all [as all] (/var/www/discourse/app/assets/javascripts/node_modules/configstore/index.js:59:12)
    at Configstore.set (/var/www/discourse/app/assets/javascripts/node_modules/configstore/index.js:91:12)
    at clientId (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/lib/cli/index.js:55:17)
    at module.exports (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/lib/cli/index.js:105:13)
    at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/bin/ember:34:1)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
    at Module.load (node:internal/modules/cjs/loader:981:32) {
  errno: -13,
  syscall: 'mkdir',
  code: 'EACCES',
  path: '/home/discourse/.config/configstore'
}
error Command failed with exit code 1.

Donc, après le discourse-doctor, le forum est de nouveau opérationnel, bien qu’avec les mêmes erreurs exactes que celles que j’ai initialement signalées. Les graphismes sont une exigence et je pense donc que les graphismes ne fonctionnent plus dans cette version. Cette erreur a commencé dans la version bêta3 de 2.9.0 et je suis maintenant à la bêta4 de 2.9.0. Y a-t-il un moyen de rétrograder ou de corriger ce désordre ?

@JammyDodger tout se résume à ceci :

$ yarn install --production
Error: EACCES: permission denied, open '/home/discourse/.config/yarn'


Notez qu’il n’y a pas de .config dans /home/discourse. J’ai donc créé .config.

Si cela peut aider, voici le tableau de bord de mise à jour à l’heure actuelle.

La raison pour laquelle votre forum revient en ligne après Discourse-Doctor est qu’il redémarre la version existante du site, celle d’avant la reconstruction. Vous serez donc en ligne, mais malheureusement, vous reviendrez à la case départ.

Si vous avez une sauvegarde récente, vous trouverez peut-être plus rapide de lancer une nouvelle instance et d’y restaurer votre site ?

J’ai recherché sur le site des erreurs similaires, car je crains de ne pas avoir d’expérience personnelle avec ce problème, mais je n’ai pas assez compris les réponses pour pouvoir vous conseiller à leur sujet. :slightly_smiling_face: @pfaffman est normalement bon pour ces choses-là. Est-ce que quelque chose comme ceci fonctionnerait, ou est-ce une fausse piste ?

1 « J'aime »

Alors, en dernier recours, j’ai effectué une sauvegarde depuis l’interface graphique d’administration. Le journal indiquait que la sauvegarde avait réussi. J’ai essayé de télécharger la sauvegarde. Le forum m’a envoyé un e-mail avec le lien de la sauvegarde. J’ai cliqué dessus et il semblait que le téléchargement ait eu lieu, mais aucun fichier n’a été téléchargé. Mon forum affiche des sauvegardes, mais aucune ne peut être téléchargée. J’ai pensé que dans le pire des cas, j’installerais un Discourse à partir de zéro et que je téléchargerais une sauvegarde. Malheureusement, je ne peux pas télécharger les sauvegardes de mon forum actuel et il n’y a aucune erreur dans le journal. Ce produit me donne l’impression d’être un débutant complet et je ne le suis pas.

J’ai utilisé chown à l’intérieur du conteneur comme vous l’avez indiqué. Je reçois un e-mail pour le lien de sauvegarde. Je l’ai cliqué. J’ai spécifié le dossier de téléchargement sur mon bureau Ubuntu. Il revient immédiatement et rien n’est téléchargé. J’en suis au point où je suis prêt à perdre mes deux dernières années de notes de forum et à jeter ma chaîne Youtube. Ce produit résiste à toutes les tentatives de réparation, de sauvegarde ou de restauration.

:thinking: Je pense que vous devriez suspendre tout changement risqué jusqu’à ce que quelqu’un de plus compétent puisse vous donner des conseils spécifiques. J’apprécie que ce soit vraiment frustrant, mais faire quelque chose de précipité pourrait être regrettable.

J’ai plusieurs sauvegardes d’images fiables du serveur que je peux restaurer à tout moment. Le problème est que j’ai besoin de mes données actuelles du serveur et Discourse ne me donnera pas une copie de la sauvegarde qu’il a faite. Je ne sais pas quoi faire ensuite. J’envisage de faire des captures d’écran de tous mes graphiques et de copier le texte pour tout recréer en phpBB, ce qui fonctionne.

Mon problème n’est donc pas le téléchargement d’une sauvegarde. Il s’agit du téléchargement de la sauvegarde depuis le forum. Pour tenter de résoudre le problème du lanceur, j’ai changé le propriétaire de /home/discourse à l’intérieur du conteneur en discourse car il était root. J’ai relancé le lanceur et…

warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".

Ce produit est truffé de centaines d’erreurs et en corriger une ou deux n’apporte aucune amélioration. Il y a deux semaines, tout fonctionnait bien, puis il s’est autodétruit et il n’y a nulle part où aller pour réparer ce désordre.

Eh bien, c’est déjà ça. :+1: Tant que vous êtes à l’aise avec ce filet de sécurité, et que vous êtes conscient et heureux d’assumer les risques liés à l’expérimentation. J’héberge moi-même, et cela peut être assez stressant de sortir des sentiers battus sans quelques conseils lorsque l’on a du contenu auquel on tient.

Pourriez-vous nous donner plus de détails sur votre configuration et sur la manière dont vous avez entretenu votre serveur jusqu’à présent ? Cela pourrait peut-être éclaircir la façon dont cela s’est produit, et sembler familier à quelqu’un d’autre dans la communauté qui a rencontré un problème similaire. Quel serveur et quelles spécifications avez-vous ? Vous avez mentionné avoir suivi le guide d’installation standard, mais vous n’étiez pas clair sur certaines commandes de routine, pourriez-vous avoir manqué une mise à jour importante de votre serveur, etc. ?

1 « J'aime »

Plutôt que de télécharger via l’interface web, vous pouvez plutôt utiliser scp ou rsync ailleurs.

Je n’arrive pas à comprendre ce qui se passe ici.

Le /home/discourse mentionné dans la mise à niveau de l’UX se trouve à l’intérieur du conteneur, vous ne vous attendriez donc pas à voir ces fichiers dans votre système de fichiers local.

Mais vous comprenez la différence entre l’intérieur et l’extérieur du conteneur.

Cela ne changera rien à une reconstruction puisque vous ne regardez pas ce conteneur.

Avez-vous fait un

git pull ?

Êtes-vous sur la branche main et non sur la branche master ?

2 « J'aime »

Je comprends ce qui se passe à l’intérieur et à l’extérieur du conteneur. Je ne trouve pas le dossier de sauvegarde.

OK. Progrès énormes @JammyDodger. Merci pour votre aide. J’ai restauré une sauvegarde de mon serveur Discourse datant de janvier. Elle a parfaitement fonctionné, puis je l’ai mise à jour vers la dernière version avec un « git pull » suivi d’un rebuild de l’application. Bonne nouvelle, ZERO ERREURS maintenant.

J’ai finalement réussi à exporter la sauvegarde de l’ancien serveur et à l’importer. Toutes mes données sont sur le forum et le forum n’a aucune erreur.

Malheureusement, je ne peux toujours pas modifier un message contenant une image ni en créer un nouveau avec une image. J’obtiens des erreurs 500 ou simplement un « impossible de créer le message ». N’hésitez pas à essayer sur https://discussion.scottibyte.com/ La bonne nouvelle est que tant que mes messages sont uniquement textuels, tout va bien, je suis à jour avec la dernière version et sans erreurs.

1 « J'aime »

J’ai l’impression que mon problème est lié à l’incapacité de Discourse à accéder au cache de téléchargement d’images lors de la création d’un message avec des images ou de la modification d’un message existant avec des images. Je suis également complètement mis à jour vers la version 2.9.0.beta4. Dans la beta1, je n’ai pas rencontré ce problème. Je pense qu’il est survenu dans la beta3 ou la beta4. Chaque fois que je modifie un message existant avec des images, j’obtiens une erreur 500 lorsque j’essaie de sauvegarder la modification. Lorsque je crée un nouveau message avec des images, j’obtiens :


Si je modifie ou crée un message avec du texte et des hyperliens sans graphiques intégrés, cela fonctionne correctement.

Modification d’un message existant contenant des images sur Discourse 2.9.0.beta4 échoue avec l’erreur suivante :

La création d’un nouveau sujet échoue dès que je télécharge une image avec cette erreur :

Quelqu’un a-t-il une idée de comment résoudre ce problème ? Cela a commencé après ma mise à niveau vers beta4.

Salut @vmsman :slightly_smiling_face:

Peux-tu garder tes publications pour un problème sur un seul sujet, plutôt que de poster sur plusieurs. Si quelqu’un peut aider, il aura toutes les informations pertinentes au même endroit et il sera plus facile de suivre. :+1:

C’est une bonne nouvelle cependant. :+1: La sauvegarde fonctionnelle te permettrait-elle maintenant de lancer une nouvelle instance et d’y installer ?

J’ai donc complètement mis à niveau. Tous les bugs de reconstruction ont disparu. J’ai restauré la sauvegarde. Je ne peux toujours pas télécharger d’images.

J’ai donc construit un nouveau serveur à partir de zéro. Il n’y avait aucune erreur. J’ai restauré ma sauvegarde. J’ai toujours les mêmes erreurs 500 lors de la modification de publications avec des graphiques. Je ne peux pas non plus créer de publications avec des images. J’ai même essayé de créer une publication avant de restaurer la sauvegarde de l’installation vierge et cela n’a pas fonctionné pour les graphiques. Quelque chose a dû changer avec Discourse 2.9.0.beta4. Tout fonctionnait bien dans la beta2. Je dois en conclure qu’il s’agit d’un problème réseau. J’ai mon discourse et mes autres applications hébergées derrière NginX Proxy Manager et toutes les autres applications fonctionnent bien. En guise de test, j’ai retiré NginX Proxy Manager et exposé le serveur directement et les erreurs ont disparu. J’en conclus donc que la beta4 fait quelque chose de différent au niveau réseau.

1 « J'aime »

Ça semble être une bonne piste. :+1: Mettons à jour le titre à nouveau et voyons si cela peut vous rapporter plus de réponses.

Je crains de ne connaître que l’installation standard, donc mes compétences en NginX Proxy sont inexistantes. :slightly_smiling_face: