Error upgrading from 5.5.2.1 to 5.6.1.2 on MAMP

Permalink 5 users found helpful
I just tried updating from 5.5.2.1 to 5.6.1.2 on my local (MAMP) copy of my website, and while I can still access the dashboard just fine, every time I try to go anywhere on the front end of the site I get the following error:

Warning: require_once(/Users/ben/Sites/themiracleschool/updates/concrete5.6.1.2_updater/concrete/helpers/validation_strings.php) [function.require-once]: failed to open stream: No such file or directory in /Users/ben/Sites/themiracleschool/updates/concrete5.6.1.2_updater/concrete/core/libraries/loader.php on line 293
Fatal error: require_once() [function.require]: Failed opening required '/Users/ben/Sites/themiracleschool/updates/concrete5.6.1.2_updater/concrete/helpers/validation_strings.php' (include_path='/Users/ben/Sites/themiracleschool/libraries/3rdparty:/Users/ben/Sites/themiracleschool/updates/concrete5.6.1.2_updater/concrete/libraries/3rdparty:.:/Applications/MAMP/bin/php/php5.3.6/lib/php') in /Users/ben/Sites/themiracleschool/updates/concrete5.6.1.2_updater/concrete/core/libraries/loader.php on line 293


I've seen a lot of upgrade error posts in the forum, but none with a similar error message. Would anyone have a clue what could be causing this? One thing that caught my eye in the error message is how it seems to be looking for a file at '/helpers/validation_strings.php', but the actual helper file I know is at /helpers/validations/strings.php. The other thing that seems weird is the include path in the fatal error message. But I'm no expert on these things, so I thought I'd better ask.

Any help appreciated.

Benji
 
Remo replied on at Permalink Reply
Remo
This sounds a bit like an override cache problem, not sure though.

Have you or can you try to disable the override cache first?
Benji replied on at Permalink Reply
Benji
The override cache is off already. That's good to keep in mind though, thank you.
Remo replied on at Permalink Reply
Remo
Can you post your environment information? (type environment in the intelligent search box)
Benji replied on at Permalink Reply
Benji
There it is:

# concrete5 Version
5.6.1.2

# concrete5 Packages
AddThis (1.0), Discussion (1.8.6), Next & Previous (1.0), Pro Blog (6.6.9), Social Icons (1.0).

# concrete5 Overrides
blocks/discussion_post_list, blocks/external_form, blocks/search, controllers/code_connection_station.php, controllers/correct_exchange_station.php, controllers/dashboard, controllers/love_connection_station.php, controllers/materialization_station.php, controllers/recordings.php, controllers/request.php, controllers/signup.php, controllers/soul_to_soul_station.php, controllers/spiritual_fitness_station.php, controllers/temp.php, controllers/test_page.php, controllers/tranquility_station.php, controllers/truth_station.php, controllers/webinars.php, elements/navigation-1.php, elements/navigation-2.php, elements/navigation-unsifr.php, elements/recordings, elements/setup.php, elements/webinars, helpers/form_mail.php, helpers/site_log.php, helpers/validation, jobs/followup.php, js/error.js, js/flowplayer-3.2.0.min.js, js/flowplayer-3.2.4.min.js, js/form.js, js/form.list-signup.js, js/jquery-ui-1.7.2.custom.min.js, js/jquery.arctext.js, js/jquery.ba-hashchange.min.js, js/jquery.easing.1.3.js, js/jquery.fancybox-1.2.1.js, js/jquery.fancybox-1.2.1.pack.js, js/jquery.fancybox-1.3.1.pack.js, js/jquery.maskedinput.min.js, js/jquery.media.js, js/jquery.prettyPhoto.js, js/jquery.tools.min.js, js/landing-page-nav.js, js/PIE.htc, js/rainbows.js, js/sc-player.js, js/scripts.js, js/selectivizr-min.js, js/sifr-config-mini.js, js/sifr-config.js, js/sifr.js, js/soundcloud.player.api.js, js/station.js, js/tms-setup.js, js/tms.ui.js, js/wasp.js, js/webinar.js, css/forms, css/forms.css, css/jquery.fancybox-1.3.1.css, css/jquery.fancybox.css, css/prettyPhoto.css, css/sc-player-artwork, css/sc-player-artwork.css, css/sifr-mini.css, css/sifr.css, css/type, libraries/MCAPI.class.php, mail/agreement_us.php, mail/become_what_is_needed_agreement_us.php, mail/connecting_followup.php, mail/connecting_validate.php, mail/contact_us_us.php, mail/forgot_password.php, mail/free_consultation_them.php, mail/free_consultation_us.php, mail/ha_agreement_us.php, mail/miracle_link_consultation_us.php, mail/miracle_support_consultation_us.php, mail/next_step_consultation_us.php, mail/next_step_us.php, mail/participation_us.php, mail/project_registration_us.php, mail/request_us.php, mail/soul_reading_us.php, mail/source_connection_consultation_us.php, mail/special_request_us.php, mail/test_form_email.php, mail/ushp_admittance_us.php, mail/welcome.php, models/consultation.php, models/consultation_list.php, models/form_email.php, models/form_email_list.php, models/miracle.php, models/miracle_userinfo.php, models/online_station.php, models/online_station_list.php, models/online_station_session.php, models/online_station_session_list.php, models/recording.php, models/recording_list.php, models/replay.php, models/scc_session.php, models/site_page.php, models/webinar.php, models/webinar_list.php, single_pages/cart.php, single_pages/code_connection_station.php, single_pages/correct_exchange_station.php, single_pages/dashboard, single_pages/login.php, single_pages/love_connection_station.php, single_pages/materialization_station.php, single_pages/my_page.php, single_pages/old_login.php, single_pages/recordings.php, single_pages/register.php, single_pages/request.php, single_pages/signup.php, single_pages/soul_to_soul_station.php, single_pages/spiritual_fitness_station.php, single_pages/test_page.php, single_pages/tranquility_station.php, single_pages/truth_station.php, single_pages/webhooks, single_pages/webinars.php, themes/blank, themes/blue, themes/chameleon, themes/light, themes/main, themes/pink, themes/station, themes/stationery, themes/webinar, tools/check_email.php, tools/followup.php, tools/setup_user.php, tools/webinars

