[MDEV-13842] innodb.innodb-index failed in buildbot Created: 2017-09-19  Updated: 2018-02-13  Resolved: 2018-02-13

Status: Closed
Project: MariaDB Server
Component/s: Compiling, Storage Engine - InnoDB, Tests
Affects Version/s: 10.3
Fix Version/s: 10.3.5

Type: Bug Priority: Blocker
Reporter: Alice Sherepa Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None

Attachments: Text File 10.2.txt     Text File 10.3.txt    
Issue Links:
Relates
relates to MDEV-13656 10.3 does not build on CentOS 5 x86 (... Closed

 Description   

http://buildbot.askmonty.org/buildbot/builders/kvm-bintar-centos5-x86/builds/7587/steps/test/logs/stdio

innodb.innodb-index 'innodb'             w2 [ fail ]
        Test ended at 2017-09-18 16:17:20
 
CURRENT_TEST: innodb.innodb-index
--- /usr/local/mariadb-10.3.2-linux-i686/mysql-test/suite/innodb/r/innodb-index.result	2017-09-18 14:09:46.000000000 +0200
+++ /usr/local/mariadb-10.3.2-linux-i686/mysql-test/suite/innodb/r/innodb-index.reject	2017-09-18 16:17:19.000000000 +0200
@@ -1198,6 +1198,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 drop table t1;
 create table t1(f1 int not null, f2 int not null,
@@ -1211,6 +1213,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 drop table t1;
 create table t480(a serial)engine=innodb;
@@ -1241,6 +1245,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
 # Change PK from (f1,f2,f3,f4) to (f1,f2,added_columns)
@@ -1251,6 +1257,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
 # Change PK from (f1,f2,f5,f6) to (f1,f2,f5)
@@ -1262,6 +1270,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
 # Reusing the same PK
@@ -1271,6 +1281,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
 # Reusing the same pk
@@ -1280,6 +1292,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Must sort
 # Change PK from (f1,f2,f5) to (f1,f5)
@@ -1291,6 +1305,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 ddl_sort_file_alter_table	2
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
@@ -1302,6 +1318,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
 # Reusing the same pk
@@ -1312,6 +1330,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
 # Change PK from (f1,f4,f2n) to (f1,f4,added_column,f2n)
@@ -1322,6 +1342,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 ddl_sort_file_alter_table	2
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
@@ -1332,6 +1354,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
 # Reusing the same pk
@@ -1341,6 +1365,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
 # Reusing the same pk
@@ -1350,6 +1376,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
 # Optimize table
@@ -1361,6 +1389,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Sort files used for adding secondary index
 alter table t1 drop primary key, add primary key(f1,f5,f7), add index
@@ -1370,6 +1400,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # No sort files used for dropping secondary index
 alter table t1 drop primary key, add primary key(f1,f5),drop index i;
@@ -1378,6 +1410,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
 # Change PK(f1,f5) to (f1,added_columns) and drop f5
@@ -1388,6 +1422,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Must sort
 # Change PK(f1,f12) to (f1,existing_columns)
@@ -1397,6 +1433,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 ddl_sort_file_alter_table	2
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort
@@ -1408,6 +1446,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Adding Secondary index alone.
 alter table t1 add key(f1);
@@ -1416,6 +1456,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Must sort
 # Change PK(f1,f3) to (existing_column,f1)
@@ -1425,6 +1467,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 ddl_sort_file_alter_table	3
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort for PK.
@@ -1437,6 +1481,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 # Skip sort for PK.
 # Change PK(f5n,f6n,f4,f1) to
@@ -1449,6 +1495,8 @@
 SELECT name, count_reset FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE
 subsystem = 'ddl' and count_reset > 0;
 name	count_reset
+ddl_online_create_index	4294967296
+ddl_pending_alter_table	4294967296
 SET GLOBAL innodb_monitor_reset = module_ddl;
 SET GLOBAL innodb_monitor_disable = module_ddl;
 select count(*) from t1;
 
mysqltest: Result length mismatch



 Comments   
Comment by Marko Mäkelä [ 2017-11-30 ]

This test only fails on a single 32-bit platform. It looks like some kind of 32-bit overflow (the value should be 0 and not be reported).

The test does run and pass on 32-bit Windows.
jplindst, can you please try to find out why it fails on 32-bit Linux?

Comment by Elena Stepanova [ 2018-01-27 ]

Latest occurrence: http://buildbot.askmonty.org/buildbot/builders/kvm-bintar-centos5-x86/builds/8419/steps/test/logs/stdio (Jan 26th).

Despite the builder name, the tests actually run on vm-centos6-i386-install.qcow2 (but the build happens on centos5, hence the name).

Comment by Marko Mäkelä [ 2018-02-07 ]

I strongly suspect that the problem is with the environment, causing MONITOR_ATOMIC_DEC to malfunction.
I attached the machine code generated for the first statement of row_log_free() for recent 10.2.txt and 10.3.txt builds on the centos5-x86 platform.
The problem seems to be in the first part of this code:

#define MONITOR_ATOMIC_DEC_LOW(monitor, enabled)			\
	if (enabled) {							\
		ib_uint64_t	value;					\
		value = my_atomic_add64_explicit(			\
			(int64*) &MONITOR_VALUE(monitor), -1,		\
			MY_MEMORY_ORDER_RELAXED) - 1;			\
		/* Note: This is not 100% accurate because of the	\
		inherent race, we ignore it due to performance. */	\
		if (value < (ib_uint64_t) MONITOR_MIN_VALUE(monitor)) {	\
			MONITOR_MIN_VALUE(monitor) = value;		\
		}							\
	}

We can ignore the MONITOR_MIN_VALUE(monitor), because it is not causing this result difference. It is only trying to record the historical bounds for the parameter (which is not interesting for unsigned counters that start from 0).

svoj mentioned the following:

centos5-x86 has so ancient compiler that it doesn't even support ancient gcc sync builtins. There was some asm implementation for hosts like this, that I removed a while ago. It started to fail to compile after that.
Then it was agreed that we remove this host for 10.3 (or probably 10.2 even). But then serg fixed this compilation failure (MDEV-13656) and the host was kept.

I would join the implied suggestion that centos5-x86 be dropped from the list of supported MariaDB 10.3 platforms.

Comment by Sergei Golubchik [ 2018-02-12 ]

I've configured buildbot not to build 10.3+ branches on centos5.

Generated at Thu Feb 08 08:08:48 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.