- 
                Notifications
    You must be signed in to change notification settings 
- Fork 4.1k
r #404
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
    Post-push fix: using constant label instead of cluster-id in the section key RB: 27551 Change-Id: Ic504103ca4e7695ef1e3da9cc82b68c36f40007a
…th UTF32 character set Post-push fix: Rewrite mtr tests to avoid inserting illegal UTF32 characters. Change-Id: I2bf8fccbbc8886178177c0b3670463f0da3dfdc9
… can deadlock This patch fixes the main issue, by moving the srv_refresh_innodb_monitor_stats() call from srv_error_monitor_thread() which shouldn't bother with it, to the srv_monitor_thread() which really needs it. This "helping" use to have some sense in the past when the srv_monitor_thread could be suspended, while we still needed to keep refreshing the stats, but in todays trunk the srv_monitor_thread never gets suspended. Also, the patch simplifies the implementation based on observation that current implementation in trunk doesn't really react to os_event_set calls from various places in the way it was supposed to in the old times. Originally, the intention was to wake up a suspended monitor thread when we enable the monitoring. But, at least since 5.0 import commit, we never really suspend the monitoring thread, and all this os_event_set achieves is that it needlessly wakes up the monitoring thread which will check the clock, notice that the time that passed is smaller than 15 seconds, and will get back to sleep again. So, we can remove all these os_event_set complication. Also, there's only one thread which calls the os_event_reset. Also, after the changes, we only ever call os_event_set on shutdown. Combining these observations we can simplify the code further, by changing the os_event_wait timeout to 15 seconds, and interpreting the event as a signal to quit. Renamed srv_last_monitor_time to srv_monitor_stats_refreshed_at. When innodb needs to enable or disable the monitor, it should be done independently to the user setting the sys var, and properly counting the number of threads which wanted to enabled/disable it. The neew srv_innodb_needs_monitoring atomic will keep track of it. This change also fixes: Bug #93878 innodb_status_output fails to restore to old value Fixed a bug in shutdown, that we forgot to signal 4 threads: - srv_threads.m_error_monitor - srv_threads.m_monitor - srv_threads.m_buf_dump - srv_threads.m_buf_resize This wasn't a big deal as some of them were noticing the shutdown themselves, when waiting on event timed out, and others typically wasn't even started at the moment the shutdown occurred. Reviewed by: Marcin Babij <[email protected]> Change-Id: Ie483e6993aae54a069d0806255afbcd70e33b7e3 Change-Id: I3e28240030f7a167e0ede2a55a4f2ec7d79ab55b Change-Id: Ia1a9cba1953cf1f6fd58430676968f93f7775756 Change-Id: I3d4602f34ecddc39d1d4a7e88399124ba465c3d2 Change-Id: Iee0af945bbaf107178690577b6aa6bed3c177ff6 Change-Id: I1356decfe54b2987eaad7b64dbd5b1214e5f230c Change-Id: I554266fd1ce9ea1e43162f406981e8d31d506664 Change-Id: Ib8838647a756f297f7f9808eff8ab85f46d1b3ca
… data nodes Fix thr_LOCAL and thr_GLOBAL values. thr_LOCAL and thr_GLOBAL were being assigned the wrong value when there is no main/req threads causing multiple data node crashed depending on the thread configuration. Now, when tehre is no main and req thread, the value of thr_LOCAL and thr_GLOBAL is the thread number of the first recv thread as expected. Change-Id: I605772a0a98f56a7adc85b98f9473026903cc0d8
Post-push fix for a test failure when running mtr with --hypergraph. An assertion failure is seen with the hypergraph optimizer because a TABLE_VALUE_CONSTRUCTOR access path has uninitialized init_cost. Fixed by initializing the init_cost. Also filter out some result differences between the old optimizer and the hypergraph optimizer. Change-Id: Ia62344abeba625ff2026554e5ef2ac57113dce0e
…b-page-size=4k Fixing a pb2 failure by running test only for 16k innodb page size. approved by Kuba Lopuszanski <[email protected]> over IM.
Description: ------------ SET PERSIST does not make sense for gtid_purged variable. Unfortunately, SET PERSIST is allowed. After a SET PERSIST statement has been executed, the variable stops working as expected, and takes only the value specified in the last SET PERSIST or SET PERSIST_ONLY statement. It does not represent the state derived from the binary log and mysql.gtid_executed table. This has many bad consequences: - The next time the server attempts to restart, the server will to fail to restart (unless the persisted value is a superset of the real value). - There are decisions made based on @@global.gtid_purged. Internal checks in the server are based on the correct values, not shadowed by the persisted value. But checks in e.g. MySQL Shell are based on values retrieved through the SQL interface, in which the correct value is shadowed by the persisted value. Therefore, Shell may report errant transactions when there are none, or fail to report existing errant transactions. It may report that a replica has been left behind (not received transactions which the source has already purged), even if it has not, or it may fail to report that a replica has been left behind even if it has. If we take a freshly initialized data directory from a MySQL 5.7 instance and upgrade it to 8.0, the definition gtid_executed differs from the definition of the same tables, in a freshly initialized datadir of an 8.0 instance. Analysis: ------------ gtid_purged is a variable that tracks server state. Its value is always preserved through server restarts because its value is derived from binary log files and the mysql.gtid_executed table (and SET @@global.gtid_purged maintains this property because it updates mysql.gtid_executed). Fix: ---- Made gtid_purged variable as non-persistant. Reviewed by: Sven Sandberg <[email protected]>, pedro Figueiredo <[email protected]> Change-Id: I78b2d081a1bc7cfc35d2c855901b38e86024feaa
When an APPEND access path is walked with the ENTIRE_TREE walk policy, the traversal stops and its children are never walked. The children are walked only when the walk policy is ENTIRE_QUERY_BLOCK or STOP_AT_MATERIALIZATION. This is incorrect because the expected behaviour is that traversal should continue only if the policy is ENTIRE_TREE. This is fixed by modifying the access path walk to traverse children of an APPEND only if the walk policy is ENTIRE_TREE. Change-Id: Icd2d294589a58ec18f091cbf5088f4c38b587c9a
…ong type This is a regression from bug#32915973. Before this bugfix, with a dynamic parameter that was derived as VARCHAR, and a parameter value with a temporal actual type was supplied, the query was reprepared so that the parameter was given the actual data type. This logic was lost in that bugfix. The solution here is to reinstate that logic. We have also added C API test cases to validate that correct data types are returned. Change-Id: I2448e3f2f36925fe70d882ae5681a6234f0d5a98
…rigger The problem is related to missing propagation of NULL values from the class Arg_comparator to the class Item_func_equal. The general class Item_bool_func2 has an is_nullable() property that is used to signal whether NULL values generated by Arg_comparator should be propagated to it. The Item_func_equal class is a subclass of Item_bool_func2, and is never nullable, however its logic is still depending on being able to read NULL value information from Arg_comparator. The Item_bool_func2 function set_cmp_func() tells Arg_comparator to propagate NULL values only when the function is nullable. This function also works for the class Item_func_equal when called by the resolver, because the is_nullable property is finally set after calling set_cmp_func(). But set_cmp_func() may also be called later, by fold_condition(), when the is_nullable property has been cleared. In this case, NULL value information is not propagated and we end up with wrong results. We go for a simple fix here, by making set_cmp_func() virtual and overriding it for class Item_func_equal by telling Arg_comparator to always propagate NULL values. Change-Id: Icb3aa1c30a6d10a82fe287a9f27f8fdd46087f59
Small improvements to show_rpl_debug_info.inc * Background show_rpl_debug_info.inc is sometimes used by tests to output debug info after a failure. It was written long ago and would benefit from some maintenance now. * Changes - When the file was written, mtr's loop feature only supported loops that iterate in decreasing order. Now it can iterate in increasing order, meaning we can make the output appear in a more natural order. - When the file was written, there was no easy way to show the error log. Now there is performance_schema.error_log. So we print it. - mtr echoes the last 30 lines of the test log to its stdout. Sometimes the full log is deleted and the 30 lines is all information we get. So it would help to put some of the more critical information there, in particular, any errors in the replication threads and the last errors from the error logs. - Use new terminology. - Improve formatting. Change-Id: I64629e5ab2eb89ee06b68518aabf22b9f86810cd
…ck.sql Skip ndb dictionary check before and after mtr testcase run if ndbinfo engine is not enabled since check uses ndbinfo table. Change-Id: I8dadca13e051f05d780ff4262adfd971e1b6aba3
Symptom: rpl_mts_spco_acl_commands_binlog and rpl_mts_spco_acl_commands_nobinlog failed after WL#13469. Analysis: The tests replicates a CREATE USER statement, which is held before committing due to replica-preserve-commit-order. At that point, it holds the metadata lock ACL CACHE in EXCLUSIVE mode. While CREATE USER is in this state, the test executes a number of checks, one of which is a SHOW GLOBAL VARIABLES statement. WL#13469 changed the execution of SHOW GLOBAL VARIABLES so that it needs to take the metadata lock ACL CACHE (in SHARED mode). Therefore, the execution of SHOW GLOBAL VARIABLES blocked the test. Since the test could not proceed, it did not reach the point where it unblocked the applier threads. Eventually the applier threads timed out, which made them stop with an error, and also abort the CREATE USER statement. Aborting CREATE USER also unblocked the SHOW GLOBAL VARIABLES, which allowed the test to proceed. But a little bit later, the test failed since it did not expect an error in the replication threads. Fix: Change the test to use SELECT @@global.variable instead of SHOW GLOBAL VARIABLES LIKE 'variable'. Change-Id: Id6772e2dabbcbd5627c846d5bb3c3cfe2a1279c8
Post push patch for fixing windows crash. Change-Id: I1735e7440525c6d201fb40c90ed15b922e7fc135
This patch fixes the x plugin. Configured with: -DWITH_MEB=0 -DWITHOUT_GROUP_REPLICATION=1 Change-Id: I857e7318f641fc8fb9bc92e8506d71975afde5eb (cherry picked from commit 3ffb476afa35665f072e389ad01142e54a001b6f)
…with failed constraint This patch fixes an inconsistency in the "Rows matched" info message returned from multi-table UPDATE IGNORE statements when some of the updates were rejected by a WITH CHECK OPTION clause in an updatable view. It was fixed for single-table UPDATE in the following bug: Bug#30158954: INCONSISTENT ROWS MATCHED VALUE FOR UPDATE WITH FAILED CONSTRAINT But the inconsistency could still be seen in multi-table UPDATE IGNORE if the updatable view was the first table of the join, and otherwise satisfied the requirements for immediate update. This patch applies the fix from Bug#30158954 to the multi-table code path as well. Change-Id: I042f2ffaa54edad6e5061eadf25a9e30055064c0
The CompressedBackup and CompressedLCP configuration parameter were ignored on Windows, they are now supported. If user had turned any of those on, upgrade will start compress corresponding files and there may be an increase in cpu usage for io threads. To get old behaviour back reconfigure with the compress parameters turned off. Change-Id: I4a3398c46e9ad67a8dbda08d345ffe1db077660d
In ndb_file_win32.cpp do not assume extend function is always called at beginning of file. That was true for raw files but not when using ndbxfrm1 for redo, undo, table space files. Change-Id: I658d5089eaabde18908b3d5b93977900f59db1c2
Fix signed/unsigned warning on Windows. Change-Id: Ife46b3df43698342bf4d3132d0736d15404f7204
Functions should return failure instead. Change-Id: I12bf23d84e83be6d8e3339b00a1f43e403879ce1
…e server to show the user
Description: Added more information to expired
             password error message on error log
