[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