Skip to:
Content

Opened 9 months ago

Last modified 5 months ago

#3152 new defect

The `BBP_Topics_Widget` widget causes a time-out on large forums

Reported by: jrf Owned by:
Milestone: 2.7 Priority: normal
Severity: normal Version: trunk
Component: API - Widgets Keywords: needs-testing
Cc: johnjamesjacoby, jrf

Description

Haven't had time to debug this properly, but it looks like this query does not add a limit to the select query it creates which causes a problem on large forums.

Here's the stack trace:

[21-Aug-2017 08:11:54 UTC] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in path/to/wp-includes\wp-db.php on line 1877

[21-Aug-2017 08:11:54 UTC] PHP Stack trace:

[21-Aug-2017 08:11:54 UTC] PHP   1. {main}() path/to/index.php:0

[21-Aug-2017 08:11:54 UTC] PHP   2. require() path/to/index.php:17

[21-Aug-2017 08:11:54 UTC] PHP   3. require_once() path/to/wp-blog-header.php:19

[21-Aug-2017 08:11:54 UTC] PHP   4. include() path/to/wp-includes\template-loader.php:74

[21-Aug-2017 08:11:54 UTC] PHP   5. genesis() path/to/wp-content\themes\genesis\page.php:15

[21-Aug-2017 08:11:54 UTC] PHP   6. do_action($tag = 'genesis_after_content', $arg = *uninitialized*) path/to/wp-content\themes\genesis\lib\framework.php:45

[21-Aug-2017 08:11:54 UTC] PHP   7. WP_Hook->do_action($args = array (0 => '')) path/to/wp-includes\plugin.php:453

[21-Aug-2017 08:11:54 UTC] PHP   8. WP_Hook->apply_filters($value = '', $args = array (0 => '')) path/to/wp-includes\class-wp-hook.php:323

[21-Aug-2017 08:11:54 UTC] PHP   9. genesis_get_sidebar('') path/to/wp-includes\class-wp-hook.php:298

[21-Aug-2017 08:11:54 UTC] PHP  10. get_sidebar($name = *uninitialized*) path/to/wp-content\themes\genesis\lib\structure\layout.php:211

[21-Aug-2017 08:11:54 UTC] PHP  11. locate_template($template_names = array (0 => 'sidebar.php'), $load = TRUE, $require_once = *uninitialized*) path/to/wp-includes\general-template.php:122

[21-Aug-2017 08:11:54 UTC] PHP  12. load_template($_template_file = 'I:\\064 ForSite Media\\03. Surrogacy\\Bitbucket repos\\_2017_august_testsite/wp-content/themes/genesis/sidebar.php', $require_once = TRUE) path/to/wp-includes\template.php:647

[21-Aug-2017 08:11:54 UTC] PHP  13. require_once() path/to/wp-includes\template.php:690

[21-Aug-2017 08:11:54 UTC] PHP  14. do_action($tag = 'genesis_sidebar', $arg = *uninitialized*) path/to/wp-content\themes\genesis\sidebar.php:21

[21-Aug-2017 08:11:54 UTC] PHP  15. WP_Hook->do_action($args = array (0 => '')) path/to/wp-includes\plugin.php:453

[21-Aug-2017 08:11:54 UTC] PHP  16. WP_Hook->apply_filters($value = '', $args = array (0 => '')) path/to/wp-includes\class-wp-hook.php:323

[21-Aug-2017 08:11:54 UTC] PHP  17. genesis_do_sidebar('') path/to/wp-includes\class-wp-hook.php:298

[21-Aug-2017 08:11:54 UTC] PHP  18. dynamic_sidebar($index = 'sidebar') path/to/wp-content\themes\genesis\lib\structure\sidebar.php:24

[21-Aug-2017 08:11:54 UTC] PHP  19. BBP_Replies_Widget->display_callback($args = array ('name' => 'Primary Sidebar', 'id' => 'sidebar', 'description' => 'This is the primary sidebar if you are using a two or three column site layout option.', 'class' => '', 'before_widget' => '<section id="bbp_replies_widget-2" class="widget widget_display_replies"><div class="widget-wrap">', 'after_widget' => '</div></section>\n', 'before_title' => '<h3 class="widgettitle widget-title">', 'after_title' => '</h3>\n', '_genesis_builtin' => TRUE, 'widget_id' => 'bbp_replies_widget-2', 'widget_name' => '(bbPress) Recent Replies'), $widget_args = array ('number' => 2)) path/to/wp-includes\widgets.php:738

[21-Aug-2017 08:11:54 UTC] PHP  20. BBP_Replies_Widget->widget($args = array ('name' => 'Primary Sidebar', 'id' => 'sidebar', 'description' => 'This is the primary sidebar if you are using a two or three column site layout option.', 'class' => '', 'before_widget' => '<section id="bbp_replies_widget-2" class="widget widget_display_replies"><div class="widget-wrap">', 'after_widget' => '</div></section>\n', 'before_title' => '<h3 class="widgettitle widget-title">', 'after_title' => '</h3>\n', '_genesis_builtin' => TRUE, 'widget_id' => 'bbp_replies_widget-2', 'widget_name' => '(bbPress) Recent Replies'), $instance = array ('title' => 'Recent Replies', 'max_shown' => 5, 'show_date' => FALSE, 'show_user' => FALSE)) path/to/wp-includes\class-wp-widget.php:395

[21-Aug-2017 08:11:54 UTC] PHP  21. bbp_get_reply_url($reply_id = 546960, $redirect_to = *uninitialized*) path/to/wp-content\plugins\bbpress\includes\common\widgets.php:1124

[21-Aug-2017 08:11:54 UTC] PHP  22. bbp_get_reply_position($reply_id = 546960, $topic_id = 19830) path/to/wp-content\plugins\bbpress\includes\replies\template.php:464

[21-Aug-2017 08:11:54 UTC] PHP  23. bbp_get_reply_position_raw($reply_id = 546960, $topic_id = 19830) path/to/wp-content\plugins\bbpress\includes\replies\template.php:1671

[21-Aug-2017 08:11:54 UTC] PHP  24. bbp_get_all_child_ids($parent_id = 19830, $post_type = 'reply') path/to/wp-content\plugins\bbpress\includes\replies\functions.php:2247

[21-Aug-2017 08:11:54 UTC] PHP  25. wpdb->get_col($query = 'SELECT ID FROM wp_2_posts WHERE post_parent = 19830 AND post_status NOT IN ( \'draft\', \'future\' ) AND post_type = \'reply\' ORDER BY ID DESC', $x = *uninitialized*) path/to/wp-content\plugins\bbpress\includes\common\functions.php:1642

[21-Aug-2017 08:11:54 UTC] PHP  26. wpdb->query($query = 'SELECT ID FROM wp_2_posts WHERE post_parent = 19830 AND post_status NOT IN ( \'draft\', \'future\' ) AND post_type = \'reply\' ORDER BY ID DESC') path/to/wp-includes\wp-db.php:2354

[21-Aug-2017 08:11:54 UTC] PHP  27. wpdb->_do_query($query = 'SELECT ID FROM wp_2_posts WHERE post_parent = 19830 AND post_status NOT IN ( \'draft\', \'future\' ) AND post_type = \'reply\' ORDER BY ID DESC') path/to/wp-includes\wp-db.php:1765

Change History (1)

#1 @johnjamesjacoby
5 months ago

  • Keywords needs-testing added
  • Milestone changed from Awaiting Review to 2.7
Note: See TracTickets for help on using tickets.