WordPress.org

Ready to get started?Download WordPress

Forums

Debug Bar
Fatal error: Uncaught exception Serialization of SimpleXMLElement is not allowed (2 posts)

  1. bobbingwide
    Member
    Posted 1 year ago #

    The following message is displayed on the debug bar object cache tab when the post being viewed contains my [bw_plug] shortcode.

    [20-Aug-2012 08:06:22] PHP Fatal error: Uncaught exception 'Exception' with message 'Serialization of 'SimpleXMLElement' is not allowed' in C:\apache\htdocs\oobit\wp-includes\cache.php:527

    Stack trace:

    #0 C:\apache\htdocs\oobit\wp-includes\cache.php(527): serialize(Array)

    #1 C:\apache\htdocs\oobit\wp-content\plugins\debug-bar\panels\class-debug-bar-object-cache.php(17): WP_Object_Cache->stats()

    #2 C:\apache\htdocs\oobit\wp-content\plugins\debug-bar\debug-bar.php(236): Debug_Bar_Object_Cache->render()

    #3 [internal function]: Debug_Bar->render('')

    #4 C:\apache\htdocs\oobit\wp-includes\plugin.php(406): call_user_func_array(Array, Array)

    #5 C:\apache\htdocs\oobit\wp-includes\admin-bar.php(64): do_action('wp_after_admin_...')

    #6 [internal function]: wp_admin_bar_render('')

    #7 C:\apache\htdocs\oobit\wp-includes\plugin.php(406): call_user_func_array('wp_admin_bar_re...', Array)

    #8 C:\apache\htdocs\oobit\wp-includes\general-template.php(1586): do_action('wp_footer')

    #9 C:\apache\htdocs\oobit\wp-content\themes\oobit\footer-oik.php(30): wp_footer()

    #10 C:\ap in C:\apache\htdocs\oobit\wp-includes\cache.php on line 527

    The spooky thing about this is the sequence of events that led me to discover this problem in the first place.

    It all started with TRAC #18488
    and the fact that Nacin just closed it as invalid.

    The problem is easy to reproduce:
    1. Enable WP_DEBUG
    1. Install the following plugins: oik, debug-bar
    2. Activate: oik base plugin, oik bob bing wide shortcodes and debug-bar
    3. Create a post containing [bw_plug]
    4. View it
    5. Go to debug bar and open the Object Cache tab.

    B*GG*R! I was unable to reproduce it on a Linux server!
    So I'll try a brand new 3.4.1 install.

    http://wordpress.org/extend/plugins/debug-bar/

  2. bobbingwide
    Member
    Posted 1 year ago #

    Further to above. The reason it failed in Windows was because I am using PHP 5.3.2. There is a change in PHP 5.3 that means that serialization and unserialization of SimpleXMLElement objects is disallowed. https://bugs.php.net/bug.php?id=49800

    The failure occurs in this line of code from the stats() function in wp_includes/cache.php

    echo "<li><strong>Group:</strong> $group - ( " . number_format( strlen( serialize( $cache ) ) / 1024, 2 ) . 'k )</li>';

    I would suggest replacing
    serialize( $cache )
    with some similar code that "works" regardless of the content of the $cache field.
    print_r( $cache, true )

    The difference in the reported size is negligible.

    My suggested short term fix is to copy the stats() function into class-debug-bar-object-cache.php and apply the change there. Longer term to change the WordPress code. I have created ticket #21650 http://core.trac.wordpress.org/ticket/21650

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic

Tags

No tags yet.