ONLYOFFICE / onlyoffice-redmine

The app which enables the users to edit office documents from Redmine using ONLYOFFICE Document Server, allows multiple users to collaborate in real time and to save back those changes to Redmine
Apache License 2.0
22 stars 11 forks source link

Plugin migration fails on bitnami redmine 5.1.2 first install #168

Closed astwinioenergy closed 6 months ago

astwinioenergy commented 6 months ago

bundle exec rake db:migrate RAILS_ENV=production

gives

/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine.rb:21: warning: already initialized constant OnlyOfficeRedmine::NAME
/opt/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine.rb:21: warning: previous definition of NAME was here
/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine.rb:22: warning: already initialized constant OnlyOfficeRedmine::VERSION
/opt/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine.rb:22: warning: previous definition of VERSION was here
/opt/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine/settings.rb:21: warning: already initialized constant OnlyOfficeRedmine::GeneralSettings
/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine/settings.rb:21: warning: previous definition of GeneralSettings was here
rake aborted!
ArgumentError: Attempted to redefine prop :fallback_jwt on class OnlyOfficeRedmine::AdditionalSettings that's already defined without specifying :override => true: {:default=><OnlyOffice::Config::JWT algorithm="HS256" enabled=true http_header="Authorization" secret="de923944c76ae7e497eb0d352d31c4a0c530f91cbdea36700495ff4d168f097e2527d47e789c1c1ee84138a4d598773c05ddef8b1b6532cf084d380ead45247e">, :type=>OnlyOffice::Config::JWT, :type_object=>#<T::Types::Simple:0x00007fac0460e340 @raw_type=OnlyOffice::Config::JWT>, :accessor_key=>:@fallback_jwt, :sensitivity=>nil, :pii=>nil, :extra=>nil, :setter_proc=>#<Proc:0x00007fac04452a10 /opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/props/private/setter_factory.rb:63>, :value_validate_proc=>#<Proc:0x00007fac044529e8 /opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/props/private/setter_factory.rb:74>, :serialized_form=>"fallback_jwt", :fully_optional=>false, :need_nil_read_check=>nil, :_t_props_private_apply_default=>#<T::Props::Private::ApplyComplexDefault:0x00007fac04452628 @default=<OnlyOffice::Config::JWT algorithm="HS256" enabled=true http_header="Authorization" secret="de923944c76ae7e497eb0d352d31c4a0c530f91cbdea36700495ff4d168f097e2527d47e789c1c1ee84138a4d598773c05ddef8b1b6532cf084d380ead45247e">, @accessor_key=:@fallback_jwt, @setter_proc=#<Proc:0x00007fac04452a10 /opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/props/private/setter_factory.rb:63>>}
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/props/decorator.rb:53:in `add_prop_definition'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/props/optional.rb:69:in `add_prop_definition'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/props/serializable.rb:228:in `add_prop_definition'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/props/decorator.rb:384:in `prop_defined'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/props/_props.rb:115:in `prop'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/private/methods/call_validation.rb:167:in `bind_call'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/private/methods/call_validation.rb:167:in `validate_call_skip_block_type'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/sorbet-runtime-0.5.11323/lib/types/private/methods/call_validation.rb:109:in `block in create_validator_slow_skip_block_type'
/opt/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine/settings.rb:26:in `<class:AdditionalSettings>'
/opt/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine/settings.rb:25:in `<module:OnlyOfficeRedmine>'
/opt/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine/settings.rb:20:in `<top (required)>'
<internal:/opt/bitnami/ruby/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/opt/bitnami/ruby/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.13/lib/zeitwerk/kernel.rb:26:in `require'
/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine/settings.rb:51:in `<module:OnlyOfficeRedmine>'
/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine/settings.rb:20:in `<top (required)>'
/opt/bitnami/redmine/plugins/onlyoffice_redmine/init.rb:27:in `require_relative'
/opt/bitnami/redmine/plugins/onlyoffice_redmine/init.rb:27:in `<top (required)>'
/opt/bitnami/redmine/lib/redmine/plugin_loader.rb:31:in `load'
/opt/bitnami/redmine/lib/redmine/plugin_loader.rb:31:in `run_initializer'
/opt/bitnami/redmine/lib/redmine/plugin_loader.rb:108:in `each'
/opt/bitnami/redmine/lib/redmine/plugin_loader.rb:108:in `block in load'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:427:in `instance_exec'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:427:in `block in make_lambda'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:198:in `block (2 levels) in halting'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:604:in `block (2 levels) in default_terminator'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:603:in `catch'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:603:in `block in default_terminator'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:199:in `block in halting'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:512:in `block in invoke_before'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:512:in `each'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:512:in `invoke_before'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/callbacks.rb:105:in `run_callbacks'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/reloader.rb:88:in `prepare!'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/railties-6.1.7.7/lib/rails/application/finisher.rb:124:in `block in <module:Finisher>'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/railties-6.1.7.7/lib/rails/initializable.rb:32:in `instance_exec'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/railties-6.1.7.7/lib/rails/initializable.rb:32:in `run'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/railties-6.1.7.7/lib/rails/initializable.rb:61:in `block in run_initializers'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/railties-6.1.7.7/lib/rails/initializable.rb:60:in `run_initializers'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/railties-6.1.7.7/lib/rails/application.rb:391:in `initialize!'
/opt/bitnami/redmine/config/environment.rb:16:in `<top (required)>'
<internal:/opt/bitnami/ruby/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/opt/bitnami/ruby/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.13/lib/zeitwerk/kernel.rb:34:in `require'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/dependencies.rb:332:in `block in require'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/dependencies.rb:299:in `load_dependency'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/activesupport-6.1.7.7/lib/active_support/dependencies.rb:332:in `require'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/railties-6.1.7.7/lib/rails/application.rb:367:in `require_environment!'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/railties-6.1.7.7/lib/rails/application.rb:533:in `block in run_tasks_blocks'
/opt/bitnami/redmine/vendor/bundle/ruby/3.1.0/gems/rake-13.2.0/exe/rake:27:in `<top (required)>'
/opt/bitnami/redmine/bin/bundle:108:in `load'
/opt/bitnami/redmine/bin/bundle:108:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)

Removing other plugins from plugin directory does not help.

astwinioenergy commented 6 months ago

Cause: bitnami redmine holds plugins in symbolic link "plugins" directory which breaks migration script. See example of two different access paths to the same file below:

/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine.rb:21: warning: already initialized constant OnlyOfficeRedmine::NAME
/opt/bitnami/redmine/plugins/onlyoffice_redmine/lib/only_office_redmine.rb:21: warning: previous definition of NAME was here

Removing symbolic linked directory "~plugins" from redmine root and creating standard directory "plugins" resolves the issue.