WordPress.org

Make WordPress Core

Opened 4 years ago

Closed 4 years ago

Last modified 3 years ago

#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)

#1 @swissspidy
4 years ago

An excerpt from the second support thread:

Update: the issue is back. It's hard to pinpoint what exactly causes it. From several forum posts, talks with GoDaddy support and experimentation with plugins, WordPress 4.5 broke the Cache that GoDaddy runs on all its websites. It's impossible for site owners to turn off that cache or use an alternative.

Unless we can track down the exact cause, it really sounds more like an incompatibility in their object cache implementation.

#2 @pro99
4 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...)
Last edited 4 years ago by pro99 (previous) (diff)

#3 @dd32
4 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.

Last edited 4 years ago by dd32 (previous) (diff)

#4 @pputzer
4 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.

Last edited 3 years ago by pputzer (previous) (diff)
Note: See TracTickets for help on using tickets.