#36731 closed defect (bug) (invalid)
Warning: Class __PHP_Incomplete_Class has no unserializer in /home/content/[...]/html/wp-content/object-cache.php on line520
Reported by: | pro99 | Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | 4.5.1 |
Component: | Cache API | Keywords: | |
Focuses: | Cc: |
Description
Since WordPress 4.5 on GoDaddy hosting, the GoDaddy cache seems to break the entire WordPress site. The Front page and most external pages show an error warning on common browsers like Firefox (also IE), and break the Yoast XML sitemap with the same error message when attempting to access them.
Warning: Class PHP_Incomplete_Class has no unserializer in /home/content/[...]/html/wp-content/object-cache.php on line520
Some mitigation occurs by clearing the GoDaddy cache, but the issue comes back within a few minutes. Turning off the GoDaddy cache entirely seems to have fixed the problem for now. The site used to run without problem before WP 4.5 was released.
Related threads:
https://wordpress.org/support/topic/class-_php_incomplete_class-has-no-unserializer?replies=16
https://wordpress.org/support/topic/error-warning-class-_php_incomplete_class-has-no-unserializer?replies=4
Change History (4)
#2
@
8 years ago
Hi @swissspidy , let me know if we can provide additional info to track down the root cause. Happy to provide you access to our install if someone from the WP team wants to take a look or load a debugger plugin.
Also we can reproduce the bug now:
- Have the GoDaddy cache enabled on any version of WP 4.5.x and above
- Load a Yoast XML sitemap and access it (which breaks the sitemap)
- Access the external site, now showing the error message (and alas google indexing it in page search descriptions...)
#3
@
8 years ago
- Milestone Awaiting Review deleted
- Resolution set to invalid
- Status changed from new to closed
This is caused by a plugin storing an instance of a class into Memcache (or the database) either via transients, options, usermeta, postmeta, etc.
When the value is retrieved from the cache, and the class is no longer loaded in WordPress at that time, it'll trigger this PHP warning. The class may no longer exist as either the plugin hasn't loaded it, or the plugin has been disabled.
It's not a bug in WordPress as such, but rather in whatever is storing the value into Memcache.
In order to diagnose it, you'd need to see the raw data being retrieved from Memcache, look at the classname and dig into what plugin is causing it.
I'm marking this as invalid, as it appears to be a bug in a plugin - If it's found to be caused by a bug in WordPress itself, feel free to re-open.
#4
@
8 years ago
Just in case anyone else stumbles upon this ticket: It's a bug in a the APC Object Cache used by GoDaddy. Other object cache implementations don't have this problem. Storing serialized objects in transients is supported according to the WordPress API documentation.
A diagnosis can be found in http://pyebrook.com/diagnosing-a-wp-ecommerce-error-on-godaddy-hosting-with-php-apc/, a workaround for plugins in http://stackoverflow.com/questions/965611/forcing-access-to-php-incomplete-class-object-properties.
An excerpt from the second support thread:
Unless we can track down the exact cause, it really sounds more like an incompatibility in their object cache implementation.