# Server Software
Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 PHP/5.3.6

# Server API
apache2handler

# PHP Version
5.3.6

# PHP Extensions
apache2handler, bcmath, bz2, calendar, Core, ctype, curl, date, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, imap, json, ldap, libxml, mbstring, mcrypt, mysql, mysqli, openssl, pcre, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, Reflection, session, SimpleXML, soap, sockets, SPL, SQLite, sqlite3, standard, tokenizer, XCache, xml, xmlreader, xmlwriter, xsl, yaz, zip, zlib.

# PHP Settings
max_execution_time - 30
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - 60
memory_limit - 32M
post_max_size - 32M
safe_mode - Off
safe_mode_exec_dir - <i>no value</i>
safe_mode_gid - Off
safe_mode_include_dir - <i>no value</i>
sql.safe_mode - Off
upload_max_filesize - 32M
ldap.max_links - Unlimited
mysql.max_links - Unlimited
mysql.max_persistent - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 100000
pcre.recursion_limit - 100000
pgsql.max_links - Unlimited
pgsql.max_persistent - Unlimited
session.cache_limiter - nocache
session.gc_maxlifetime - 7200
soap.wsdl_cache_limit - 5
safe_mode_allowed_env_vars - PHP_
safe_mode_protected_env_vars - LD_LIBRARY_PATH
xcache.var_maxttl - 0
Remo replied on at Permalink Reply
Remo
You're probably overriding the validation helper but not all classes of it.

> helpers/validation

Could you post the code of it?
Benji replied on at Permalink Reply
Benji
True, my validation/strings override just adds a couple of methods to the class:

