Header RSS Feed
 
If you only want to see the articles of a certain category, please click on the desired category below:
ALL Android Backup BSD Database Hacks Hardware Internet Linux Mail MySQL Monitoring Network Personal PHP Proxy Shell Solaris Unix Virtualization VMware Windows Wyse

Virtuemart shop does not like APC: Internal Zend error - Missing class info
Thursday - Sep 26th 2013 - by - (0 comments)

Virtuemart is an e-commerce (online shop) solution which can be used as an extension in Joomla. After some research today I found out that Virtuemart really doesn't like APC (Alternative PHP Cache).

The php-fpm log showed the following errors:

[26-Sep-2013 09:55:52] WARNING: [pool mywebhost] child 48864 said into stderr: "zend_mm_heap corrupted"
[26-Sep-2013 09:55:52] WARNING: [pool mywebhost] child 48864 exited with code 1 after 4938.339129 seconds from start
[26-Sep-2013 09:55:52] NOTICE: [pool mywebhost] child 51756 started
[26-Sep-2013 09:56:50] WARNING: [pool mywebhost] child 70607 said into stderr: "zend_mm_heap corrupted"
[26-Sep-2013 09:56:50] WARNING: [pool mywebhost] child 70607 exited with code 1 after 24946.369748 seconds from start
[26-Sep-2013 09:56:50] NOTICE: [pool mywebhost] child 51769 started

Unfortunately these warnings didn't really show what the issue was. A research for "zend_mm_heap corrupted" showed way too many possibilities of issues (bug in old PHP version, suhosin related issues, problem with output_buffer value, ...), so I activated the error logging of this host and soon found the relevant entries like this:

Fatal error: Internal Zend error - Missing class information for in /home/mywebhost/htdocs/administrator/components/com_virtuemart/version.php on line 30

At least this was much more revealing. By looking for this Zend error, I came across this page, which in general has nothing to do with Virtuemart, but the exact same error message there was explained as being triggered by APC.

As soon as I disabled the APC cache for this particular web host, the errors disappeared and the shop was running as it should.

Here's the relevant php-fpm config entry to disable APC cache:

 php_flag[apc.cache_by_default] = off

 

 

Add a comment

Show form to leave a comment

Comments (newest first):

No comments yet.

Go to Homepage home
Linux Howtos how to's
Monitoring Plugins monitoring plugins
Links links

Valid HTML 4.01 Transitional
Valid CSS!
[Valid RSS]

7362 Days
until Death of Computers
Why?