RT 5.0.0 Can't locate object method "ColumnMapClassName" via package "RT::SavedSearch"

Hi all,

After upgrading to RT 5.0.0 from RT 4.4.4 we’re seeing the following error on the home page where the “Saved search” dashboard widget should be:

“An internal RT error has occurred. Your administrator can find more details in RT’s log files.”

The log file shows the following:

[130972] [Tue Aug 11 01:22:02 2020] [error]: Can't locate object method "ColumnMapClassName" via package "RT::SavedSearch" at /opt/production/rt5.0/share/html/Elements/CollectionAsTable/Header line 74.

Stack:
  [/opt/production/rt5.0/share/html/Elements/CollectionAsTable/Header:73]
  [/opt/production/rt5.0/share/html/Elements/CollectionList:143]
  [/opt/production/rt5.0/share/html/Elements/SavedSearches:59]
  [/opt/production/rt5.0/share/html/Widgets/TitleBox:61]
  [/opt/production/rt5.0/share/html/Elements/SavedSearches:67]
  [/opt/production/rt5.0/share/html/Elements/MyRT:99]
  [/opt/production/rt5.0/share/html/index.html:78]
  [/opt/production/rt5.0/sbin/../lib/RT/Interface/Web.pm:710]
  [/opt/production/rt5.0/sbin/../lib/RT/Interface/Web.pm:389]
  [/opt/production/rt5.0/share/html/autohandler:53
(/opt/production/rt5.0/sbin/../lib/RT/Interface/Web/Handler.pm:209)

Any ideas? I can’t even see which saved search is the problem so don’t know where to begin troubleshooting.

How did you get the RT5 source code? It seems you may have RT4 source code there

@knation I pulled the tarball linked to from the Best Practical website. This URL to be precise: https://download.bestpractical.com/pub/rt/release/rt-5.0.0.tar.gz

Seems to reflect what’s in the github repository: https://github.com/bestpractical/rt/blob/stable/share/html/Elements/CollectionAsTable/Header

This happens to me as well - I’ve temporarily disabled the Saved Search portlet for now. Something I am planning to debug at some point soon. This is a fresh RT 5 install from the 5.0.0.tar.gz distributed directly from BP.

I have the solution for you.

https://github.com/bestpractical/rt/compare/5.0/fix-saved-search-component.diff

This is directly from a fix branch in BP’s GitHub, so the official fix is likely coming soon, but this does fix the problem for now.

https://github.com/bestpractical/rt/compare/5.0/fix-system-saved-searches-in-dashboard.diff may be of interest to apply as well.

Applying those diffs resolved the error, but the rendering is still borked:

Ah. You’re right, it looks the same here too, actually. Very ugly.

I just “fixed” it with following tiny patch:

--- share/html/Elements/SavedSearches.old
+++ share/html/Elements/SavedSearches
@@ -57,2 +57,3 @@
%   }
+%   $title =~ s/([\\'])/\\$1/g;
%   $title = $m->interp->apply_escapes($title, 'h');

I found the display was correct in the Dashboards, and noticed this was what they did in “share/html/Dashboards/Elements/ShowDashboards”, so I just copied the (brutally simple) solution over – it seems like an oversight, and someone inadvertently left it out of SavedSearches.

Edit: Be sure to do the usual clearing of the Mason cache and restart the server after applying.

1 Like