Error al intentar editar una publicación con una imagen (¿NginX Proxy Manager?)

No. Tengo 18 TB libres… JAJAJA.

1 me gusta

Ok. Usé el:

./launcher rebuild app

Todavía veo el:

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".

y termina con:

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

Recibo el siguiente error y, sin embargo, /home/discourse tiene permisos 777. ¿Qué pasa con eso???

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.

También veo los siguientes errores y, de nuevo, mi /home/discourse tiene permisos 777 y ni siquiera eso le da acceso. ¿Cómo se supone que se deben establecer la propiedad y el acceso? El usuario de discourse solo existe dentro del contenedor.

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.

El único otro error que veo es un error sobre el puerto 6379. ¿Me falta algo en cuanto a la apertura de puertos?

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.

Después de que eso se hizo, ejecuté discourse-doctor ya que el foro estaba detenido. A pesar de lo que dice a continuación, el foro se inició de nuevo:

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.

El discourse-doctor encontró los siguientes errores:

 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.

Así que, después del discourse-doctor, el foro vuelve a estar en funcionamiento, aunque con los mismos errores exactos que publiqué inicialmente. Los gráficos son un requisito y, por lo tanto, estoy pensando que los gráficos ya no funcionan en esta versión. Este error comenzó en la versión beta3 de 2.9.0 y ahora estoy en la beta4 de 2.9.0. ¿Hay alguna forma de degradar o arreglar este desastre?

@JammyDodger todo se reduce a esto:

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


Tenga en cuenta que no hay .config en /home/discourse. Así que creé .config.

Si esto ayuda, aquí está el panel de actualización a partir de ahora.

La razón por la que tu foro vuelve a estar en línea después de Discourse-Doctor es que está reiniciando la versión existente del sitio, anterior a la reconstrucción. Por lo tanto, estarás en línea, pero desafortunadamente también volverás al punto de partida.

Si tienes una copia de seguridad reciente, ¿puede que te resulte más rápido iniciar una nueva instancia y restaurar tu sitio allí?

He buscado en el sitio errores similares, ya que me temo que no es algo con lo que tenga experiencia personal, pero no entendí las respuestas lo suficiente como para poder aconsejar sobre ellas. :slightly_smiling_face: @pfaffman normalmente es bueno en esto. ¿Funcionaría algo como esto, o es una pista falsa total?

1 me gusta

Como último recurso, realicé una copia de seguridad desde la GUI de administración. El registro indicó que la copia de seguridad fue exitosa. Intenté descargar la copia de seguridad. El foro me envió un correo electrónico con el enlace a la copia de seguridad. Hice clic en él y parecía que se descargaba, pero no se descargó ningún archivo. Mi foro muestra copias de seguridad, pero ninguna de ellas se puede descargar. Pensé que, en el peor de los casos, instalaría un Discourse desde cero y subiría una copia de seguridad. Lamentablemente, no puedo descargar copias de seguridad de mi foro actual y no hay errores en el registro. Este producto me hace sentir como si fuera un novato total y no lo soy.

Hice chown dentro del contenedor como indicaste. Recibo un correo electrónico con el enlace de copia de seguridad. Hice clic en él. Especificé la carpeta de descarga en mi escritorio de Ubuntu. Vuelve inmediatamente y no se descarga nada. Estoy en el punto en que estoy listo para perder mis últimos dos años de notas del foro y destrozar mi canal de YouTube. Este producto se resiste a todos los intentos de reparación, copia de seguridad o restauración.

:thinking: Creo que deberías dejar en suspenso cualquier cambio más arriesgado hasta que alguien con más conocimiento pueda ofrecer un consejo específico. Aprecio que esto sea realmente frustrante, pero hacer algo precipitado podría ser lamentable.

Tengo múltiples copias de seguridad de imágenes confiables del servidor que puedo restaurar en cualquier momento. El caso es que necesito mis datos actuales del servidor y Discourse no me entregará una copia de la copia de seguridad que hizo. No sé qué hacer a partir de aquí. Estoy considerando simplemente hacer capturas de pantalla de todos mis gráficos y copiar el texto y recrear todo en phpBB, que sí funciona.

Así que mi problema no es subir una copia de seguridad. Es descargar la copia de seguridad del foro. Así que, para intentar solucionar el problema del lanzador, cambié la propiedad de /home/discourse dentro del contenedor a discourse, ya que era root. Volví a ejecutar el lanzador y…

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".

Este producto está repleto de cientos de errores y arreglar uno o dos no produce ninguna mejora. Hace dos semanas funcionaba bien y luego se autodestruyó y no hay adónde ir para arreglar este desastre.

Bueno, eso es algo. :+1: Siempre y cuando te sientas cómodo con esa red de seguridad, y seas consciente y estés dispuesto a asumir los riesgos al experimentar. Yo mismo lo administro, y puede ser bastante estresante salirse de lo “estándar” sin alguna guía cuando tienes contenido que te importa.

