Update problem : Broken Forum

AI-generated summary

Update Problem: Broken Forum

The original poster, dragan, is experiencing issues with their Discourse forum after updating to version 2.9.0.beta3. The error message indicates a problem with the database migration process, specifically with creating the “unaccent” extension.

RGJ suggests checking the PostgreSQL version, which is revealed to be 10.19. This is an outdated version, and RGJ suspects that this may be the cause of the issue.

After some troubleshooting, dragan reveals that the problem was indeed caused by the outdated PostgreSQL version. To fix the issue, they updated the PostgreSQL version, increased the server disk space, and updated the forum.

The solution involves editing the app.yml file, increasing the server disk space, updating PostgreSQL, and updating the forum.

Other users, including mreach, mint_saxon, and deciphan, report similar issues, which may be related to outdated PostgreSQL versions or insufficient disk space.

kevinburke provides an alternative solution by running specific commands in the database console to create the “unaccent” extension.

Key Takeaways:

  • Outdated PostgreSQL versions can cause issues with database migrations.
  • Insufficient disk space can prevent PostgreSQL updates.
  • Editing the app.yml file, increasing disk space, updating PostgreSQL, and updating the forum can resolve the issue.
  • Alternative solutions may involve running specific commands in the database console.

Hi,

I have a problem with last update. My forum is broken
I have this message on SSH.

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 2472 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'"]}
3d52a3f170f714bf580dcd30effbf9306fbf6e0ef1f786cf9dd4e326b066e6a4
** 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.

Do you have idea where is the problem and how fixed ?

Thanks you very much

Could you scroll up and check for more specific errors, and see what it says?

Hi,

here is a pastebin of the whole process. There are obviously some errors with postgresql even if I am not sure that the problem comes from there

https://pastebin.com/nqLWDRAC

How did you install? What postgres are you using?

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

I logged with root.
I can’t have better privileges :slight_smile:

I don’t know for postgres
“The program ‘pg_config’ can be found in the following packages:”

The forum is online.
I restart the server.

The first problem is fixed but i have a second.

I have this error “500 Internal Server Error” when i create or respond post

Do you have idea how fixed ?

Hi,

I found this error on the log file

 ActiveRecord::StatementInvalid (PG::InFailedSqlTransaction: ERROR: current transaction is aborted, commands ignored until end of transaction block ) app/models/post.rb:973:in `block in link_post_uplo 
ActiveRecord::StatementInvalid (PG::InFailedSqlTransaction: ERROR:  current transaction is aborted, commands ignored until end of transaction block
)
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/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'

Do you have idea what is the problem ?

Is this a standard install?

yes,

i use the forum since 6 years.

The last version installed is 2.9.0.beta3

Do you have any plugins installed? Maybe post your app.yml?

What is your postgres version? Just do launcher enter app and then type psql -V

Hi,

I test but the original problem is back

Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 2458 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'"]}
45d3621c802f025ef80ad34e77ec3318a48677b0de0134210120ef7690b6e6f4
** 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.

I think there was a problem when updating it because there was not enough space on the hard disk. I freed up some space and now I have 67% elibre. However, there is an existing problem, but which one?

The program ‘psql’ is currently not installed.
do i have to install it?

Did you do

  launcher enter app

Before the psql command?

It’s same,
I try install but i have this message

E: The package libperl5.22 needs to be reinstalled, but I can't find an archive for it.

I have taken another look at your pastebin logfile. It says Postgres 10.
Are you sure this is a standard setup which has been installed according to discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub ?

I’ve said it before, the forum has been around for many years and I’ve never had any major problems. Generally, a rebuild or update was enough to get everything going again.
Yes, it’s normal installation

My last attempt.

Can you please do

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

and copy this entirely into a reply, including the commands and output?

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

Ok, great. That’s a different result than last time.
So now please do the following

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

and if you get errors please post the ENTIRE output, including your commands, in a reply (or on Pastebin)

Interestingly I’ve experienced either the same or similar error. Running on Discourse 2.9.0.beta2 and tried to update to ß3. I’ve disabled all plugins except docker_manager for ./launcher rebuild app. Running on an external PGSQL db at version:

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

I can restart the container via ./launcher restart app following the failure, but when replies return a 500 error.

The end error during rebuild/upgrade is:

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.

The actual meaningful errors above may be found here: https://p153.p0.n0.cdn.getcloudapp.com/items/jkuvPekN/feb38236-3b84-410e-8fac-d1864d02ba69.txt?v=eb1d15e029cb07a73300d8ec07318876

I’m having a hard time believing that this is an actual permission issue and I’m hesitant to give the Discourse DB use super user/root permission to pgsql.

Any further thoughts on what could be going on here with such a recent breakage?