Discourse AI Install Failing

Does anybody know what might be causing the following error message to occur when attempting to install the Discourse AI plugin?

Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 1675 exit 1> Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]} bootstrap failed with exit code 1

Ref: Discourse AI

Thanks for any assistance.

1 Like

Is it definitely the AI plugin? Do you have more of the last part of the logs so we can see the error(s)?

2 Likes

I remember seeing a similar problem here:

1 Like

Here are a more complete list of log entries, at the very end of the log. I now have all 575 rows, so if you want the full thing just let me know.

1. 98:M 15 Jul 2024 15:46:33.090 # User requested shutdown...

2. 98:M 15 Jul 2024 15:46:33.090 * Saving the final RDB snapshot before exiting.

3. 2024-07-15 15:46:33.103 UTC [36] LOG: database system is shut down

4. 98:M 15 Jul 2024 15:46:33.205 * DB saved on disk

5. 98:M 15 Jul 2024 15:46:33.205 # Redis is now ready to exit, bye bye...

* FAILED

6. --------------------

7. Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 1676 exit 1>

8. Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'

9. exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}

10. bootstrap failed with exit code 1

11. ** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

12. ./discourse-doctor may help diagnose the problem.

13. 1143b37805d37aeca127453b4c978fff71efca2bd2ed56be58acd404c7ea8f49

There should be an error further up, that’s why the end of the log asks you to

Here you go. This seems to be where the errors start.