¿Podrías darnos más detalles sobre tu configuración y cómo has estado manteniendo tu servidor hasta ahora? Quizás eso podría arrojar algo de luz sobre cómo sucedió esto, y sonar familiar para alguien más en la comunidad que haya experimentado un problema similar. ¿Qué servidor y especificaciones tienes? Mencionaste que seguiste la guía de instalación estándar, pero no fuiste claro en algunos de los comandos de rutina, ¿podrías haberte saltado una actualización importante de tu servidor, etc.?

1 me gusta

En lugar de descargar a través de la interfaz web, puede usar scp o rsync para enviarlo a otro lugar.

No entiendo lo que está pasando aquí.

El /home/discourse al que se hace referencia en la actualización de la UX está dentro del contenedor, por lo que no esperaría ver esos archivos en su sistema de archivos local.

Pero usted sí entiende la diferencia entre dentro y fuera del contenedor.

Eso no cambiará nada sobre una reconstrucción, ya que no está mirando ese contenedor.

¿Ha hecho un

git pull?

¿Está en la rama main y no en la rama master?

2 Me gusta

Entiendo dentro y fuera del contenedor. No encuentro la carpeta de copias de seguridad.

OK. Gran progreso @JammyDodger. Gracias por tu ayuda. Restauré una copia de seguridad de mi servidor Discourse de enero. Funcionó perfectamente y luego lo actualicé a la última versión con un “git pull” y luego un rebuild de la aplicación. Buenas noticias: CERO ERRORES ahora.

Finalmente logré exportar la copia de seguridad del servidor antiguo e importarla. Todos mis datos están en el foro y el foro no tiene errores.

Desafortunadamente, todavía no puedo editar ninguna publicación con gráficos ni crear una nueva publicación con gráficos. Obtengo errores 500 o simplemente un “no se pudo crear la publicación”. Siéntete libre de probar esto en https://discussion.scottibyte.com/ La buena noticia es que mientras mis publicaciones sean solo de texto, estoy bien, estoy actualizado a la última versión y no tengo errores.

1 me gusta

Siento que mi problema debe estar relacionado con la incapacidad de Discourse para acceder a la caché de carga de imágenes al crear una publicación con imágenes o al editar una publicación existente con imágenes. También estoy completamente actualizado a 2.9.0.beta4. En beta1 no vi este problema. Creo que ocurrió en beta3 o beta4. Cada vez que edito una publicación existente con imágenes, obtengo un error 500 al intentar guardar la edición. Al crear una nueva publicación con imágenes, obtengo:


Si edito o creo una publicación con texto e hipervínculos sin gráficos incrustados, funciona bien.

Editar una publicación existente que contenga imágenes en Discourse 2.9.0.beta4 falla con el siguiente error:

Crear un nuevo tema falla tan pronto como subo una imagen con este error:

¿Alguien tiene alguna idea de cómo solucionar esto? Comenzó después de que actualicé a beta4.

Hola @vmsman :slightly_smiling_face:

¿Puedes mantener tus publicaciones sobre un problema en un solo tema, en lugar de publicar en varios y crear múltiples? Si alguien puede ayudar, tendrá toda la información relevante en un solo lugar y será más fácil de seguir. :+1:

Sin embargo, esta es una buena noticia. :+1: ¿La copia de seguridad que funciona ahora te permitiría iniciar una instancia nueva e instalar allí?

Así que, me actualicé por completo. Todos los errores de reconstrucción han desaparecido. Restauré la copia de seguridad. Todavía no puedo subir imágenes.

Así que construí un nuevo servidor desde cero. No tuvo errores. Restauré mi copia de seguridad. Todavía tengo los mismos errores 500 al editar publicaciones con gráficos. Tampoco puedo crear publicaciones con imágenes. Incluso intenté crear una publicación antes de restaurar la copia de seguridad de la instalación virgen y no funcionaba con gráficos. Algo debe haber cambiado con Discourse 2.9.0.beta4. Todo funcionaba en beta2. Debo llegar a la conclusión de que esto es un problema de red. Tengo mi Discourse y mis otras aplicaciones alojadas detrás de NginX Proxy Manager y todas las demás aplicaciones están bien. Como prueba, quité NginX Proxy Manager y expuse el servidor directamente y los errores desaparecieron. Por lo tanto, llego a la conclusión de que beta4 está haciendo algo diferente a nivel de red.

1 me gusta

Eso suena a que podrías estar en lo cierto. :+1: Actualicemos el título de nuevo y veamos si eso te puede dar más respuestas.

Me temo que solo conozco la instalación estándar, así que mis habilidades con NginX Proxy son inexistentes. :slightly_smiling_face: