I have a complex page (custom subtype of Page, does a lot of database stuff) which I'm trying to refresh automatically using Cache Manager. The idea is to have a 3 hour cache period on the page and refresh it every 2 hours. The page runs fine when accessed from the frontend, caches as expected, including falling out of the cache after 3 hours.
I have created a job under Cache Manager which, after the first run, sits in Running state. I don't think that's right. Created another job for the same page on a 15min cycle, did the same thing.
cron_error.log is telling me:
[12:Root User][2048:php 5 strict standards][R] (/usr/share/pear/Mail.php:154) - Assigning the return value of new by reference is deprecated
Which is odd as I'm running 3.18.2, which I thought had fixed that. Have PEAR 1.7.2 installed.
Any ideas where I should start prodding?
thanks, martin
Can you manually clear the cache on that asset type, by using the Clear Matrix Cache tool?
Yes, the page's cache can be cleared from the tool.
I also used the Clear Matrix Cache tool to both clear and repopulate the page. This worked fine.
Used Clear Matrix Cache tool to create a cron job clearing and recaching every 15 minutes, this also worked. I deleted all jobs under Cache Manager during these tests.
However, it only worked once! I then spotted that the next run time for cron tasks was no longer advancing - stuck at the time I created the previously mentioned cron job.
Hour or so later got a root Inbox message "POTENTIAL CRON MANAGER DEAD LOCK ISSUE". cron_errors.log around that time contains:
[256:mysource error][R] (/core/include/locale_manager.inc:504) - [ASSERT EXCEPTION] [array] "" is not a valid asset ID [SYS0320]
cron_errors.log continues to collect the [2048:php 5 strict standards] message every 15mins.
There are no obvious processes still running.
your confused, martin
Does the Clear Matrix Cache cronjob work for standard assets (i.e. assets that ship with Matrix)? If not, I would recommend contacting Squiz Support or logging a bug so that we can take a look at your system. If it only happens on your custom asset, we may need to investigate the code to determine why.
Cleared all cronjobs (including killing a stuck one). Let system run for a few cron ticks, no obvious issues, no new error messages in logs.
Added a clear (but not repopulate) cronjob via the tool for a known working standard asset listing page. Blew up next cron tick with:
[12:Root User][256:mysource error][R] (/core/include/locale_manager.inc:504) - [ASSERT EXCEPTION] [array] "" is not a valid asset ID [SYS0320]
Resulted in a blocked job/cron manager deadlock.
Is there a way to log the call stack when such an exception happens?
martin
[quote]Resulted in a blocked job/cron manager deadlock.
Is there a way to log the call stack when such an exception happens?[/quote]
Is there anything in cron_errors.log? I would contact Squiz Support so that we can take a look at your system.
Hi Avi,
Only thing in cron_errors.log was the error message posted above. Plus the never ending "Assigning the return value of new by reference is deprecated" every cron tick.
This is using the GPL version for a community (ie unpaid) project, so support not really an option. Thanks anyway.
cheers, martin