--source include/not_threadpool.inc --source include/have_debug.inc --echo # --echo # BUG#28761869 - LOCK_ORDER: DEADLOCK INVOLVING LOCK_OFFLINE_MODE. --echo # # Save the global value to be used to restore the original value. SET @global_saved_tmp = @@global.offline_mode; connect(con1, localhost, root,,); SET DEBUG_SYNC='after_lock_offline_mode_acquire SIGNAL lock_offline_mode_acquired WAIT_FOR lock_thd_data_acquired'; --send SET GLOBAL offline_mode=ON; --connection default SET DEBUG_SYNC='now WAIT_FOR lock_offline_mode_acquired'; SET DEBUG_SYNC='materialize_session_variable_array_THD_locked SIGNAL lock_thd_data_acquired'; --send SHOW VARIABLES LIKE 'offline_mode'; --connection con1 --echo # reaping execution status for SET GLOBAL offline_mode=ON; --reap; --connection default --reap; --disconnect con1 SET DEBUG_SYNC='RESET'; --echo # Restoring the original values. SET @@global.offline_mode = @global_saved_tmp; --echo # --echo # Bug #29849046: ASSERT AT SQL_PARSE.CC:6421 IF NON-PRIVILEGED USER --echo # TRIES ENABLING OFFLINE_MODE # Save the initial number of concurrent sessions --source include/count_sessions.inc # Save the global value to be used to restore the original value. SET @global_saved_tmp = @@global.offline_mode; CREATE USER u1@localhost; GRANT ALL PRIVILEGES ON *.* to u1@localhost; REVOKE CONNECTION_ADMIN, SUPER ON *.* FROM u1@localhost; connect(con_u1,localhost,u1,,test); --echo # in connection con_u1 connection con_u1; --echo # test: must not assert set global offline_mode=on; --echo # Should have killed itself --error CR_SERVER_GONE_ERROR,CR_SERVER_LOST SELECT 1 FROM DUAL; --echo in connection default connection default; disconnect con_u1; SET @@global.offline_mode = @global_saved_tmp; # Wait till all disconnects are completed --source include/wait_until_count_sessions.inc DROP USER u1@localhost; --echo # End of 8.0 tests