Commit d88716c2 authored by Sven Sandberg's avatar Sven Sandberg
Browse files

BUG#39851: race between check_testcase and tests running 'show processlist'

Problem 1: not_embedded_server runs SELECT FROM I_S.PROCESSLIST near the beginning.
check_testcase executes a query to the server before that. There is a race here,
because there is no guarantee that the thread executing check_testcase's query is
finished.
Problem 2: The SELECT FROM I_S.PROCESSLIST doens't seem very useful in the test.
It's at least misplaced.
Fix to both problems: Comment out SELECT FROM I_S.PROCESSLIST.
parent 90de05d0
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
prepare stmt1 from ' SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND!=\'Daemon\' ';
execute stmt1;
ID	USER	HOST	DB	COMMAND	TIME	STATE	INFO
number	root	localhost	test	Query	time	executing	SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND!='Daemon'
deallocate prepare stmt1;
FLUSH STATUS;
Value of com_select did not change
+23 −11
Original line number Diff line number Diff line
@@ -4,21 +4,33 @@

-- source include/not_embedded.inc


# The following fails sporadically because 'check-testcase' runs
# queries before this test and there is no way to guarantee that any
# previous process finishes.  The purpose of the test is not clearly
# stated, there is no reference to any bug report, and "select from
# I_S from prepared statement" doesn't look like something that's
# really imporant to test.  I'm commenting out this for now.  If
# anyone wants to keep this, please fix the race and motivate why we
# need to test this.  If you see this comment and it is after mid-2009
# or so, feel free to remove this test from the file.  /Sven
#
# Show full process list with prepare
# To not show other connections, this must be the first test and we must
# have a server restart before this one
#
# We don't have any 4.1 tests as we use I_S to query the PROCESSLIST to
# exclude system threads that may/may not be active in the server
# (namely the ndb injector thread)
## Show full process list with prepare
## To not show other connections, this must be the first test and we must
## have a server restart before this one
##
## We don't have any 4.1 tests as we use I_S to query the PROCESSLIST to
## exclude system threads that may/may not be active in the server
## (namely the ndb injector thread)
##
## End of 4.1 tests
#
# End of 4.1 tests
#prepare stmt1 from ' SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND!=\'Daemon\' ';
#--replace_column 1 number 6 time 3 localhost
#execute stmt1;
#deallocate prepare stmt1;

prepare stmt1 from ' SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND!=\'Daemon\' ';
--replace_column 1 number 6 time 3 localhost
execute stmt1;
deallocate prepare stmt1;


#