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.

2 Likes

Same error for me,

I was able to apply the 2nd patch (https://github.com/bestpractical/rt/compare/5.0/fix-system-saved-searches-in-dashboard.diff),
but it seems it’s not enough, as I still get the error above.

The link above (https://github.com/bestpractical/rt/compare/5.0/fix-saved-search-component.diff) is not pointing to any diff file, was it merged ?

PS.
My base install is 5.0.0 as well.
clean install and only DB migration.

Did you flush the Mason cache and restart your web server after applying the diff?

Yes, this is what I did

rm -frv /opt/rt5/var/mason_data/obj
rm -frv /opt/rt5/var/nginx/fcgi.storage/*
systemctl restart nginx rt-server

where rt-server service unit will restart the rt-server.fcgi server

I just tested 5.0.1beta1,
and it seems that this issue is now resolved.

:vulcan_salute:

I had the same issue @rabin - the patch was not enough. I will try 5.0.1 beta

How to apply those diifs? It’s just a file that i need to overwrite by them?

I’m not sure if you need this diff/patch if you can just update to version 5.0.1

1 Like

I don’t know if my boss will accept a beta version but i’ll see with him.
Anyway, alt least a found a solution to my problem. Thanks for the support!

The 5.0.1 release is out, so you don’t need to install the beta

https://download.bestpractical.com/pub/rt/release/rt-5.0.1.tar.gz

1 Like

Working on it! Thanks. :slight_smile: