[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Redmine - Stop Supporting Multi-Tenancy ( was Re: Redmine 500 Internal Server Error)



On Monday, March 10, 2025 10:56:26 PM Mountain Standard Time Soren Stoutner wrote:

> On Monday, March 10, 2025 8:57:52 PM MST Soren Stoutner wrote:

> > So, Passenger starts and then immediately stops.  Nothing in this log

> > indicates to me what the core problem is.  Any ideas?

>

> I think this has something to do with the change in directory name from

> plugin_assets to assets with the 6.0 release.

>

> https://www.redmine.org/projects/redmine/wiki/RedmineInstall#Step-8-File-syste

> m-permissions

>

> Running in development mode exposed the following error details:

>

>

> Showing /usr/share/redmine/app/views/layouts/base.html.erb where line #10

> raised:

>

> unexpected token at ''

> Extracted source (around line #155):

> 153 Helper.prepend(Module.new do

> 154     def compute_asset_path(path, options = {})

> 155       super

> 156     rescue MissingAssetError => e

> 157       File.join Rails.application.assets.resolver.prefix, path

> 158     end

>

> Rails.root: /usr/share/redmine

>

> Application Trace | Framework Trace | Full Trace

> config/initializers/10-patches.rb:155:in `compute_asset_path'

> app/helpers/application_helper.rb:1820:in `favicon_path'

> app/helpers/application_helper.rb:1814:in `favicon'

> app/views/layouts/base.html.erb:10

> lib/redmine/sudo_mode.rb:78:in `sudo_mode'

>

>

> There were parts of the multi-tenancy patch that needed to be updated to point

> to `assets` instead of `plugin_assets`, as well as the the example apache and

> nginx config files.  I attempted to make the changes, but they were

> insufficient.  My guess is the multi-tenancy patch probably needs to be

> extended in a way I don’t understand.  Is anyone who worked on the original

> patch available to take a look?

>

> I have uploaded the current state of my work to Salsa.


To continue to support multi-tenancy, I am sure that at least the following code needs to be modified, but I am not sure how.


https://salsa.debian.org/ruby-team/redmine/-/blob/master/config/initializers/10-patches.rb?ref_type=heads#L139-145


This code was added with the 6.0 release, which added a dependency on Propshaft.  It needs to be updated to deal with each instance.


At this point I see two ways forward.


1.  Someone who understands the multi-tenancy code can look at adapting the patch to work with the 6.x series.  Hopefully this person can either continue to maintain the multi-tenancy patch going forward or teach me enough about it so that I can do so.  I have included the people who signed off on the multi-tenancy patch to see if any of them are interested.


2.  We remove multi-tenancy support from the package.  Although I really like the idea of the multi-tenancy feature, I don’t like making changes to Debian packages that diverge this much from upstream, precisely because they are hard to maintain.  However, now that we have been shipping this multi-tenancy code, I really don’t like removing it because it will break some current installations.


However, if nobody is able to update the multi-tenancy patch to support the 6.x release, I think our only option is to remove the whole patch and related code so that we can ship Redmine in trixie.  I have started the work of removing the code, but it is fairly complicated and spread across a number of files, including debian/redmine.postinst and debian/rules.  My goal would be to migrate the default instance to the standard Redmine file locations and include a NEWS entry explaining that if anyone is running any other instances they will need to migrate them to a distinct OS running a separate copy of Redmine.  However, there is a high chance this automatic migration will fail in some cases I don’t anticipate, so I foresee a lot of pain with going down this route.


--

Soren Stoutner

soren@debian.org

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: