Bug #85663 SYS_VARS.INNODB_NUMA_INTERLEAVE_BASIC.TEST NEVER RUNS
Submitted: 28 Mar 2017 6:59 Modified: 28 Mar 2017 7:08
Reporter: Mohit Joshi Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:8.0.0 OS:Any
Assigned to: CPU Architecture:Any

[28 Mar 2017 6:59] Mohit Joshi
Description:
This test sys_vars.innodb_numa_interleave_basic.test is always skipped in regression test environment as below.

==============================================================================

TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------

worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
sys_vars.innodb_numa_interleave_basic    [ skipped ]  Test requires: NUMA
must be enabled
--------------------------------------------------------------------------
The servers were restarted 0 times
Spent 0.000 of 8 seconds executing testcases

Completed: All 0 tests were successful.

1 tests were skipped, 1 by the test itself.

NUMA feature is available on PB2 servers. This is verified in the build logs
as shown below:
-- Performing Test HAVE_LIBNUMA
-- Performing Test HAVE_LIBNUMA - Success

However, the test still skips because MySQL compilation fails to build with
it on test regression servers.

How to repeat:
./mtr innodb_numa_interleave_basic

Suggested fix:
Following 2 files have changes related to NUMA:

mysql.git/storage/innobase/buf/buf0buf.cc
mysql.git/storage/innobase/handler/ha_innodb.cc

This needs to be checked so that the test runs on all NUMA enabled system.
[28 Mar 2017 7:04] Mohit Joshi
Posted by developer:
 
Marked as duplicate of Bug#23259754
[28 Mar 2017 7:08] Mohit Joshi
Posted by developer:
 
This problem is introduced by

commit 73b6f6dfc7056358414cd3dc72cbda6fa523635f
Author: Vasil Dimov <vasil.dimov@oracle.com>
Date:   Tue Jul 21 11:03:25 2015 +0300

This patch made changes as follows:

 #include <new>
 #include <map>
-#ifdef HAVE_LIBNUMA
+
+#if defined(HAVE_LIBNUMA) && defined(WITH_NUMA)
 #include <numa.h>
 #include <numaif.h>
-#endif // HAVE_LIBNUMA
+#endif /* HAVE_LIBNUMA && WITH_NUMA */

But the WITH_NUMA is never getting defined.
Investigating.
[28 Mar 2017 8:23] Mohit Joshi
Posted by developer:
 
Fixed in 8.0.0 under the heading of Bug#23259754