RB: 27665
    …995 IN A FILE OPERATION. This specific error is not a hard error. It is an information and subject to retry the operation. It happens whenever a thread posts async IO and decided to close itself. In such case we will: - print only INFO, not ERROR, - immediately repeat the operation (from within the AIO handler thread that learned about the error) - `os_aio_windows_handler` retries the IO operation, but not using the SyncFileIO, which would be triggering an assertion (it can't be used for files opened for AIO), instead we just post another ReadFile/WriteFile to OS. - in `os_aio_windows_handler` a loop is added to handle completions until one succeeds. Change-Id: Id05c06e03d336c5c82ad830965e5dc655e38c989
Additional patch: run bison, to generate parser files run gen_lex_token to generate lex_token.h run gen_keyword_list to generate keyword_list.h Change-Id: I5bda1edf8a62d3d0f747717f71776fd5891429e0 (cherry picked from commit fb16d96c52188755e28feed11e8b5c6bbda4cdae)
Approved-by: Bjorn Munch <[email protected]>
…ss INSTANT DDL Post push fix for memcached test. Reviewed by : Debarun Banerjee <[email protected]>
This problem requires a rather complex set of conditions to trigger: - We have a CTE that is materialized and used in multiple query blocks. - For the first query block that uses the CTE, there are multiple possible key definitions, which causes JOIN::finalize_derived_keys() to move the used key definition into position zero. - The second query block that uses the CTE manipulates an index that uses the same position as the original position for the key chosen for the first query block. Now, the function TABLE::copy_tmp_key() is supposed to move the first key into a position that does not overlap with the subsequent keys. And this is done for the KEY entry, however the associated entries (KEY_PART_INFO, key names and rec per key information) are kept as is, meaning that a subsequent key analysis for another query block may overwrite the information in these data structures, possibly causing invalid results to be returned. The fix is to also move these extra data structures, so that subsequent query block analyses use pristine data structures. The function TABLE::copy_tmp_key() is renamed to TABLE::move_tmp_key(), as this is really a move operation. In addition, old entries are zeroed out so that a later invalid access will likely fail. A synthetic test case is added, as the original case is too complex and contains too much data to be included. Change-Id: I908dca74560d20fecdd886e55cabfcaa348aba4d
Test script fix only, no change in production code. Problem ======= New test perfschema.processlist_reg_user fails on some platforms (Windows). Root cause ========== In tables: - INFORMATION_SCHEMA.PROCESSLIST - performance_schema.processlist the column HOST is printed: - sometime as a hostname - sometime as a hostname and port number This is due to the fact that mysql-test-run.pl connects differently to the server: - sometime using a UNIX socket - sometime using a TCP/IP socket depending of the platform. Fix === Simplify test perfschema.processlist_reg_user to not print the HOST column, so the test results are platform independent. Approved by: Chris Powers <[email protected]>
…ex & deadlock/hang Assignment to the @@session_track_system_variables variable caused a recursive locking of the LOCK_plugin mutex in corner cases. The fix removes an ad-hoc processing of the @@session_track_system_variables from the System_variable_tracker class. Change-Id: I38748f3a6f767ef7023ea40dbfd0c46322c864bf (cherry picked from commit e5b2f18f360ef1ea99ef75a5033d1f4e72c7c088) (cherry picked from commit 053b58cf5c7459aeb47019974ede11609fa54b48)
…ack_service in debug mode List of changes: * Order of LOCK_plugin and LOCK_system_variables_hash has been swapped. * LOCK_system_variables_hash write lock has been downgraded to read lock at get_sysvar_source(). * Session_sysvars_tracker::vars_list::parse_var_list() has been refactored to acquire locks when necessary only and for the whole batch of variable names referenced in @@session_track_system_variables. * @@session_track_system_variables now accepts input values consisting of space characters. This seems logical, since, by the implementation, @@session_track_system_variables always accepted space characters between tracked variable names in its input value (i.e. it silently ignored those space characters). * THD::plugin_lock_recursion_depth has been removed as unnecessary * THD::hash_lock_recursion_depth has been transformed into thread_local static System_variable_tracker::m_hash_lock_recursion_depth, since the latter is specific to threads instead of SQL sessions. * lock_plugin_data(), unlock_plugin_data() calls have been inlined (replaced with mysql_mutex_lock/mysql_mutex_unlock(LOCK_plugin)) for easier grepping of LOCK_plugin occurrences. Change-Id: I8d554f56794888171d59b391bbb2fb22182afafe (cherry picked from commit 6c1fa1ca0d85c6cbbbad81447ccc35ffab7b613f) (cherry picked from commit fc7d4d74e47604b2160903ff4fc0fe165d2ea4f1)
… on PB2 daily runs The issue: after WL14592, if `ident` is a name of some plugin- or component-registered variables, then `SET PERSIST ident` and `RESET PERSIST ident` commands processed the name `ident` unmodified as it was entered by user (i.e. without any normalization e.g. transformation to lowercase or so). Thus, `SET PERSIST IdEnT=...` saved the name "IdEnT" into mysqld-auto.cnf, so `RESET PERSIST iDeNt` failed to recognize that "IdEnT" and "iDeNt" are names of the same variable. The fix forces a lowercase transformation of persisted variable names before saving/removing them to/from mysqld-auto.cnf. Change-Id: Id8182b1e27c27d99c68d5f4f3442508e79f5a441 (cherry picked from commit 7d7323f82a330520402a1770776ef6093faae615)
…ack_service in debug mode Post-push fix: error: unused variable 'LOCK_plugin' [-Werror=unused-variable] Change-Id: I89b1516acb953eb3ed28544569b00153334a8882 (cherry picked from commit e3c526539ee59450b163830e44c57da8656d612e)
…cial package On el6/el7, where -server-debug is not built, nothing obsoletes the community package in commercial upgrade. Add obsolete from -server to -server-debug to fix this. Change-Id: Ic3646fc063c8cf400dfffa4d38859b96e0c44009
…router packages Use of cluster macro was done be assignment Change-Id: I0cf8a9243d2043e60282b971a56cefcfd6d94ad2
…tables_fix.sql fails RB#27762 Fixed a typo in the upgrade script.
Added check that FSOPENCONF signal is only sent locally. Approved by: Frazer Clement <[email protected]>
…be-uninitialized] LTO phase falsely reported error due to Wmaybe-uninitialized in function read_row in NdbInfoScanVirtual.cpp. Change-Id: I7be0e5f6be3ad6015e89df0f5335f7cfc18ca887
  This was referenced Nov 25, 2023 
      
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
      
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
f