summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Bug#19890133 MAKE DIST USING BZR EXPORT EVEN FOR SOURCE DIR NOT A BZR REPOTor Didriksen2014-11-114-23/+66
| | | | | For 'make dist': only use 'bzr export' if bzr root == ${CMAKE_SOURCE_DIR} Same thing for git.
* Bug#17599258:- ERROR 1160 (08S01): GOT AN ERROR WRITINGArun Kuruvila2014-11-102-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | COMMUNICATION PACKETS; FEDERATED TABLE Description:- Execution of FLUSH TABLES on a federated table which has been idle for wait_timeout (on the remote server) + tcp_keepalive_time, fails with an error, "ERROR 1160 (08S01): Got an error writing communication packets." Analysis:- During FLUSH TABLE execution the federated table is closed which will inturn close the federated connection. While closing the connection, federated server tries to communincate with the remote server. Since the connection was idle for wait_timeout(on the remote server)+ tcp_keepalive_time, the socket gets closed. So this communication fails because of broken pipe and the error is thrown. But federated connections are expected to reconnect silently. And also it cannot reconnect because the "auto_reconnect" variable is set to 0 in "mysql_close()". Fix:- Before closing the federated connection, in "ha_federated_close()", a check is added which will verify wheather the connection is alive or not. If the connection is not alive, then "mysql->net.error" is set to 2 which will indicate that the connetion is broken. Also the setting of "auto_reconnect" variable to 0 is delayed and is done after "COM_QUIT" command. NOTE:- For reproducing this issue, "tcp_keepalive_time" has to be set to a smaller value. This value is set in the "/proc/sys/net/ipv4/tcp_keepalive_time" file in Unix systems. So we need root permission for changing it, which can't be done through mtr test. So submitting the patch without mtr test.
* Bug#19974500: SERVER 5.5 / DEBUG DOESN\'T COMPILE WITH GCC 4.9.1Jon Olav Hauglid2014-11-061-1/+1
| | | | | | | | | | | | Fix broken gcc 4.9.1 debug build by removing end of line noise. In 5.6+ this issue was already fixed by: ------------------------------------------------------------ revno: 3091 committer: Davi Arnaut <davi.arnaut@oracle.com> branch nick: mysql-trunk timestamp: Mon 2011-05-16 11:30:54 -0300 message: Fix warnings emitted by Clang.
* Bug #18957951 RPMBUILD DEPENDENCY SCANNER ADDS DEPENDENCY ON NON-EXISTING ↵Kent Boortz2014-11-062-4/+4
| | | | | | | | | | PERL "HOSTNAMES" When building RPMs and using the "rpmbuild" automatic scanning for Perl dependencies, it might interpret "use hostnames" in the "mysql_config.pl" script usage comment as a Perl "use" statement. And then makes the resulting RPMs depends on a non-existing module Perl "hostnames". The comment was changed to prevent this.
* Bug #19815702 TIS620: CRASH WITH MULTI TABLE DELETEThirunarayanan B2014-11-043-4/+24
| | | | | | | | Description: Using correct length when moving to next field in cmp_ref. The store length already includes the length bytes of blobs, which is already considered earlier for blob types. Approved by Mattias, Jimmy [rb-7088]
* Added sles11 repo packagesBalasubramanian Kandasamy2014-11-0411-0/+2099
|
* Raise version number after cloning 5.5.41balasubramanian.kandasamy@oracle.com2014-11-031-1/+1
|
* Bug #19372926 : 5.5.38 FAILS FUNC_MATH MTR TEST.mithun2014-11-032-3/+10
| | | | | | | | | | | | Issue : ------- This seems for some platform -(LONGLONG_MIN) is not flagged as out of range. Fix: ---- Fix is backported from mysql-5.6 bug 14314156. Fixed by adding an explicit test for this value in Item_func_neg::int_op().
* Bug#19904003 INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG=1 CAUSES INFINITE PAGE SPLITMarko Makela2014-10-303-2/+29
| | | | | | | | | The debug configuration parameter innodb_optimistic_insert_debug which was introduced for testing corner cases in B-tree handling had a bug in it. The value 1 would trigger an infinite sequence of page splits. Fix: When the value 1 is specified, disable this debug feature. Approved by Yasufumi Kinoshita
* Bug #19908343 SERVER CRASHES WHEN EXECUTING ALTER TABLEAnnamalai Gurusami2014-10-291-2/+15
| | | | | | | | | | | | | | | | | Problem: In the function dict_foreign_remove_from_cache(), the rb tree was updated without actually verifying whether the given foreign key object is there in the rb tree or not. There can be an existing foreign key object with the same id in the rb tree, which must not be removed. Such a scenario comes when an attempt is made to add a foreign key object with a duplicate identifier. Solution: When the foreign key object is removed from the dictionary cache, ensure that the foreign key object removed from the rbt is the correct one. rb#7168 approved by Jimmy and Marko.
* Bug#19584379 Reporting corruption may corrupt the innodb data dictionaryMarko Makela2014-10-273-5/+12
| | | | | | | | | | | dict_set_corrupted(): Use the canonical way of searching for less-than-equal (PAGE_CUR_LE) and then checking low_match. The code that was introduced in MySQL 5.5.17 in Bug#11830883 SUPPORT "CORRUPTED" BIT FOR INNODB TABLES AND INDEXES could position the cursor on the page supremum, and then attempt to overwrite non-existing 7th field of the 1-field supremum record. Approved by Jimmy Yang
* Rpm 4.9 and newer is more strict regarding weekday in %changelogBalasubramanian Kandasamy2014-10-231-12/+12
|
* Fix changelog entries build failureBalasubramanian Kandasamy2014-10-211-0/+2
|
* Bug#19775856: When the socket option is relative, mysqld startup script ↵Balasubramanian Kandasamy2014-10-212-5/+25
| | | | fails on CentOS 6
* Bug #16581605: REPLACE.EXE UTILITY IS BROKEN IN 5.5Arun Kuruvila2014-10-214-2/+31
| | | | | | | | | | | | | | | Description:- Replace, the string replacement utility fails on the windows platform. Analysis:- The utility takes files and multiple string pairs as input. In the windows platform, the utility maps the standard input incorrectly (Considers 0 as the fd for standard input instead of 2048 on windows). Hence when the input file is supplied to the utility due to the incorrect mapping, a bad file descriptor error is generated causing the utility to exit with an error. Fix:- "my_fileno()" is used for getting the correct file despscriptor for standard input.
* The test case innodb.foreign-keys is failing in pb2 5.5. This is becauseAnnamalai Gurusami2014-10-202-4/+4
| | | | | | | | | some of the tables are created in InnoDB and some tables are created in MyISAM. We need to create all tables on InnoDB. Fix is to add engine=innodb to the CREATE TABLE statements. approved in IM by Marko and Vasil.
* Bug #14486004 MYSQL_SETPERMISSION DOES NOT QUOTE USER NAMESArun Kuruvila2014-10-171-3/+3
| | | | | | | | | | | | | | | | | | Description: Certain operations using the client tool 'mysql\_setpermisson' which uses username of the format "xxx-yyy" results in a syntax error. Analysis: The user name variable ( $user ) was not quoted properly in the 'mysql\_setpermission' script. As a result, while granting user privileges for a user with username of the format 'xxx-yyy', results in a syntax error. Fix: The escape sequence has been applied for the user variable in the script file. Note: Test case is not added for this fix. 'mysql\_setpermission' executable resides in different directories on pb2 machines and on local boxes. Hence the test case cannot be made generic.
* Bug#17633291: SET PROPER COMPILE OPTIONS FOR CLANGJon Olav Hauglid2014-10-1313-117/+187
| | | | | | | Bug#17959689: MAKE GCC AND CLANG GIVE CONSISTENT COMPILATION WARNINGS Bug#18313717: ENABLE -WERROR IN MAINTANER MODE WHEN COMPILING WITH CLANG Bug#18510941: REMOVE CMAKE WORKAROUNDS FOR OLDER VERSIONS OF OS X/XCODE Backport from mysql-5.6 to mysql-5.5
* Bug #18808072 MYSQLBINLOG USES LOCALTIME() TO PRINT EVENTS, CAUSES KERNEL ↵Venkatesh Duggirala2014-10-085-35/+19
| | | | | | | | | | | | | | | | | | | | | MUTEX CONTENTION Problem: For every event read, mysqlbinlog calls localtime() which in turn calls stat(/etc/localtime) which is causing kernel mutex contention. Analysis and Fix: localtime() calls stat(/etc/localtime) for every instance of the call where as localtime_r() the reentrant version was optimized to store the read only tz internal structure. Hence it will not call stat(/etc/localtime). It will call only once at the beginning. The mysql server is calling localtime_r() and mysqlbinlog tool is one place where we are still using localtime(). Once the process (mysqlbinlog) is started if timezone is changed it will be not picked up the the process and it will continue with the same values as the beginning of the process. This behavior is in-lined with mysql server. Also adding localtime_r() and gmtime_r() support for windows.
* Bug#19145698: READ OUT OF BOUNDS ISSUESujatha Sivakumar2014-10-082-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ======== In a master slave replication if a slave receives a Start_log_event_v3 the payload is expected to be of fixed size. If a payload which is smaller than the fixed size is received it causes a read out of bounds issue. Analysis: ======== According to documentation the fixed data part of Start_log_event_v3 looks as shown below. 2 bytes: The binary log format version 50 bytes: The MySQL server's version 4 bytes: Timestamp in seconds when this event was created Since the payload is expected to be of fixed size, therefore ST_SERVER_VER_LEN (50) bytes are memcpy'ed into server_version. But if a malicious master sends a shorter payload it causes a read out of bounds issue. Fix: === In Start_log_event_v3 event's constructor a check has been added which expects the minimum payload length to be of size common_header_len + ST_COMMON_HEADER_LEN_OFFSET bytes. If a malicious packet of lesser length is received it will be considered as an invalid event.
* Create .gitignore as a copy of .bzrignoreJon Olav Hauglid2014-10-061-0/+3071
|
* Bug#19553099 EXPIRE_LOGS_DAYS=1 CRASH MYSQLD DURING RESTART, DBUG_SYNC(NULL, ↵magnus.blaudd@oracle.com2014-10-021-1/+4
| | | | | | | ...) - Restarting mysqld with --expire-log-days=1 triggers 'log_in_use()' to be called while current_thd is NULL. - Check current_thd before calling DEBUG_SYNC() to avoid passing NULL pointer to DEBUG_SYNC() - Wrap debug code construct inside #ifndef DBUG_OFF like in other parts of the file
* Bug#19695101 UPGRADE YASSL TO 2.3.5Kristofer Pettersson2014-09-293-2/+11
|
* Bug #18964545 - ADD MTR SUPPORT FOR DEBUGGING WITH LLDB revertSayantan Dutta2014-09-261-45/+6
|
* Bug #15868071 USING SET GLOBAL SQL_LOG_BIN SHOULD NOT BE ALLOWEDBill Qu2014-09-246-26/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Normally, SET SESSION SQL_LOG_BIN is used by DBAs to run a non-conflicting command locally only, ensuring it does not get replicated. Setting GLOBAL SQL_LOG_BIN would not require all sessions to disconnect. When SQL_LOG_BIN is changed globally, it does not immediately take effect for any sessions. It takes effect by becoming the session-level default inherited at the start of each new session, and this setting is kept and cached for the duration of that session. Setting it intentionally is unlikely to have a useful effect under any circumstance; setting it unintentionally, such as while intending to use SET [SESSION] is potentially disastrous. Accidentally using SET GLOBAL SQL_LOG_BIN will not show an immediate effect to the user, instead not having the desired session-level effect, and thus causing other potential problems with local-only maintenance being binlogged and executed on slaves; And transactions from new sessions (after SQL_LOG_BIN is changed globally) are not binlogged and replicated, which would result in irrecoverable or difficult data loss. This is the regular GLOBAL variables way to work, but in replication context it does not look right on a working server (with connected sessions) 'set global sql_log_bin' and none of that connections is affected. Unexperienced DBA after noticing that the command did "nothing" will change the session var and most probably won't unset the global var, causing new sessions to not be binlog. Setting GLOBAL SQL_LOG_BIN allows DBA to stop binlogging on all new sessions, which can be used to make a server "replication read-only" without restarting the server. But this has such big requirements, stop all existing connections, that it is more likely to make a mess, it is too risky to allow the GLOBAL variable. The statement 'SET GLOBAL SQL_LOG_BIN=N' will produce an error in 5.5, 5.6 and 5.7. Reading the GLOBAL SQL_LOG_BIN will produce a deprecation warning in 5.7.
* Merge from mysql-5.5.40-releasemurthy.narkedimilli@oracle.com2014-09-232-0/+42
|\
| * Adding patch for security bug 19471516Murthy Narkedimilli2014-09-083-0/+52
| |
| * Applying the patch to remove WL#7219 which was by mistake included by the ↵Murthy Narkedimilli2014-09-051-1/+1
| | | | | | | | dev team.
| * Renaming the enterprise packages to commercialMurthy Narkedimilli2014-08-261-14/+14
| |
* | Bug #19306524 FAILING ASSERTION WITH TEMP TABLE FOR A PROCEDURE CALLEDAnnamalai Gurusami2014-09-186-4/+406
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FROM A FUNCTION Scenario: In a stored procedure, CREATE TABLE statement is not allowed. But an exception is provided for CREATE TEMPORARY TABLE. We can create a temporary table in a stored procedure. Let there be two stored functions f1 and f2 and two stored procedures p1 and p2. Their properties are as follows: . stored function f1() calls stored procedure p1(). . stored function f2() calls stored procedure p2(). . stored procedure p1() creates temporary table t1. . stored procedure p2() does DML on t1. Consider the following situation: 1. Autocommit mode is on. 2. select f1() 3. select f2() Step 2: In this step, t1 would be created via p1(). A table level transaction lock would have been taken. The ::external_lock() would not have been called on this table. At the end of step 2, because of autocommit mode on, this table level lock will be released. Step 3: When we execute DML on table t1 via p2() we have two problems: Problem 1: The function ha_innobase::external_lock() would have been called but since it is a select query no table level locks would have been taken. Hence the following assert will fail: ut_ad(lock_table_has(thr_get_trx(thr), index->table, LOCK_IX)); Solution: The solution would be to identify this situation and take a table level lock and use the proper lock type prebuilt->select_lock_type = LOCK_X for DML operations. Problem 2: Another problem is that in step 3, ha_innobase::open() is never called on the table t1. Solution: The solution would be to identify this situation and call re-init the handler of table t1. rb#6429 approved by Krunal.
* | Bug #17852083 PRINT A WARNING WHEN DDL HAS AN ERROR IN INNODB_STRICT_MODE = 1Annamalai Gurusami2014-09-174-4/+532
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Creation of a table fails when innodb_strict_mode is enabled, but the same table is created without any warning when innodb_strict_mode is enabled. Solution: If creation of a table fails with an error when innodb_strict_mode is enabled, it must issue a warning when innodb_strict_mode is disabled. rb#6723 approved by Krunal.
* | Bug#19070633 - POSSIBLE ACCESS TO FREED MEMORY IN IS_FREE_LOCK()Praveenkumar Hulakund2014-09-163-8/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AND IS_USED_LOCK(). Analysis: ----------- In functions Item_func_is_free_lock::val_int() and Item_func_is_used_lock::val_int(), for the specified user lock name, pointer to its "User_level_lock" object is obtained from hash "hash_user_locks". Mutex "LOCK_user_locks" is acquired for this and released immediately. And we are accessing members of User_level_lock after releasing the mutex. If same user lock is deleted(released) from concurrent thread then accessing members results in invalid(freed) memory access issue. Deleting of user lock is also protected from the mutex "LOCK_user_locks". Since this mutex is released in "val_int" functions mentioned above, delete operation proceeds while concurrent thread tries to access its members. With the test case, valgrind reports invalid read issues in val_int functions. Fix: ----------- To fix this issue, in "val_int" function of classes "Item_func_is_free_lock" and "Item_func_is_used_lock", now releasing mutex "LOCK_user_locks" after accessing User_level_lock members.
* | Bug #18964545 ADD MTR SUPPORT FOR DEBUGGING WITH LLDBSayantan Dutta2014-09-111-11/+50
| |
* | (no commit message)mysql-builder@oracle.com2014-09-110-0/+0
| |
* | Bug#18790730 - CROSS-DATABASE FOREIGN KEY WITHOUT PERMISSIONSPraveenkumar Hulakund2014-09-105-2/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CHECK. Analysis: ---------- Issue here is, while creating or altering the InnoDB table, if the foreign key defined on the table references a parent table on which the user has no access privileges then the table is created without reporting any error. Currently the privilege level REFERENCES_ACL is unused and is not used for access evaluation while creating the table with a foreign key constraint or adding the foreign key constraint to a table. But when no privileges are granted to user then also access evaluation on parent table is ignored. Fix: --------- For DMLs, irrelevant of the fact, support does not want any changes to avoid permission checks on every operation. So, as a fix, added a function "check_fk_parent_table_access" to check whether any of the SELECT_ACL, INSERT_ACL, UDPATE_ACL, DELETE_ACL or REFERENCE_ACL privileges are granted for user at table level. If none of them is granted then error is reported. This function is called during the table creation and alter operation.
* | removed WL7219: Audit Log Filtering from mysql-5.5.Ramil Kalimullin2014-09-051-1/+1
| |
* | Bug #19361317 - --MANUAL-GDB EFFECTIVELY TRUNCATES OPTION FILE ARGS AT FIRST ↵Sayantan Dutta2014-09-031-8/+21
| | | | | | | | SEMICOLON
* | Bug #19361402 - ADD --MANUAL-LLDB OPTION TO MYSQL-TEST-RUN.PL, contributedSayantan Dutta2014-09-022-3/+39
| |
* | Bug#19145712 USER AFTER FREE / DOUBLE FREE ISSUEVenkatesh Duggirala2014-08-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: A corrupted header length in FORMAT_DESCRIPTION_LOG_EVENT can cause server to crash. Analysis: FORMAT_DESCRIPTION_EVENT will be considered invalid if header len is too small (i.e. below OLD_HEADER_LEN). Format_description_log_event:: Format_description_log_event(...) { ... if ((common_header_len=buf[ST_COMMON_HEADER_LEN_OFFSET]) < OLD_HEADER_LEN) DBUG_VOID_RETURN; /* sanity check */ ... post_header_len= my_memdup(...) } In that case Format_description_log_event constructor will return early, without allocating any memory for post_header_len. Thence this variable is left uninitialized and making server to crash when server is trying to free the uninitialized value. Fix: When Format_description_log_event constructor returns early, assign NULL to post_header_len.
* | Update copyright text.Alexander Nozdrin2014-08-281-0/+3
| |
* | Changing the copyright headers a bit to be complaint with the standardsMurthy Narkedimilli2014-08-273-3/+3
| |
* | Rename enterprise repo packages to commercialBalasubramanian Kandasamy2014-08-261-14/+14
| |
* | (no commit message)mysql-builder@oracle.com2014-08-260-0/+0
| |
* | Bug #19471516 SERVER CRASHES WHEN EXECUTING ALTER TABLE ADD FOREIGN KEYAnnamalai Gurusami2014-08-253-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: We maintain two rb trees in each dict_table_t. The foreign_rbt must be in sync with foreign_list. The referenced_rbt must be in sync with referenced_list. There is one function which checks this consistency and it failed, resulting in an assert failure. The root cause of the problem was identified that the search order was lost in the referenced_rbt. This is because while renaming the table, we didn't not refresh this referenced_rbt. Solution: When a foreign key is renamed, we must delete and re-insert into both foreign_rbt and referenced_rbt. rb#6412 approved by Jimmy.
* | Raise version number after cloning 5.5.40murthy.narkedimilli@oracle.com2014-08-251-1/+1
|/
* Bug#19370676 : YASSL PRE-AUTH BUFFER OVERFLOW WHEN CLIENTHarin Vadodaria2014-08-2338-438/+717
| | | | | | | | LIES ABOUT SUITE_LEN_ and Bug#19355577 : YASSL PRE-AUTH BUFFER OVERFLOW WHEN CLIENT LIES ABOUT COMP_LEN_ Description : Updating yaSSL to version 2.3.4.
* Bug#18928848 II. MALLOC OF UNINITIALIZED MEMORY SIZETor Didriksen2014-08-211-3/+14
| | | | | | | | | Several string functions have optimizations for constant sub-expressions which lead to setting max_length == 0. For subqueries, where we need a temporary table to holde the result, we need to ensure that we use a VARCHAR(0) column rather than a CHAR(0) column when such expressions take part in grouping. With CHAR(0) end_update() may write garbage into the next field.
* Add my.cnf.d to regular rpm for EL7 buildBalasubramanian Kandasamy2014-08-201-1/+6
|\
| * Corrected typoBalasubramanian Kandasamy2014-08-121-1/+1
| |
| * Experimental testingBalasubramanian Kandasamy2014-08-121-1/+2
| |