twomice / com.joineryhq.jsumfields

Provides additional fields under the Summary Fields framework.
Other
1 stars 10 forks source link

Error when running drush civicrm-upgrade-db #7

Closed joemcl closed 4 years ago

joemcl commented 4 years ago

I'm getting this when running drush civicrm-upgrade-db for Civi 5.20.0: Error: Class 'CRM_Jsumfields_Upgrader' not found in jsumfields_civicrm_triggerInfo() (line 2498 of /var/www/joe-demo/htdocs/sites/all/civicrm-custom/extensions/com.joineryhq.jsumfields/jsumfields.php). Drush command terminated abnormally due to an unrecoverable error. cv upgrade:db shows I'm upgraded to 5.20.0 successfully, though.

twomice commented 4 years ago

Questions for @joemcl:

  1. Upgrading from what version of CiviCRM?
  2. With what version of this extension (either a specific version number, or "master" if you happen to know that).
  3. Can you see any discernible bad behavior from the jsumfields extension after the upgrade?

Thanks for the report. Your answers to the above will help us isolate the problem.

joemcl commented 4 years ago

Hi @twomice.

  1. Upgrading from 5.19.3 to 5.20.0
  2. Installed from branch master recently (last few weeks) and the extensions list shows it as version 1.0
  3. No bad behavior that I've noticed but will check again Thanks!
joemcl commented 4 years ago

So this may be due to user error, mine, when installing from the command line as the wrong user. Checking that out today.

twomice commented 4 years ago

Thanks @joemcl Watching for your update.

joemcl commented 4 years ago

OK so closing this. I used sudo chown to change webroot/docroot ownership to the correct user. I ran drush civicrm-upgrade-db at ~/htdocs/sites/all/civicrm-custom/extensions and get You are already upgraded to CiviCRM 5.20.0 and not the previous error message. Duh on me and sorry for the false alarm, @twomice .

twomice commented 4 years ago

Thanks for the report @joemcl -- glad you got it sorted out!

twomice commented 4 years ago

@joemcl interestingly I just encountered the same error using drush civicrm-upgrade-db from 5.19.3 to 5.19.4. By any chance, do you have any symlinks in the path to this extension on the affected site?

Paul-Tahoe commented 4 years ago

I too encounter the same error using drush upgrading to 5.21.1. Just to be sure it isn't a file permission thing, I made all the files in files/civicrm/ext/com.joineryhq.jsumfields-1.0 have full access, chmod -R 777. Still fails.

twomice commented 4 years ago

Thank you @Paul-Tahoe . What civicrm version were you upgrading from?

twomice commented 4 years ago

Also, @Paul-Tahoe do you by chance have any symlinks in the path to this extension on the affected site?

Paul-Tahoe commented 4 years ago

No symlinks. Upgrading from 5.9.1, but I don't think the from version of civi should matter since in an upgrade all the civi code is replaced before the upgrade is run. If the error was in a db update then yes but this error says it's not finding the class, CRM_Jsumfields_Upgrader. It does seem odd since the class seems to be there in the code. I don't know php well enough to write something to check if it does exists. It would seem like somehow in the upgrade process the file that contains that class isn't getting read.

I'm guessing this error only happens to some people. If I get a chance I'll try to upgrade to the latest and greatest and see if I still get the error. I suppose I could also try to reinstall the module. For now I've just disabled it.

Sadly, for some reason the summary fields and this module's triggers don't seem to keep the totals correct (I see there are bugs on this in summary fields). I've had too many complaints from users so I've been getting away from them in things that matter.

twomice commented 4 years ago

I'll look into the upgrade issue. Sorry to hear about your other issue there with accuracy. I haven't heard such reports myself. Feel free to create a separate issue for fields provided by this extension.

Paul-Tahoe commented 4 years ago

I took the instance that I had upgraded to 5.21.0 with the ext disabled. Enabled it and tried to upgrade to 5.22.0. I also ran drush with the -d to see if there were any addition debug messages.

There were some about undefined indexes but they are just notices.

Here are the last 4 prior to the error message Undefined index: relatedcontrib_plusme_last_calendar_year sumfields.php:304 [5.98 sec, 63.35 MB] [notice] Undefined index: relatedcontrib_plusme_last_calendar_year sumfields.php:310 [5.98 sec, 63.35 MB] [notice] Undefined index: relatedcontrib_plusme_alltime sumfields.php:304 [5.98 sec, 63.35 MB] [notice] Undefined index: relatedcontrib_plusme_alltime sumfields.php:310 [5.98 sec, 63.35 MB] [notice] WD php: Error: Class 'CRM_Jsumfields_Upgrader' not found in jsumfields_civicrm_triggerInfo() (line 2512 of

As far as accuracy see
https://github.com/progressivetech/net.ourpowerbase.sumfields/issues/64 and my enhancement request for this module

twomice commented 4 years ago

Thanks for the additional debug info, @Paul-Tahoe , and the reference to other issues. I'll try to look at these when I have some community-contribution hours available.

Paul-Tahoe commented 4 years ago

For what ever reason, the file CRM_Jsumfields_Upgrader.php isn't being included, maybe missing a required_once; but, in looking at other extensions with similar structure that seem to work, I don't see what or where that file would be included.

As a hack to see if this is the problem and to get through the upgrade without having to disable, I added the following:

To jsumfields.php line 3 after the existing required once require_once 'CRM/Jsumfields/Upgrader.php';

To CRM/Jsumfields/Upgrader.php require_once 'Upgrader/Base.php';

twomice commented 4 years ago

Having looked more closely, I'm pretty sure this is a CiviCRM core issue in certain older versions of CiviCRM, which people are encountering (and have encountered on and off for years) in various cases, including at these:

and possibly these:

Core team has been making efforts to address this issue with improvements the core codebase:

I suspect there's a specific "most recent" civicrm version that will demonstrate this error (for the Jsumfields extension) when upgrading to that version, and that for all future versions this is not an issue.

We're testing this theory now, for basic validity and also to determine the "most recent safe upgrade" civicrm version.

lucky091588 commented 4 years ago

I tried upgrading from 5.19.0 to 5.24.3 using drush civicrm-upgrade-db with the extension enabled and it doesn't have an error.

twomice commented 4 years ago

my findings above indicate that this is probably a core bug fixed in some version between 5.21.0 and 5.27.4, and @lucky091588 's report indicates users can avoid the error by upgrading to 5.24.3 or higher. Since 5.24.3 is currently the most recent security release of CiviCRM, I'm comfortable recommending that users upgrade to this version or higher.

I'll close this issue now. Please feel free to re-open if the error appears when upgrading to some core version of 5.24.3 or higher. Thanks for the report.