From c0ea9c285d6502d55df20e8a663ca6191a4bfdcd Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Fri, 20 Sep 2019 15:38:52 -0400 Subject: [PATCH] LogPager: Add IGNORE INDEX to avoid MariaDB optimizer bug This is basically the same thing we fixed for ApiQueryLogEvents in I16dba2158. Bug: T223151 Change-Id: I53a7ed59de3eed2b0b4f1b1fb7f6d302b1de276c --- includes/logging/LogPager.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/includes/logging/LogPager.php b/includes/logging/LogPager.php index 781df06f49..0b78a36033 100644 --- a/includes/logging/LogPager.php +++ b/includes/logging/LogPager.php @@ -361,6 +361,11 @@ class LogPager extends ReverseChronologicalPager { if ( !$this->mTagFilter && !array_key_exists( 'ls_field', $this->mConds ) ) { $options[] = 'STRAIGHT_JOIN'; } + if ( $this->performer !== '' ) { + // T223151: MariaDB's optimizer, at least 10.1, likes to choose a wildly bad plan for + // some reason for this code path. Tell it not to use the wrong index it wants to pick. + $options['IGNORE INDEX'] = [ 'logging' => [ 'times' ] ]; + } $info = [ 'tables' => $tables, -- 2.20.1