1. I, [2024-07-15T15:46:21.288666 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf

2. I, [2024-07-15T15:46:21.290036 #1] INFO -- : > sleep 10

3. 1673:C 15 Jul 2024 15:46:21.296 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo

4. 1673:C 15 Jul 2024 15:46:21.296 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=1673, just started

5. 1673:C 15 Jul 2024 15:46:21.296 # Configuration loaded

6. 1673:M 15 Jul 2024 15:46:21.297 * monotonic clock: POSIX clock_gettime

7. 1673:M 15 Jul 2024 15:46:21.297 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use

8. 1673:M 15 Jul 2024 15:46:21.297 # Failed listening on port 6379 (TCP), aborting.

9. I, [2024-07-15T15:46:31.293903 #1] INFO -- :

10. I, [2024-07-15T15:46:31.294204 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'

11. rake aborted!

12. LoadError: cannot load such file -- tokenizers/tokenizers (LoadError)

13. /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'

14. /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'

15. /var/www/discourse/plugins/discourse-ai/gems/3.3.3/gems/tokenizers-0.4.2-x86_64-linux/lib/tokenizers.rb:5:in `rescue in <main>'

16. /var/www/discourse/plugins/discourse-ai/gems/3.3.3/gems/tokenizers-0.4.2-x86_64-linux/lib/tokenizers.rb:2:in `<main>'

17. /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'

18. /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'

19. /var/www/discourse/lib/plugin_gem.rb:27:in `load'

20. /var/www/discourse/lib/plugin/instance.rb:857:in `gem'

21. /var/www/discourse/plugins/discourse-ai/plugin.rb:11:in `activate!'

22. /var/www/discourse/lib/plugin/instance.rb:754:in `instance_eval'

23. /var/www/discourse/lib/plugin/instance.rb:754:in `activate!'

24. /var/www/discourse/lib/discourse.rb:347:in `block in activate_plugins!'

25. /var/www/discourse/lib/discourse.rb:344:in `each'

26. /var/www/discourse/lib/discourse.rb:344:in `activate_plugins!'

27. /var/www/discourse/config/application.rb:227:in `block in <class:Application>'

28. /var/www/discourse/lib/plugin.rb:6:in `initialization_guard'

29. /var/www/discourse/config/application.rb:227:in `<class:Application>'

30. /var/www/discourse/config/application.rb:75:in `<module:Discourse>'

31. /var/www/discourse/config/application.rb:74:in `<top (required)>'

32. /var/www/discourse/Rakefile:7:in `<top (required)>'

33. /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/exe/rake:27:in `<top (required)>'

34. /usr/local/bin/bundle:25:in `load'

35. /usr/local/bin/bundle:25:in `<main>'

* Caused by:

36. LoadError: cannot load such file -- tokenizers/3.3/tokenizers (LoadError)

37. /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'

38. /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'

39. /var/www/discourse/plugins/discourse-ai/gems/3.3.3/gems/tokenizers-0.4.2-x86_64-linux/lib/tokenizers.rb:3:in `<main>'

40. /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'

41. /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'

42. /var/www/discourse/lib/plugin_gem.rb:27:in `load'

43. /var/www/discourse/lib/plugin/instance.rb:857:in `gem'

44. /var/www/discourse/plugins/discourse-ai/plugin.rb:11:in `activate!'

45. /var/www/discourse/lib/plugin/instance.rb:754:in `instance_eval'

46. /var/www/discourse/lib/plugin/instance.rb:754:in `activate!'

47. /var/www/discourse/lib/discourse.rb:347:in `block in activate_plugins!'

48. /var/www/discourse/lib/discourse.rb:344:in `each'

49. /var/www/discourse/lib/discourse.rb:344:in `activate_plugins!'

50. /var/www/discourse/config/application.rb:227:in `block in <class:Application>'

51. /var/www/discourse/lib/plugin.rb:6:in `initialization_guard'

52. /var/www/discourse/config/application.rb:227:in `<class:Application>'

53. /var/www/discourse/config/application.rb:75:in `<module:Discourse>'

54. /var/www/discourse/config/application.rb:74:in `<top (required)>'

55. /var/www/discourse/Rakefile:7:in `<top (required)>'

56. /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/exe/rake:27:in `<top (required)>'

57. /usr/local/bin/bundle:25:in `load'

58. /usr/local/bin/bundle:25:in `<main>'

59. (See full trace by running task with --trace)

60. I, [2024-07-15T15:46:33.013894 #1] INFO -- : gem install tokenizers -v 0.4.2 -i /var/www/discourse/plugins/discourse-ai/gems/3.3.3 --no-document --ignore-dependencies --no-user-install

61. Successfully installed tokenizers-0.4.2-x86_64-linux

62. 1 gem installed

* I, [2024-07-15T15:46:33.014198 #1] INFO -- : Terminating async processes

63. I, [2024-07-15T15:46:33.014218 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 36

64. I, [2024-07-15T15:46:33.014237 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 98

65. 98:signal-handler (1721058393) Received SIGTERM scheduling shutdown...

66. 2024-07-15 15:46:33.014 UTC [36] LOG: received fast shutdown request

67. 2024-07-15 15:46:33.045 UTC [36] LOG: aborting any active transactions

68. 2024-07-15 15:46:33.046 UTC [36] LOG: background worker "logical replication launcher" (PID 51) exited with exit code 1

69. 2024-07-15 15:46:33.048 UTC [46] LOG: shutting down

70. 98:M 15 Jul 2024 15:46:33.090 # User requested shutdown...

71. 98:M 15 Jul 2024 15:46:33.090 * Saving the final RDB snapshot before exiting.

72. 2024-07-15 15:46:33.103 UTC [36] LOG: database system is shut down

73. 98:M 15 Jul 2024 15:46:33.205 * DB saved on disk

74. 98:M 15 Jul 2024 15:46:33.205 # Redis is now ready to exit, bye bye...

* FAILED

75. --------------------

76. Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 1676 exit 1>

77. Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'

78. exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}

79. bootstrap failed with exit code 1

80. ** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

81. ./discourse-doctor may help diagnose the problem.

82. 1143b37805d37aeca127453b4c978fff71efca2bd2ed56be58acd404c7ea8f49
1 Like

Looks nearly identical to what I shared in Cannot rebuild with Discourse AI. While both error logs share a common issue with the tokenizers library causing the rake db:migrate command to fail, your error includes an additional Redis server startup error that is not present in mine.

@JammyDodger , as I shared in Cannot rebuild with Discourse AI, it’s definitely the AI plugin.

1 Like

Yes, this one does appear to be an issue with the tokenizers as well. Let me see what I can find out. :eyes:

3 Likes

@PeakProsperity - Which Discourse branch is your site following? Are you on beta or stable by chance?

We are currently on 3.2.1.

I’m on 3.2.4. I also got the redis error this time. I think the logs I shared previously were on 3.2.1. Everything was working fine when I was (unwittingly) building Discourse from the latest commits on main. It broke when I rebuild from the stable branch.

We recently bumped Ruby to 3.3, and since you are on 3.2.1, the plugin is pinned to an older commit for compatibility reasons. In this commit, the extra gems the plugin needs are incompatible with 3.3.

Discourse 3.3 is around the corner, and it should fix the issue, but I didn’t want to leave you folks hanging or force you to start following beta/tests-passed. I’m pinning the plugin to a commit that is Ruby 3.3 compatible:

Please let me know if you still experience errors during rebuild.

3 Likes

Thanks so much for the quick fix! :pray: The tokenizers gem was installed successfully, but I am getting a new error:

NoMethodError: undefined method `commands=' for an instance of AiPersona (NoMethodError)
Details

I, [2024-07-17T22:56:15.152388 #1] INFO – : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-07-17T22:56:15.154420 #1] INFO – : > sleep 10
1718:C 17 Jul 2024 22:56:15.172 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1718:C 17 Jul 2024 22:56:15.172 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=1718, just started
1718:C 17 Jul 2024 22:56:15.172 # Configuration loaded
1718:M 17 Jul 2024 22:56:15.173 * monotonic clock: POSIX clock_gettime
1718:M 17 Jul 2024 22:56:15.174 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
1718:M 17 Jul 2024 22:56:15.174 # Failed listening on port 6379 (TCP), aborting.
I, [2024-07-17T22:56:25.158167 #1] INFO – :
I, [2024-07-17T22:56:25.158535 #1] INFO – : > cd /var/www/discourse && su discourse -c ‘bundle exec rake db:migrate’
97:M 17 Jul 2024 22:58:13.874 * 100 changes in 300 seconds. Saving…
97:M 17 Jul 2024 22:58:13.877 * Background saving started by pid 3947
3947:C 17 Jul 2024 22:58:14.323 * DB saved on disk
3947:C 17 Jul 2024 22:58:14.326 * Fork CoW for RDB: current 2 MB, peak 2 MB, average 1 MB
97:M 17 Jul 2024 22:58:14.379 * Background saving terminated with success
rake aborted!
NoMethodError: undefined method `commands=’ for an instance of AiPersona (NoMethodError)

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/discourse-seed-fu-2.3.12/lib/seed-fu/runner.rb:58:in block in open' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/discourse-seed-fu-2.3.12/lib/seed-fu/runner.rb:57:in open’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/discourse-seed-fu-2.3.12/lib/seed-fu/runner.rb:57:in open' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/discourse-seed-fu-2.3.12/lib/seed-fu/runner.rb:36:in block in run_file’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/transaction.rb:319:in block in within_new_transaction' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in handle_interrupt’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in block in synchronize' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in handle_interrupt’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in synchronize' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/transaction.rb:317:in within_new_transaction’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/database_statements.rb:316:in transaction' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:209:in transaction’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/discourse-seed-fu-2.3.12/lib/seed-fu/runner.rb:35:in run_file' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/discourse-seed-fu-2.3.12/lib/seed-fu/runner.rb:26:in block in run’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/discourse-seed-fu-2.3.12/lib/seed-fu/runner.rb:25:in each' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/discourse-seed-fu-2.3.12/lib/seed-fu/runner.rb:25:in run’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/discourse-seed-fu-2.3.12/lib/discourse-seed-fu.rb:29:in seed' /var/www/discourse/lib/tasks/db.rake:259:in block (2 levels) in ’
/var/www/discourse/lib/distributed_mutex.rb:53:in block in synchronize' /var/www/discourse/lib/distributed_mutex.rb:49:in synchronize’
/var/www/discourse/lib/distributed_mutex.rb:49:in synchronize' /var/www/discourse/lib/distributed_mutex.rb:34:in synchronize’
/var/www/discourse/lib/tasks/db.rake:231:in block in <main>' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/exe/rake:27:in <top (required)>’
/usr/local/bin/bundle:25:in load' /usr/local/bin/bundle:25:in ’
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
I, [2024-07-17T22:58:15.868384 #1] INFO – : gem install tokenizers -v 0.4.3 -i /var/www/discourse/plugins/discourse-ai/gems/3.3.3 --no-document --ignore-dependencies --no-user-install
Successfully installed tokenizers-0.4.3-x86_64-linux
1 gem installed
gem install tiktoken_ruby -v 0.0.7 -i /var/www/discourse/plugins/discourse-ai/gems/3.3.3 --no-document --ignore-dependencies --no-user-install
Successfully installed tiktoken_ruby-0.0.7-x86_64-linux
1 gem installed
gem install iso8601 -v 0.13.0 -i /var/www/discourse/plugins/discourse-automation/gems/3.3.3 --no-document --ignore-dependencies --no-user-install
Successfully installed iso8601-0.13.0
1 gem installed
gem install rrule -v 0.4.4 -i /var/www/discourse/plugins/discourse-automation/gems/3.3.3 --no-document --ignore-dependencies --no-user-install
Successfully installed rrule-0.4.4
1 gem installed
gem install sawyer -v 0.9.2 -i /var/www/discourse/plugins/discourse-code-review/gems/3.3.3 --no-document --ignore-dependencies --no-user-install
Successfully installed sawyer-0.9.2
1 gem installed
gem install octokit -v 5.6.1 -i /var/www/discourse/plugins/discourse-code-review/gems/3.3.3 --no-document --ignore-dependencies --no-user-install
Successfully installed octokit-5.6.1
1 gem installed
gem install pqueue -v 2.1.0 -i /var/www/discourse/plugins/discourse-code-review/gems/3.3.3 --no-document --ignore-dependencies --no-user-install
Successfully installed pqueue-2.1.0
1 gem installed
gem install rugged -v 1.7.1 -i /var/www/discourse/plugins/discourse-code-review/gems/3.3.3 --no-document --ignore-dependencies --no-user-install
Building native extensions. This could take a while…
Successfully installed rugged-1.7.1
1 gem installed

I, [2024-07-17T22:58:15.869101 #1] INFO – : Terminating async processes
I, [2024-07-17T22:58:15.869151 #1] INFO – : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 35
I, [2024-07-17T22:58:15.869356 #1] INFO – : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 97
97:signal-handler (1721257095) Received SIGTERM scheduling shutdown…
2024-07-17 22:58:15.869 UTC [35] LOG: received fast shutdown request
2024-07-17 22:58:15.874 UTC [35] LOG: aborting any active transactions
2024-07-17 22:58:15.880 UTC [35] LOG: background worker “logical replication launcher” (PID 50) exited with exit code 1
2024-07-17 22:58:15.880 UTC [45] LOG: shutting down
97:M 17 Jul 2024 22:58:15.887 # User requested shutdown…
97:M 17 Jul 2024 22:58:15.887 * Saving the final RDB snapshot before exiting.
2024-07-17 22:58:15.917 UTC [35] LOG: database system is shut down
97:M 17 Jul 2024 22:58:16.349 * DB saved on disk
97:M 17 Jul 2024 22:58:16.349 # Redis is now ready to exit, bye bye…

FAILED

Pups::ExecError: cd /var/www/discourse && su discourse -c ‘bundle exec rake db:migrate’ failed with return #<Process::Status: pid 1722 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn’
exec failed with the params {“cd”=>“$home”, “tag”=>“migrate”, “hook”=>“db_migrate”, “cmd”=>[“su discourse -c ‘bundle exec rake db:migrate’”]}
bootstrap failed with exit code 1

Hmm, that’s unexpected.

@aas - Can you check if you have any pending migrations?

./launcher enter app
LOAD_PLUGINS=1 bundle exec rake db:migrate

Basically, you are using the plugin from this branch, and personas has the command column there.

That did the trick! We were able to complete the install. I’m assuming the next time we run a Discourse update it will grab the most recent version, right?

2 Likes

Here is the output. Not sure what’s up with this because my Discourse instance is up and running just fine.

LOAD_PLUGINS=1 bundle exec rake db:migrate

root@forum-app:/var/www/discourse# LOAD_PLUGINS=1 bundle exec rake db:migrate
kfatal: detected dubious ownership in repository at ‘/var/www/discourse’
To add an exception for this directory, call:

git config --global --add safe.directory /var/www/discourse

rake aborted!
ActiveRecord::NoDatabaseError: We could not find your database: discourse. Which can be found in the database configuration file located at config/database.yml. (ActiveRecord::NoDatabaseError)

To resolve this issue:

  • Did you create the database for this app, or delete it? You may need to create your database.
  • Has the database name changed? Check your database.yml config has the correct database name.

To create your database, run:

    bin/rails db:create

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:81:in rescue in new_client' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:77:in new_client’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in postgresql_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in public_send’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in new_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:700:in checkout_new_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:679:in try_to_checkout_new_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:640:in acquire_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:341:in checkout' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:181:in connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_handler.rb:211:in retrieve_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_handling.rb:313:in retrieve_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_handling.rb:280:in connection' /var/www/discourse/lib/site_settings/db_provider.rb:58:in table_exists?’
/var/www/discourse/lib/site_settings/db_provider.rb:14:in all' /var/www/discourse/lib/site_settings/defaults_provider.rb:30:in db_all’
/var/www/discourse/lib/site_setting_extension.rb:260:in block in refresh!' /var/www/discourse/lib/site_setting_extension.rb:253:in synchronize’
/var/www/discourse/lib/site_setting_extension.rb:253:in refresh!' /var/www/discourse/lib/site_setting_extension.rb:528:in block in setup_methods’
/var/www/discourse/config/initializers/100-push-notifications.rb:13:in block in <main>' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:445:in instance_exec’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:445:in block in make_lambda' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:199:in block (2 levels) in halting’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:687:in block (2 levels) in default_terminator' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:686:in catch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:686:in block in default_terminator' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:200:in block in halting’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:595:in block in invoke_before' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:595:in each’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:595:in invoke_before' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:106:in run_callbacks’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/reloader.rb:88:in prepare!' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/application/finisher.rb:68:in block in module:Finisher’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/initializable.rb:32:in instance_exec' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/initializable.rb:32:in run’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/initializable.rb:61:in block in run_initializers' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/initializable.rb:60:in run_initializers’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/application.rb:372:in initialize!' /var/www/discourse/config/environment.rb:7:in ’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in require' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in require’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/application.rb:348:in require_environment!' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/application.rb:506:in block in run_tasks_blocks’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/exe/rake:27:in <top (required)>' /usr/local/bin/bundle:25:in load’
/usr/local/bin/bundle:25:in `’

Caused by:
PG::ConnectionBad: connection to server on socket “/var/run/postgresql/.s.PGSQL.5432” failed: FATAL: Peer authentication failed for user “discourse” (PG::ConnectionBad)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/pg-1.5.4/lib/pg/connection.rb:696:in async_connect_or_reset' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/pg-1.5.4/lib/pg/connection.rb:824:in connect_to_hosts’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/pg-1.5.4/lib/pg/connection.rb:759:in new' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/pg-1.5.4/lib/pg.rb:63:in connect’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:78:in new_client' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in postgresql_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in public_send' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in new_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:700:in checkout_new_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:679:in try_to_checkout_new_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:640:in acquire_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:341:in checkout’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:181:in connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/connection_handler.rb:211:in retrieve_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_handling.rb:313:in retrieve_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8/lib/active_record/connection_handling.rb:280:in connection’
/var/www/discourse/lib/site_settings/db_provider.rb:58:in table_exists?' /var/www/discourse/lib/site_settings/db_provider.rb:14:in all’
/var/www/discourse/lib/site_settings/defaults_provider.rb:30:in db_all' /var/www/discourse/lib/site_setting_extension.rb:260:in block in refresh!’
/var/www/discourse/lib/site_setting_extension.rb:253:in synchronize' /var/www/discourse/lib/site_setting_extension.rb:253:in refresh!’
/var/www/discourse/lib/site_setting_extension.rb:528:in block in setup_methods' /var/www/discourse/config/initializers/100-push-notifications.rb:13:in block in ’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:445:in instance_exec' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:445:in block in make_lambda’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:199:in block (2 levels) in halting' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:687:in block (2 levels) in default_terminator’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:686:in catch' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:686:in block in default_terminator’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:200:in block in halting' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:595:in block in invoke_before’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:595:in each' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:595:in invoke_before’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:106:in run_callbacks' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.0.8/lib/active_support/reloader.rb:88:in prepare!’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/application/finisher.rb:68:in block in <module:Finisher>' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/initializable.rb:32:in instance_exec’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/initializable.rb:32:in run' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/initializable.rb:61:in block in run_initializers’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/initializable.rb:60:in run_initializers' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/application.rb:372:in initialize!’
/var/www/discourse/config/environment.rb:7:in <main>' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in require’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in require' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/application.rb:348:in require_environment!’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.0.8/lib/rails/application.rb:506:in block in run_tasks_blocks' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/exe/rake:27:in <top (required)>’
/usr/local/bin/bundle:25:in load' /usr/local/bin/bundle:25:in ’
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)

Is there something I need to do to build the plugin from this branch? I just have git clone https://github.com/discourse/discourse-ai.git in my app.yaml.

EDIT: Sounds like I can do that by changing it to git clone -b security/backport-ssrf-protection https://github.com/discourse/discourse-ai.git. However, that doesn’t seem necessary since the PR referenced above was merged in the main branch. :thinking:

1 Like

Yes. Once Discourse v3.3 is out, you’ll use the latest version of the plugin.

No need. It’s automatically taken care of. Try rebuilding again and let’s see if that runs the missing migrations.

Unfortunately, I got the same result :sadpanda:

1719:M 18 Jul 2024 14:58:24.143 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
1719:M 18 Jul 2024 14:58:24.143 # Failed listening on port 6379 (TCP), aborting.
I, [2024-07-18T14:58:34.132729 #1]  INFO -- :
I, [2024-07-18T14:58:34.133090 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
97:M 18 Jul 2024 15:00:31.873 * 100 changes in 300 seconds. Saving...
97:M 18 Jul 2024 15:00:31.876 * Background saving started by pid 3948
3948:C 18 Jul 2024 15:00:32.356 * DB saved on disk
3948:C 18 Jul 2024 15:00:32.358 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 1 MB
97:M 18 Jul 2024 15:00:32.378 * Background saving terminated with success
rake aborted!
NoMethodError: undefined method `commands=' for an instance of AiPersona (NoMethodError)
.
.
.
I, [2024-07-18T15:00:33.541391 #1]  INFO -- : Terminating async processes
I, [2024-07-18T15:00:33.541460 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 35
I, [2024-07-18T15:00:33.541515 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 97
2024-07-18 15:00:33.542 UTC [35] LOG:  received fast shutdown request
97:signal-handler (1721314833) Received SIGTERM scheduling shutdown...
2024-07-18 15:00:33.546 UTC [35] LOG:  aborting any active transactions
2024-07-18 15:00:33.550 UTC [35] LOG:  background worker "logical replication launcher" (PID 50) exited with exit code 1
2024-07-18 15:00:33.555 UTC [45] LOG:  shutting down
97:M 18 Jul 2024 15:00:33.585 # User requested shutdown...
97:M 18 Jul 2024 15:00:33.585 * Saving the final RDB snapshot before exiting.
2024-07-18 15:00:33.586 UTC [35] LOG:  database system is shut down
97:M 18 Jul 2024 15:00:34.067 * DB saved on disk
97:M 18 Jul 2024 15:00:34.067 # Redis is now ready to exit, bye bye...


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 1722 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "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.

We sorted it out via PM. This happened because the instance was previously following tests-passed and then switched to stable. Downgrading is not recommended as your DB schema will diverge from what the app code expects.

4 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.