WordPress.org

Ready to get started?Download WordPress

Forums

Blubrry PowerPress Podcasting plugin
Powerpress and MySQL error revisited (5 posts)

  1. fpmsummer
    Member
    Posted 1 year ago #

    In the past, Blubrry has stated that this error:

    WordPress database error MySQL server has gone away for query SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('post_tag') AND tr.object_id IN (5) ORDER BY t.name ASC made by require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_feed, do_action('do_feed_podcast'), call_user_func_array, powerpress_do_podcast_feed, do_feed_rss2, load_template, require_once('wp-includes/feed-rss2.php'), do_action('rss2_item'), call_user_func_array, powerpress_rss2_item, wp_get_post_tags, wp_get_post_terms, wp_get_object_terms

    (or ones similar to it being generated by Powerpress) is only because of the mysql server at the webhost, which never made 100% sense to me, since one site will throw this error now and then, while another site on the same server won't throw this error once a year.

    If it were the mysql server, wouldn't all those sites on the same server throw that same error more often, or at all?

    I did some comparisons, and literally the only difference I've found so far is between using PHP 5.3 and PHP 5.4... is it possible that there's something with using PHP 5.3 that causes Powerpress to hang and generate this timeout where using PHP 5.4 does not?

    I ask this because one site I have had to be moved to a new server recently. That new server doesn't have PHP 5.4; it had been running PHP 5.4 on the previous server and the site never generated this error, but now running only PHP 5.3, it throws this error almost all the time.

    The webhost hasn't gotten back to me yet on whether there's something different enough between their PHP version installs that might explain this, but maybe the Blubrry guys can find something faster on their end?

    http://wordpress.org/plugins/powerpress/

  2. Angelo Mandato
    Member
    Plugin Author

    Posted 1 year ago #

    The secret sauce here is the phrase "MySQL server has gone away". This is a specific error that your PHP script is telling you that the MySQL server is no longer available for what ever reason. There is nothing written in PowerPress to make the MySQL server go away. This usually happens for a number of reasons, almost always specific to how MySQL is setup in relation to the web server(s).

    Learn more about the MySQL error here: http://dev.mysql.com/doc/refman/5.0/en/gone-away.html

    This is not a problem with PHP versions. It could be a problem with how quickly the MySQL server can build the given query though, again that is a MySQL issue.

    In my opinion, the fact that it happens randomly implies that your web hosting setup is not consistently providing you enough resources (MySQL) for your web hosting needs. Hopefully this is just a matter of your success exceeding your web server's capabilities, a good problem to have but also means you need a server administrator to manage your web site rather than a low cost hosting account.

    One thing you can do is use my Static Feed plugin, which will serve your RSS feeds as static xml files rather than query your database at every request. You need to understand what yo are doing when you use it though, and if you're not familiar with .htaccess files, I strongly encourage you get a server administrator to configure the plugin for you so it is setup correctly.

    Otherwise you could use a WordPress caching plugins, but usually they are not configured correctly and they cause more problems than they are worth. Specifically, if they add a comment at the bottom of your pages and feeds (like the WP Super Cache plugin) STAY AWAY FROM THEM, it is a known bug that iTunes will reject podcast feeds that have HTML comments at the very bottom.

  3. fpmsummer
    Member
    Posted 11 months ago #

    I don't use caching plugins, I've found they cause more trouble than any bit of site performance improvement they might provide.

    I have several sites on the same server, half running Powerpress, the other half still serving up legacy podcasts with podPress.

    Two of the podpress sites have over 200 episodes in them, and the Powerpress sites have feeds of 100 and 50 episodes in them.

    The podpress sites don't generate this mysql error, have never thrown this error, while the powerpress sites do, without fail.

    This error has followed along even after moving the sites collectively from one hosting provider to another, even hosts with ridiculous amounts of resources allocated (12Gb RAM, both PHP and MysQL set to equally ridiculous timeout levels), and this error still appears on only the powerpress sites and never on the podpress sites.

    Logic would indicate that your assumption about the problem being with the mysql server is incorrect, based on the same error appearing even after a site has moved providers, and with higher resources available.

    (yes, I've been having this problem since I switched several sites from podpress to powerpress at your recommendation several years ago, and you know about my extensive background in unix administration and internet protocol troubleshooting. Remember all those FarPoint Media shows?).

    The only reason I haven't switched any of those sites back to podpress to see if I'm right and get rid of the error is that I don't have the time.

    But if you truly have absolutely no interest in digging into this on the powerpress side despite the avalanche of evidence strongly suggesting that it's the source means that maybe I should take the time.

    Yes, that's my frustration speaking out loud.

  4. fpmsummer
    Member
    Posted 11 months ago #

    I will clarify why I think the problem is in powerpress, specifically that SQL query.

    Powerpress didn't generate this error in earlier versions, I don't have an exact timeline, but I believe it first showed up on my sites with version 3.0.1 or 4.0

    The error is EXACTLY the same every time. That one same query, 1000% of the time. Just that one. If it were a true issue with the mysql installation on the server, it would show up with other queries as well, not only just that single one every time, for possibly as long as two years now.

    If I had seen other plugins with sql queries causing this error, then I would have started talking with the ISP or the owner of my dedicated servers long ago about digging into the mysql server and perhaps tuning it better. But nothing else on my servers or my sites is throwing this "mysql server has gone away" error. Not one single other plugin or WP installation. Not one that isn't running powerpress.

    Millions of queries a week across 3 different servers at two different hosts where my sites are installed, and the only time there's a "mysql server has gone away" error is with the exact same query from the exact same plugin, only, every time?

    I've been casually looking into this problem on and off for over a year, and everything points back to an issue in powerpress, simply because it's only that one single query that's generating this error, and none of the other sites on the same server that are not running powerpress ever throw this mysql error. Not ever. Not even other queries from powerpress generate this error.

    Given that information, how can you unequivocally state that the problem is not in powerpress? Doesn't it stand to reason that there's something in that query that's incorrect or somehow failing, and the mysql server times out because it cannot return a value? I don't know SQL well enough to dig into why that query pops up and dies without getting a result, but the fact that it's only that one query every single time indicates to me that there's something faulty with that SQL query construction.

  5. Angelo Mandato
    Member
    Plugin Author

    Posted 11 months ago #

    If there's a problem with PowerPress we'll fix it, no need to imply otherwise. The problem though is the specific error "MySQL server has gone away" is a MySQL server error (not an error with the application). If you read this page (http://dev.mysql.com/doc/refman/5.0/en/gone-away.html), it gives you extensive details to figure out how to solve the problem. They are all specific to MySQL, not the application generating queries against MySQL.

    The specific query you are having an issue with is in WordPress itself, in file wp-includes/taxonomy.php, starts on line 1971 through line 1979 in WordPress version 3.6. This is called by function wp_get_post_tags. PowerPress does call wp_get_post_tags in function powerpress_rss2_item. This is why you see it in the error message after the query error. The problem though is not in PowerPress. You are right, you can turn off PowerPress and your problem will go away. But you should not receive this error in the first place. Some day you may run into this same problem with something else because it's the query made by the function wp_get_object_terms() causing your problems, not a query made by PowerPress.

    So first question, is it always the same exact query? Specifically, where it says ... AND tr.object_id IN (5) ....? The 5 is an ID, presumably to a blog post. I would edit that blog post and look for abnormalities like an excessive number of tags, etc...

    Another thing to try, take the query above, go into phpMyAdmin on your server, and execute the query once to see how responsive the query is (how many results it returns, etc...) Then run the same query again, with the word "EXPLAIN " in front if it. It will give you some facts on what index it is using, etc.. Go ahead and copy and paste those EXPLAIN results (both rows, the header row and the actual result row) here, that may give me an idea what the problem is.

    My only guess is that there's an excessively large number of tags for the post with ID 5, the query takes longer than X seconds to return results, and your MySQL server kills the query before it gets a chance to return results. Maybe because of a missing index in one of your tables. Again, this is a guess, not the actual answer to your problem.

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic