Support » Plugin: Debug Bar » [Plugin: Debug Bar] Fatal error: Uncaught exception Serialization of SimpleXMLElement is not allowed

  • 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.

Viewing 1 replies (of 1 total)
  • 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.

    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

Viewing 1 replies (of 1 total)
  • The topic ‘[Plugin: Debug Bar] Fatal error: Uncaught exception Serialization of SimpleXMLElement is not allowed’ is closed to new replies.