[wp-trac] [WordPress Trac] #12131: Admin/Dashbard hanging and getting 404 page due to wp_dashboard_recent_comments?
WordPress Trac
wp-trac at lists.automattic.com
Thu Feb 4 22:27:31 UTC 2010
#12131: Admin/Dashbard hanging and getting 404 page due to
wp_dashboard_recent_comments?
----------------------------+-----------------------------------------------
Reporter: aldenta | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Unassigned
Component: Administration | Version: 2.9.1
Severity: normal | Keywords: has-patch
----------------------------+-----------------------------------------------
I have no idea how exactly this happened but here's the skinny. I help
manage multiple WordPress installs for a client on a Dreamhost server
under a single account. I got an email that the client couldn't log in to
the admin. Sure enough, the admin (only on one site and not their others)
would hang after you entered your username/password and eventually return
the 404 WordPress page.
After much debugging (removing the plugins folder and commenting out
pieces of the dashboard code), I tracked it down to
wp_dashboard_recent_comments in wp-admin/includes/dashboard.php. Just
commenting out the call to that function would make the dashboard load
just fine.
If I printed out the sql query and ran it in phpMyAdmin the result set
looked normal. However, if I ran the "$wpdb->get_results" line by itself
it would hang.
So, I changed the query from:
{{{SELECT * FROM $wpdb->comments c LEFT JOIN $wpdb->posts p ON
c.comment_post_ID = p.ID WHERE p.post_status != 'trash' ORDER BY
c.comment_date_gmt DESC LIMIT $start, 50}}}
to:
{{{SELECT * FROM $wpdb->comments LEFT JOIN $wpdb->posts ON
$wpdb->comments.comment_post_ID = $wpdb->posts.ID WHERE
$wpdb->posts.post_status != 'trash' ORDER BY
$wpdb->comments.comment_date_gmt DESC LIMIT $start, 50}}}
and then everything worked.
Now, the real stinker is, I tried to reproduce the problem afterward to
really find the culprit. I created a test admin index page with just the
wp_dashboard_recent_comments code a little while later and it started
working. Then, I reverted the wp_dashboard_recent_comments query back to
the original state and it now works fine.
I'm guessing it's was due to a combination of PHP, MySQL, the server
and/or the result set that was coming back. I can't for the life of me
reproduce it other than the time it was happening and I was debugging the
code. The server is running PHP 5.2.12 and MySQL 5.0.32
I ran across multiple posts about getting a 404 after signing in to the
admin area so I wanted to post this. I know many of the issues were due to
permissions or plugins but I thought it would be worth posting to Trac
just in case it turns out to be helpful.
This was a really odd occurrence and I wish I could reproduce it. I've
attached a patch since it seems simple enough to just add the table names
in front of each field.
--
Ticket URL: <http://core.trac.wordpress.org/ticket/12131>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list