• In my wp_options table, the values for “_pardot_transient_keys” and “_pardot_cache_keys” are 17MB and 10MB respectively.

    I am seeing in our logs the updating of _pardot_transient_keys as a 17MB update command that is timing out our database and bringing our site down. What could be causing this? It’s sending an account field to 7, for 700,000 records. The command looks as follows:

    UPDATE wp_options SET value = ‘…
    account\”;i:699576;s:7:\”account\”;i:699577;s:7:\”account\”;i:699578;s:7:\”account\”;i:699579;s:7:\”account\”;i:699580;s:7:\”account\”;i:699581;s:7:\”account\”;i:699582;s:7:\”account\”;i:699583;s:7:\”account\”;i:699584;s:7:\”account\”;i:699585;s:7:\”account\”;i:699586;s:7:\”account\”;}’ WHERE option_name = ‘_pardot_cache_keys’ made by require(‘wp-blog-header.php’), require_once(‘wp-includes/template-loader.php’), include(‘/themes/rubicon/single.php’), get_footer, locate_template, load_template, require_once(‘/themes/rubicon/footer.php’), wp_footer, do_action(‘wp_footer’), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, Pardot_Plugin->wp_footer, the_pardot_tracking_js, get_pardot_tracking_js, get_pardot_account, Pardot_Plugin::get_account, Pardot_Plugin::call_api, Pardot_Plugin::set_cache, Pardot_Plugin::save_cache_key, update_option, W3TC\DbCache_Wpdb->update, W3TC\DbCache_WpdbInjection_QueryCaching->update, W3TC\_CallUnderlying->update, W3TC\DbCache_Wpdb->update, W3TC\DbCache_WpdbInjection->update, W3TC\DbCache_Wpdb->default_update, W3TC\DbCache_Wpdb->query, W3TC\DbCache_WpdbInjection->query, W3TC\DbCache_Wpdb->default_query

Viewing 7 replies - 16 through 22 (of 22 total)
  • npadgett

    (@npadgett)

    Thank you @cliffseal, I have commented out the lines and removed the two fields.

    Implemented this solution and the issue still remains.

        static function call_api( $key, $args ) {
    		//$value = self::get_cache( $key );
    		//if ( ! $value ) {
    			$auth = Pardot_Settings::extract_auth_args( $args );
    			$args['new_api_key'] = array( __CLASS__, '_new_api_key' );
    			$value = self::get_api( $auth )->{"get_{$key}"}( $args );
    			//self::set_cache( $key, $value );
    		//}
    		return $value;
    	}

    After doing the above we’ve deleted the two mentioned rows from the wp_options table as suggested and flushed our caches (unsure if this helps but made sure it was done anyway).

    Nothing loads on the plugin page, widgets, or customizer.

    For the above code if we comment out the entire call_api section, the plugin settings screen then displays. In this situation through we cannot access the widget area or the customizer due to a PHP missing call_api function so it’s not too much help.

    You mentioned above a planned release for an update / fix, may I ask when this is scheduled?

    Thanks in advance for your time and support,
    Alex

    • This reply was modified 5 years, 10 months ago by alexhighhigh.
    Plugin Author Cliff Seal

    (@cliffseal)

    @alexhighhigh Hmm, I think something else may be going wrong. You’re the first person to report those sorts of issues after implementing this change.

    Can you look for any errors that might point you towards a missing semicolon or bracket, or just double-check to ensure there weren’t any changes beyond commenting those four lines out?

    Thanks @cliffseal!

    We have deleted and re-added the plugin. After adding again I edited the PHP file and commented out those four lines (on a fresh install of Pardot from the WordPress directory).
    A short while after the new install our client logged in and authenticated the Pardot plugin with their login and API. I have just logged in to check and now cannot load the Pardot settings page: /wp-admin/options-general.php?page=pardot

    This results in a 404, which is probably the security plugin denying any script from running for longer than 30 seconds. Is this long delay normal/expected behaviour?

    Plugin Author Cliff Seal

    (@cliffseal)

    Hey @alexhighhigh,

    You seem to be describing a 500-type error—if that’s the case, can you ensure your client has IP Security set up correctly? For the plugin to work, it either needs to have the server IP address(es) whitelisted or be disabled entirely.

    This worked great for us @cliffseal . No more giant wpdberror string embedded in the html with lots of \" etc! Thanks for the hotfix! When this is fixed iin the plugin, please add it to the plugin’s changelog, so we don’t have to implement the hotfix on each version upgrade. Thanks again!

    Plugin Author Cliff Seal

    (@cliffseal)

    @yuviliom This will definitely be in the upcoming release. Thanks for your patience.

Viewing 7 replies - 16 through 22 (of 22 total)
  • The topic ‘Site times out from transient_keys and cache_keys’ is closed to new replies.