<?php defined('C5_EXECUTE') or die(_("Access Denied."));
class SiteValidationStringsHelper extends ValidationStringsHelper {   
   /**
    * Returns true when the given time is at least the given lapse different from the current time
    * @param int $time
    * @param int $lapse
    * @return bool
    */ 
   public function mintimelapse($time, $lapse) {
      return abs(time() - $time) > $lapse;
   }
   /**
    * Returns true when the given time is within the given lapse from the current time
    * @param int $time
    * @param int $lapse


I'll try playing around with this and see what works, though it's never been a problem before in updating.
Benji replied on at Permalink Best Answer Reply
Benji
Problem solved: I was not aware that concrete5 had changed its class naming scheme in 5.6. Once I realized this, all I had to do was change the first line in my validation/strings override from

class SiteValidationStringsHelper extends ValidationStringsHelper

to

class SiteValidationStringsHelper extends Concrete5_Helper_Validation_Strings

This was not mentioned in the Release Notes, but was featured in this How-To:http://www.concrete5.org/documentation/how-tos/developers/overridin...

In the future, I would like to see concrete5 put more effort into alerting site owners/developers of the possible actions required upon upgrade. This would save everyone time and help retain user base.

P.S. The 5.6.1.2_updater issue has nothing to do with any of this. I manually downloaded concrete5.6.1.2 from the c5 site and put it in my updates directory and either folder, concrete5.6.1.2 or concrete5.6.1.2_updater, works just as well as the other depending I what I put in the DIRNAME_APP_UPDATED line of my config/site.php.
JohntheFish replied on at Permalink Reply
JohntheFish
Have you copied the path '/updates/concrete5.6.1.2_updater/' accurately in your error message in the post above?

Could this be a manual update that has been placed in the wrong directory?

That part of the overall path should be
/updates/concrete5.6.1.2/concrete/

The difference in the path to the helper after that is to do with the core looking for overrides (but in the wrong place because the earlier part of the path is wrong).
Benji replied on at Permalink Reply
Benji
I updated through the dashboard, and that's what I got. I actually do have /updates/concrete5.6.1.2_updater. Seemed weird to me too though.
JohntheFish replied on at Permalink Reply
JohntheFish
A couple of bits of info that may throw some light on this:

What is DIRNAME_APP_UPDATED set as in config/site.php? (it is probably the last line)

Looking at the site directories with FTP, what is in the directories:
..... site root path .... /updates/
..... site root path .... /updates/concrete5.6.1.2/
kdewindt replied on at Permalink Reply
kdewindt
Hi,
I had the same strange path after updating Concrete through the Dashboard. I got the "you have successfully upgraded Concrete" webpage, but when I tried to go back to my website I got the error message:

Fatal error: Call to a member function getPackageHandle() on a non-object in /home/kdewindt_srh/schmersalranch.com/cms/updates/concrete5.6.1.2_updater/concrete/core/libraries/view.php on line 105

I can no longer get to the Dashboard, or anyplace else with the Concrete environment after updating.

When I checked DIRNAME_APP_UPDATED I also had the folder /updates/concrete5.6.1.2_updated, and not the normal /updates/concrete5.6.1.2.

Sorry I can't give more environmental info, I can't get to anything in my concrete environment to access the tools. I'm a complete newbie at debugging in Concrete. I've upgraded this website several times from 5.4.2.2. through 5.6.0.2 and never had a problem. I don't even know where to continue from this point.

Since the error message pointed to the view.php file I looked at that (in the odd concrete5.6.1.2_updater folder) and line 105 is:
$themeRec = $env->getUncachedRecord(DIRNAME_THEMES . '/' . $this->getThemeHandle() . '/' . $stylesheet, $pt->getPackageHandle())


Something else very odd about the concrete5.6.1.2_updater folder is there is not a full version of concrete, just two folders under /concrete - /config (which has one file - version.php) and /core/libraries (which has one file - view.php). So I would have to guess the update was NOT successful.

Any suggestions about where to start looking would be appreciated.
Kim
Benji replied on at Permalink Reply
Benji
It seems like you are actually looking at a different problem than mine. Your error message has to do with an object ($pt -- probably "Page Type") not being defined.

You're right about the update not being successful if you only have a couple files in your concrete5.6.1.2_updater folder. (Mine actually does seem to have all the files, including the /helpers/validations/strings.php in question in my case.) In your case, I would suggest manually upgrading by following the steps outlined on this page:

http://www.concrete5.org/documentation/how-tos/developers/manually-...

Since it sounds like you can't reach the dashboard, you're probably looking at Method 2 on that page.

Hope that helps and good luck.
Benji replied on at Permalink Reply
Benji
That's what I was trying to say -- in terms of actual files (FTP-wise) it is:

/updates/concrete5.4.2.2
/updates/concrete5.5.1
/updates/concrete5.5.2.1
/updates/concrete5.6.1.2_updater

and in the 5.6.1.2_updater it has a concrete folder, with all the goodies pertaining thereto, and an index.php, just like the others.

And behold: define('DIRNAME_APP_UPDATED', 'concrete5.6.1.2_updater'); I suppose it could be called anything, it could be called 'gunite6.0', as long as the actual directory name and the DIRNAME_APP_UPDATED line agree. But the _updater appendage certainly breaks convention and raises suspicion.