Problema di aggiornamento: Forum danneggiato

Ciao,

Ho un problema con l’ultimo aggiornamento. Il mio forum è rotto.
Ho questo messaggio su SSH.

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' fallito con ritorno #<Process::Status: pid 2472 exit 1>
Posizione del fallimento: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec fallito con i parametri {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
3d52a3f170f714bf580dcd30effbf9306fbf6e0ef1f786cf9dd4e326b066e6a4
** FAILED TO BOOTSTRAP ** si prega di scorrere verso l'alto e cercare messaggi di errore precedenti, potrebbero essercene più di uno.
./discourse-doctor potrebbe aiutare a diagnosticare il problema.

Hai un’idea di dove sia il problema e come risolverlo?

Grazie mille.

2 Mi Piace

Potresti scorrere verso l’alto e verificare la presenza di errori più specifici e vedere cosa dice?

1 Mi Piace

Ciao,

ecco un pastebin dell’intero processo. Ci sono ovviamente alcuni errori con postgresql anche se non sono sicuro che il problema provenga da lì

https://pastebin.com/nqLWDRAC

Come hai installato? Quale postgres stai usando?

Caused by:
PG::InsufficientPrivilege: ERROR:  permission denied to create extension "unaccent"
HINT:  Must be superuser to create this extension.
1 Mi Piace

Ho effettuato l’accesso come root.
Non posso avere privilegi migliori :slight_smile:

Non lo so per postgres
“Il programma ‘pg_config’ si trova nei seguenti pacchetti:”

Il forum è online.
Riavvio il server.

Il primo problema è risolto ma ne ho un secondo.

Ho questo errore “500 Internal Server Error” quando creo o rispondo a un post.

Hai idea di come risolvere?

Ciao,

Ho trovato questo errore nel file di log

ActiveRecord::StatementInvalid (PG::InFailedSqlTransaction: ERRORE: transazione corrente annullata, comandi ignorati fino alla fine del blocco di transazione) app/models/post.rb:973:in `block in link_post_uplo
ActiveRecord::StatementInvalid (PG::InFailedSqlTransaction: ERRORE:  transazione corrente annullata, comandi ignorati fino alla fine del blocco di transazione
)
app/models/post.rb:973:in `block in link_post_uploads'
app/models/post.rb:972:in `link_post_uploads'
lib/post_creator.rb:217:in `block in create'
lib/post_creator.rb:409:in `block (2 levels) in transaction'
lib/post_creator.rb:408:in `block in transaction'
lib/distributed_mutex.rb:33:in `block in synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:14:in `synchronize'
lib/post_creator.rb:407:in `transaction'
lib/post_creator.rb:205:in `create'
lib/new_post_manager.rb:285:in `perform_create_post'
lib/new_post_manager.rb:223:in `perform'
app/controllers/posts_controller.rb:193:in `create'
app/controllers/application_controller.rb:400:in `block in with_resolved_locale'
app/controllers/application_controller.rb:400:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:358:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:202:in `call'

Hai un’idea di quale sia il problema?

Questa è un’installazione standard?

Sì,

uso il forum da 6 anni.

L’ultima versione installata è la 2.9.0.beta3

Hai qualche plugin installato? Forse pubblica il tuo app.yml?

Qual è la tua versione di postgres? Basta digitare launcher enter app e poi psql -V

2 Mi Piace

Ciao,

Ho testato ma il problema originale è tornato

Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' fallito con ritorno #<Process::Status: pid 2458 exit 1>
Posizione del fallimento: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec fallito con i parametri {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
45d3621c802f025ef80ad34e77ec3318a48677b0de0134210120ef7690b6e6f4
** FALLITO IL BOOTSTRAP ** si prega di scorrere verso l'alto e cercare messaggi di errore precedenti, potrebbero essercene più di uno.
./discourse-doctor potrebbe aiutare a diagnosticare il problema.

Penso ci sia stato un problema durante l’aggiornamento perché non c’era abbastanza spazio sul disco rigido. Ho liberato un po’ di spazio e ora ho il 67% libero. Tuttavia, c’è un problema esistente, ma quale?

Il programma ‘psql’ non è attualmente installato.
devo installarlo?

Hai eseguito

launcher enter app

Prima del comando psql?

1 Mi Piace

È lo stesso,
Ho provato a installare ma ho questo messaggio

E: Il pacchetto libperl5.22 deve essere reinstallato, ma non riesco a trovare un archivio per esso.

Ho dato un’altra occhiata al tuo file di log pastebin. Dice Postgres 10.
Sei sicuro che si tratti di una configurazione standard installata secondo discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub?

1 Mi Piace

L’ho già detto, il forum esiste da molti anni e non ho mai avuto problemi importanti. In genere, una ricostruzione o un aggiornamento è stato sufficiente per far ripartire tutto.
Sì, è un’installazione normale.

Il mio ultimo tentativo.

Puoi per favore eseguire

cd /var/discourse
./launcher enter app
psql -V

e copiare interamente questo in una risposta, inclusi i comandi e l’output?

1 Mi Piace
psql (PostgreSQL) 10.19 (Debian 10.19-1.pgdg110+1)

Ok, ottimo. Questo è un risultato diverso rispetto all’ultima volta.
Quindi ora fai quanto segue:

cd /var/discourse
git pull
./launcher rebuild app

e se ricevi errori, pubblica l’INTERO output, inclusi i tuoi comandi, in una risposta (o su Pastebin)

1 Mi Piace

È interessante che abbia riscontrato lo stesso errore o uno simile. Sto eseguendo Discourse 2.9.0.beta2 e ho provato ad aggiornare a ß3. Ho disabilitato tutti i plugin tranne docker_manager per ./launcher rebuild app. Sto eseguendo un database PGSQL esterno alla versione:

$ psql --version
psql (PostgreSQL) 14.1 (Ubuntu 14.1-1.pgdg18.04+1)

Posso riavviare il container tramite ./launcher restart app dopo il fallimento, ma quando le risposte restituiscono un errore 500.

L’errore finale durante la ricostruzione/aggiornamento è:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 658 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"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

Gli errori significativi effettivi sopra possono essere trovati qui: https://p153.p0.n0.cdn.getcloudapp.com/items/jkuvPekN/feb38236-3b84-410e-8fac-d1864d02ba69.txt?v=eb1d15e029cb07a73300d8ec07318876

Sto trovando difficile credere che si tratti di un problema di permessi effettivo e sono riluttante a concedere all’utente del database Discourse i permessi di super utente/root su pgsql.

Qualche ulteriore pensiero su cosa potrebbe succedere con una rottura così recente?