Discourse AI 설치 실패

Discourse AI 플러그인을 설치하려고 할 때 다음과 같은 오류 메시지가 발생하는 원인을 아는 분이 있을까요?

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

참고: Discourse AI

도움 주시면 감사하겠습니다.

정말 AI 플러그인 때문인가요? 에러를 확인할 수 있도록 로그의 마지막 부분을 더 공유해 주실 수 있나요?

여기서 비슷한 문제를 본 적이 있습니다:

로그의 맨 끝에 있는 좀 더 완전한 로그 항목 목록입니다. 이제 575개 행을 모두 가지고 있으므로 전체 내용을 원하시면 말씀해 주세요.

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

위쪽에 오류가 하나 더 있을 가능성이 높기 때문에, 로그의 끝에서는

여기 있습니다. 오류가 시작되는 부분이 여기인 것 같습니다.

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

제가 https://meta.discourse.org/t/cannot-rebuild-with-discourse-ai/315823에서 공유한 내용과 거의 동일해 보입니다. 두 오류 로그 모두 tokenizers 라이브러리 문제로 인해 rake db:migrate 명령이 실패하는 공통 문제를 가지고 있지만, 당신의 오류에는 제 오류에는 없는 Redis 서버 시작 오류가 추가로 포함되어 있습니다.

@JammyDodger, https://meta.discourse.org/t/cannot-rebuild-with-discourse-ai/315823에서 공유했듯이, 확실히 AI 플러그인 문제입니다.

네, 이 문제도 토크나이저와 관련이 있는 것 같습니다. 확인해 보겠습니다. :eyes:

@PeakProsperity - 현재 사이트에서 어떤 Discourse 브랜치를 사용하고 계신가요? 혹시 beta나 stable을 사용 중이신가요?

현재 3.2.1 버전을 사용하고 있습니다.

현재 3.2.4 버전을 사용하고 있습니다. 이번에도 redis 오류가 발생했습니다. 이전에 공유한 로그는 3.2.1 버전에서 기록된 것 같습니다. main 브랜치의 최신 커밋으로 Discourse를 빌드했을 때(의도치 않게) 모든 것이 정상적으로 작동했습니다. stable 브랜치로 다시 빌드했을 때 문제가 발생했습니다.

최근에 Ruby를 3.3으로 업데이트했으며, 현재 3.2.1을 사용 중이므로 호환성을 위해 플러그인은 이전 커밋에 고정되어 있습니다. 해당 커밋에서 플러그인에 필요한 추가 gems가 3.3과 호환되지 않습니다.

Discourse 3.3이 곧 출시될 예정이며, 이를 통해 문제가 해결될 것으로 보입니다. 하지만 여러분을 방치하거나 beta/tests-passed를 따르기 시작하도록 강요하고 싶지는 않았습니다. 따라서 Ruby 3.3과 호환되는 커밋으로 플러그인을 고정했습니다:

재빌드过程中에 여전히 오류가 발생하면 알려 주시기 바랍니다.

빠른 수정 감사합니다! :pray: tokenizers 게మ్이 성공적으로 설치되었지만, 새로운 오류가 발생하고 있습니다:

NoMethodError: undefined method `commands=' for an instance of AiPersona (NoMethodError)
상세 정보

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

음, 예상치 못한 상황이네요.

@aas - 대기 중인 마이그레이션이 있는지 확인해 주시겠어요?

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

기본적으로 이 브랜치의 플러그인을 사용하고 있으며, personas에 command 컬럼이 있습니다.

그렇게 하니 해결되었습니다! 설치를 완료할 수 있었습니다. 다음에 Discourse 업데이트를 실행하면 최신 버전이 설치될 것이라고 생각하는데, 맞나요?

출력 결과가 이렇습니다. 제 Discourse 인스턴스는 정상적으로 작동하고 있어서 이 문제가 왜 발생하는지 잘 모르겠습니다.

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)

이 브랜치에서 플러그인을 빌드하기 위해 제가 해야 할 일이 있나요? 제 app.yaml에는 단순히 git clone https://github.com/discourse/discourse-ai.git만 있습니다.

수정: git clone -b security/backport-ssrf-protection https://github.com/discourse/discourse-ai.git로 변경하면 가능해 보입니다. 하지만 위에서 언급한 PR이 이미 main 브랜치에 병합되었으므로 그렇게 할 필요가 없어 보입니다. :thinking:

네. Discourse v3.3이 출시되면 플러그인의 최신 버전을 사용하게 됩니다.

별도로 할 필요가 없습니다. 자동으로 처리됩니다. 다시 재빌드해 보고, 누락된 마이그레이션이 실행되는지 확인해 보겠습니다.

불행히도 저는 같은 결과를 얻었습니다 :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.

개인 메시지를 통해 문제를 해결했습니다. 이는 해당 인스턴스가 이전에 tests-passed를 따르다가 stable로 전환되었기 때문에 발생했습니다. 앱 코드가 기대하는 DB 스키마와 달라질 수 있으므로 다운그레이드는 권장하지 않습니다.