Commit graph

72192 commits

Author SHA1 Message Date
Arun Kuruvila
eb79ead4f0 Bug#20318154 : NEGATIVE ARRAY INDEX WRITE V2
Description:- There is a possibility of negative array index
write associated with the function "terminal_writec()". This
is due to the assumption that there is a possibility of
getting -1 return value from the function call
"ct_visual_char()".

Analysis:- The function "terminal_writec()" is called only
from "em_delete_or_list()" and "vi_list_or_eof()" and both
these functions deal with the "^D" (ctrl+D) signal. So the
"size_t len" and "Char c" passed to "ct_visual_char()" (when
called from "terminal_writec()") is always 8 (macro
VISUAL_WIDTH_MAX is passed whose value is 8) and 4 (ASCII
value for "^D"/"ctrl+D") respectively.
Since the value of "c" is 4, "ct_chr_class()" returns -1
(macro CHTYPE_ASCIICTL is associated with -1 value). And
since value of "len" is 8, "ct_visual_char()" will always
return 2 when it is called from "terminal_writec()".
So there is no possible case so that we encounter a negative
array index write in "terminal_writec()". But since there is
a rare posibility of using "terminal_writec()" in future
enhancements, it is good handle the error case as well.

Fix:- A condition is added in "terminal_writec()" to check
whether "ct_visual_char()" is returning -1 or not. If the
return value is -1, then value 0 is returned to its calling
function "em_delete_or_list()" or "vi_list_or_eof()", which
in turn will return CC_ERROR.

NOTE:- No testcase is added since currently there is no
possible scenario to encounter this error case.
2015-04-24 11:30:13 +05:30
V S Murthy Sidagam
6c11fedb5e Bug #16861371 SSL_OP_NO_COMPRESSION NOT DEFINED
post push change: fixing valgrind failures
2015-04-21 09:24:41 +05:30
V S Murthy Sidagam
f07d995799 Bug #16861371 SSL_OP_NO_COMPRESSION NOT DEFINED
post push change: missed the change in mysql-5.5
(Fixing compiler warning/error)
2015-04-20 19:41:50 +05:30
V S Murthy Sidagam
e7ad7f050e Bug #16861371 SSL_OP_NO_COMPRESSION NOT DEFINED
Description:
Can't build mysql-5.5 latest source with openssl 0.9.8e.

Analysis:
Older OpenSSL versions(prior to openssl 1.0) doesn't have 'SSL_OP_NO_COMPRESSION' defined.
Hence the build is failing with SSL_OP_NO_COMPRESSION undeclared.

Fix:
Added a conditonal compilation for 'SSL_OP_NO_COMPRESSION'.
i.e if 'SSL_OP_NO_COMPRESSION' is defined then have the SSL_set_options call for OpenSSL 1.0 versions.
Have sk_SSL_COMP_zero() call for OpenSSL 0.9.8 version
2015-04-20 16:46:36 +05:30
Mauritz Sundell
30c14893c7 Bug#20814396 PB2 IS SECRET ABOUT WHAT UNIT TESTS IT RUN
One can not see in PB2 test logs which unit tests have been run
and passed.

This patchs adds an option --unit-tests-report to mtr which
include the ctest report in mtr output.  It will also turn on unit
testing if not explicitly turned off with --no-unit-tests or
equivalent.

In manual runs one can always look in the ctest.log file in mtr
vardir.

--unit-tests are replaced with --unit-tests-report in files under
mysql-test/collections/ to activate report in PB2.
2015-04-17 14:51:46 +02:00
Tor Didriksen
51d04c4cd9 Bug#20872436 MAKE DIST BY MISTAKE COPIES FILES WITH VARIABLE EXPANSION
Fix typo: s/COPY_ONLY/COPYONLY/g

(cherry picked from commit 034046b4dfe3e6f83e0cf73310884334e0507f06)

Conflicts:
	cmake/make_dist.cmake.in
2015-04-15 13:17:43 +02:00
Bjorn Munch
a8db19ef5f Empty version change upmerge 2015-04-13 13:35:40 +02:00
Bjorn Munch
3300823ca3 Raised version after tagging 5.1.74 (some commits skipped) 2015-04-13 13:34:27 +02:00
Sreeharsha Ramanavarapu
ccde4c5fc2 Merge branch 'mysql-5.1' into mysql-5.5 2015-04-10 08:47:33 +05:30
Sreeharsha Ramanavarapu
d2a5d9716a Bug# 19573096: LOADING CORRUPTED GEOMETRY DATA INTO A
MYISAM TABLE CAUSES THE SERVER TO CRASH

Backport to mysql-5.1
2015-04-10 08:45:57 +05:30
Marko Mäkelä
a3e80aeac8 Bug#20816223 test fix.
Embedded server does not support restarting and needs to skip the test.
2015-04-09 16:43:33 +03:00
Marko Mäkelä
25323de2a4 Bug#20816223 InnoDB crash on shutdown
if XA PREPARE transactions hold explicit locks.

innobase_shutdown_for_mysql(): Call trx_sys_close() before lock_sys_close()
(and dict_close()) so that trx_free_prepared() will see all locks intact.

RB: 8561
Reviewed-by: Vasil Dimov <vasil.dimov@oracle.com>
2015-04-09 08:13:07 +03:00
Marc Alff
7285b4c495 Bug#20788853 MUTEX ISSUE IN SQL/SQL_SHOW.CC RESULTING IN SIG6. SOURCE LIKELY
FILL_VARIABLES

Prevent mutexes used in SHOW VARIABLES from being locked twice.
2015-04-08 07:01:39 +02:00
Balasubramanian Kandasamy
45b51146a9 Merge branch 'mysql-5.5.43-release' into mysql-5.5 2015-04-07 07:44:14 +02:00
aditya
1950628835 Bug #17299181 CREATE_TIME AND UPDATE_TIME ARE WRONG FOR PARTITIONED TABLES
Posty push fix for test case
2015-04-07 09:56:28 +05:30
Nisha
9bacdef10b Merge branch 'mysql-5.1' into mysql-5.5 2015-04-06 14:30:27 +05:30
Nisha
e65f3f6f2e BUG#20754369: BACKPORT BUG#20007583 TO 5.1
Backporting the patch to 5.1 and 5.5
2015-04-06 14:12:15 +05:30
aditya
232d8bbdb1 Bug #17299181 CREATE_TIME AND UPDATE_TIME ARE WRONG FOR PARTITIONED TABLES
PROBLEM

Create time is calculated as last status change time of .frm file.
The first problem was that innodb was passing file name as
"table_name#po#p0.frm" to the stat() call which calculates the create time.
Since there is no frm file with this name create_time will be stored as NULL.
The second problem is ha_partition::info() updates stats for create time
when HA_STATUS_CONST flag was set ,where as innodb calculates this statistic
when HA_STATUS_TIME is set,which causes create_time to be set as NULL.

Fix
Pass proper .frm name to stat() call and calculate create time when
HA_STATUS_CONST flag is set.
2015-04-06 12:27:12 +05:30
V S Murthy Sidagam
c01d13b137 Null Merge branch 'mysql-5.1' into mysql-5.5 2015-03-30 19:23:33 +05:30
V S Murthy Sidagam
85b1289853 Bug #20767962 5.1 SSL TESTS FAILING , GENERATE NEW CERTIFICATES
Description: SSL tests are failing in mysql-5.1 pb2

Analysis: The SSL certificates are ended by jan 2015.
Hence the SSL tests are failing.

Fix: We have generated new certificates with SHA1 algorithm.
2015-03-30 19:20:14 +05:30
Sreeharsha Ramanavarapu
2b345e7a07 Merge branch 'mysql-5.1' into mysql-5.5 2015-03-26 07:42:26 +05:30
Sreeharsha Ramanavarapu
c788e693e6 Bug #20730155: BACKPORT BUG#19699237 TO 5.1
Backport from mysql-5.5 to mysql-5.1

Bug# 19699237: UNINITIALIZED VARIABLE IN
               ITEM_FIELD::STR_RESULT LEADS TO INCORRECT
               BEHAVIOR

ISSUE:
------
When the following conditions are satisfied in a query, a
server crash occurs:
a) Two rows are compared using a NULL-safe equal-to operator.
b) Each of these rows belong to different charsets.

SOLUTION:
---------
When one charset is converted to another for comparision,
the constructor of "Item_func_conv_charset" is called.
This will attempt to use the Item_cache if the string is a
constant. This check succeeds because the "used_table_map"
of the Item_cache class is never set to the correct value.
Since it is mistakenly assumed to be a constant, it tries
to fetch the relevant null value related fields which are
yet to be initialized. This results in valgrind issues
and wrong results.

The fix is to update the "used_table_map" of "Item_cache".
This will allow "Item_func_conv_charset" to realise that
this is not a constant.
2015-03-26 07:40:35 +05:30
Vamsikrishna Bhagi
dee4158ff3 Null Merge branch 'mysql-5.1' into mysql-5.5 2015-03-25 15:31:04 +05:30
Vamsikrishna Bhagi
3c02e6ec2e Bug# 20730103 BACKPORT 19688008 TO 5.1
Problem: UDF doesn't handle the arguments properly when they
         are of string type due to a misplaced break.
         The length of arguments is also not set properly
         when the argument is NULL.

Solution: Fixed the code by putting the break at right place
          and setting the argument length to zero when the
          argument is NULL.
2015-03-25 15:28:55 +05:30
Balasubramanian Kandasamy
4409bc9d9e Bug#20734434 - SPELLING ERROR \"EMDEDDED\" IN RPM SPEC FILES
- Updated emdedded to embedded
2015-03-24 12:55:43 +01:00
Thirunarayanan Balathandayuthapani
f8eacccf2a Bug#20422680 BUF_POOL_WATCH_SET WOULD CRASH TRYING
TO USE A SECOND WATCH PAGE PER INSTANCE

Description:
	BUF_POOL_WATCH_SIZE is also initialized to number of purge threads.
so BUF_POOL_WATCH_SIZE will never be lesser than number of purge threads.
From the code, there is no scope for purge thread to skip buf_pool_watch_unset.
So there can be at most one buffer pool watch active per purge thread.
In other words, there is no chance for purge thread instance to hold a watch
when setting another watch.

Solution:
	Adding code comments to clarify the issue.

Reviewed-by: Marko Mäkelä <marko.makela@oracle.com>
Approved via Bug page.
2015-03-24 14:09:18 +05:30
Chaithra Gopalareddy
26e845c19d Merge branch 'mysql-5.1' into mysql-5.5 2015-03-23 14:33:36 +05:30
Chaithra Gopalareddy
044060fe16 Bug #20730220 : BACKPORT BUG#19880368 TO 5.1
Backport from mysql-5.5 to mysql-5.1

Bug#19880368 : GROUP_CONCAT CRASHES AFTER DUMP_LEAF_KEY

Problem:
find_order_by_list does not update the address of order_item
correctly after resolving.

Solution:
Change the ref_by address for a order_by field if its
SUM_FUNC_ITEM to the address of the field present in
all_fields.
2015-03-23 14:31:28 +05:30
Chaithra Gopalareddy
7a361a2758 Merge branch 'mysql-5.1' into mysql-5.5 2015-03-23 12:07:18 +05:30
Chaithra Gopalareddy
a2cd622f3a Bug #20730129: BACKPORT BUG#19612819 TO 5.1
Backport from mysql-5.5 to mysql-5.1

Bug #19612819 :  FILESORT: ASSERTION FAILED: POS->FIELD != 0 || POS->ITEM != 0

Problem:
While getting the temp table field for a REF_ITEM
make_sortorder is using the real_item. As a result
server fails later with an assert.

Solution:
Do not use real_item to get the temp table field.
Instead use the REF_ITEM itself as temp table fields
are created for REF_ITEM not the real_item.
2015-03-23 12:05:55 +05:30
Sreeharsha Ramanavarapu
b7bdea944d Bug# 19573096: LOADING CORRUPTED GEOMETRY DATA INTO A
MYISAM TABLE CAUSES THE SERVER TO CRASH

Issue:
-----
During index maintanence, R-tree node might need a split.
In some cases the square of mbr could be calculated to
infinite (as in this case) or to NaN. This is currently
not handled. This is specific to MyISAM.

SOLUTION:
---------
If the calculated value in "mbr_join_square" is infinite or
NaN, set it to max double value.

Initialization of output parameters of "pick_seeds" is
required if calculation is infinite (or negative infinite).

Similar to the fix made for INNODB as part of Bug#19533996.
2015-03-23 08:49:26 +05:30
Jon Olav Hauglid
120907c0a2 Merge branch 'mysql-5.1' into mysql-5.5
Conflicts:
	mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic.result
	mysql-test/suite/sys_vars/r/transaction_prealloc_size_basic.result
	mysql-test/suite/sys_vars/t/transaction_alloc_block_size_basic.test
	mysql-test/suite/sys_vars/t/transaction_prealloc_size_basic.test
	sql/mysqld.cc
2015-03-19 12:50:16 +01:00
Jon Olav Hauglid
c7581bb5a1 Bug#20730053: BACKPORT BUG#19770858 TO 5.1
Backport from mysql-5.5 to mysql-5.1 of:

Bug19770858: MYSQLD CAN BE DRIVEN TO OOM WITH TWO SIMPLE SESSION VARS

The problem was that the maximum value of the transaction_prealloc_size
session system variable was ULONG_MAX which meant that it was possible
to cause the server to allocate excessive amounts of memory.

This patch fixes the problem by reducing the maxmimum value of
transaction_prealloc_size and transaction_alloc_block_size down
to 128K.

Note that transactions will still be able to allocate more than
128K if needed, this patch just reduces the amount that can be
preallocated - as well as the maximum size of the incremental
allocation blocks.

(cherry picked from commit 540c9f7ebb428bbf9ec028feabe1f7f919fdefd9)

Conflicts:
	mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic.result
	mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic_64.result
	mysql-test/suite/sys_vars/t/disabled.def
	mysql-test/suite/sys_vars/t/transaction_alloc_block_size_basic.test
	sql/sys_vars.cc
2015-03-19 11:29:13 +01:00
Venkatesh Duggirala
59142d9a27 Bug #20439913 CREATE TABLE DB.TABLE LIKE TMPTABLE IS
BINLOGGED INCORRECTLY - BREAKS A SLAVE

Submitted a incomplete patch with my previous push,
re submitting the extra changes the required to make
the patch complete.
2015-03-13 13:13:48 +05:30
Venkatesh Duggirala
151b8ec4d1 Bug #20439913 CREATE TABLE DB.TABLE LIKE TMPTABLE IS BINLOGGED INCORRECTLY - BREAKS A SLAVE
Analysis:
In row based replication, Master does not send temp table information
to Slave. If there are any DDLs that involves in regular table that needs
to be sent to Slave and a temp tables (which will not be available at Slave),
the Master rewrites the query replacing temp table with it's defintion.
Eg: create table regular_table like temptable.
In rewrite logic, server is ignoring the database of regular table
which can cause problems mentioned in this bug.

Fix: dont ignore database information (if available) while
rewriting the query
2015-03-13 12:32:44 +05:30
Sreeharsha Ramanavarapu
96974ea7ca Revert "Bug #19573096: LOADING CORRUPTED GEOMETRY DATA INTO A"
This reverts commit c7de768ec20f5167cff2c69a255d95ca2eded46a.
2015-03-11 16:07:49 +05:30
Thirunarayanan Balathandayuthapani
48869fceba Bug #20417397 MYSQL SHOW ENGINE INNODB STATUS SHOWING NEGATIVE
RESERVATION AND SIGNAL COUNT

Problem:
	Reservation and Signal count value shows negative value for show engine
innodb statement.

Solution:
	This is happening due to counter overflow error. Reservation and Signal
count values are defined as unsigned long but these variables are converted to
long while printing it. Change Reservation and Signal count values as unsigned
long datatype while printing it.

Reviewed-by: Marko Mäkelä <marko.makela@oracle.com>
Approved in bug page.
2015-03-11 15:17:35 +05:30
Sreeharsha Ramanavarapu
54d23eceb7 Bug #19573096: LOADING CORRUPTED GEOMETRY DATA INTO A
MYISAM TABLE CAUSES THE SERVER TO CRASH

Issue:
-----
During index maintanence, R-tree node might need a split.
In some cases the square of mbr could be calculated to
infinite (as in this case) or to NaN. This is currently
not handled. This is specific to MyISAM.

SOLUTION:
---------
If the calculated value in "mbr_join_square" is infinite or
NaN, set it to max double value.

Initialization of output parameters of "pick_seeds" is
required if calculation is infinite (or negative infinite).

Similar to the fix made for INNODB as part of Bug#19533996.
2015-03-11 11:18:52 +05:30
Annamalai Gurusami
98b18c5971 Bug #20442523 CRASH WHEN CREATE TABLE VIOLATES FOREIGN KEY CONSTRAINT
Problem:

This is a coding mistake during error handling.  When the specified foreign
key constraint is wrong because of data type mismatch, the resulting
foreign key object will not have valid foreign->id (it will be NULL.)

Solution:

While removing the foreign key object from dictionary cache during error
handling, ensure that foreign->id is not null before using it.

rb#8204 approved by Sunny.
2015-03-03 17:57:08 +05:30
Terje Røsten
ffa7ae1c6e BUG#19811871 VERSION NUMBR NOT SHOWN IN LOG WHEN [RE]STARTING 5.6.21 SERVICE WITH SLES11 REPO
Log file directory had too strict access rights, server not able
to write to log file.

Signed-off-by: Terje Røsten <terje.rosten@oracle.com>
2015-03-01 18:22:28 +01:00
Balasubramanian Kandasamy
96348ab821 BUG#20477758 CONFLICTS WHILE INSTALLING COMMUNITY PACKAGES
Due to large version numbers used libmysqlclient-devel packages was
not considered for install. Fixed by removing version check.
2015-03-01 17:56:49 +01:00
Terje Røsten
e02fe87f00 BUG#19811871 VERSION NUMBR NOT SHOWN IN LOG WHEN [RE]STARTING 5.6.21 SERVICE WITH SLES11 REPO
Log file directory had too strict access rights, server not able
to write to log file.

Signed-off-by: Terje Røsten <terje.rosten@oracle.com>
2015-02-27 09:14:35 +01:00
Terje Røsten
1e16303375 BUG#20477758 CONFLICTS WHILE INSTALLING COMMUNITY PACKAGES WHEN MARIADB, LIB FILES INSTALLED
Due to large version numbers used libmysqlclient-devel packages was
not considered for install. Fixed by removing version check.

Signed-off-by: Terje Røsten <terje.rosten@oracle.com>
2015-02-27 09:14:28 +01:00
Balasubramanian Kandasamy
f922bb745a Updated copyright information 2015-02-27 09:13:18 +01:00
Chaithra Gopalareddy
08763096cb Bug #19814337 - SERVER CRASHES IN ITEM_FUNC_GROUP_CONCAT::FIX_FIELDS ON
3RD EXECUTION OF PS

Problem:
When order by is by a column number for a group concat function
which has an outer reference, server fails in case of prepared
statements on the third execution

Analysis:
When a group concat function has order by, the fields in order by
are not resolved until execution if the input is a column number.
During execution they get resolved after the temp table gets created.
As a result they will be pointing to temp table fields which are
runtime created objects. This results in dangling pointers leading
to server failure.

Solution:
Reset the pointers for the order by fields to point to the original
arguments after execution as they are invalid.
Done in Item_func_group_concat::cleanup.
2015-02-26 09:59:00 +05:30
Mithun C Y
2e3c2cd362 Bug #20049521: CRASH IN MERGE_BUFFERS FILESORT.C WHEN INNODB WITH ORDER BY.
ISSUE:
------
There can be up to MERGEBUFF2 number of sorted merge chunks,
We need enough buffer space for at least one record from
each merge chunks. If estimates are wrong(very low) and we
allocate buffer space for less than MERGEBUFF2, then we will
have issue in merge_buffers, if actual number of rows to be
sorted is bigger than estimate and external filesort is
chosen.

SOLUTION:
---------
Set number of rows to sort to be at least MERGEBUFF2.
2015-02-25 11:44:19 +05:30
Vishal Chaudhary
cd81a71943 Raise version number after cloning 5.5.43 2015-02-24 12:09:58 +01:00
Chaithra Gopalareddy
674367afd5 Bug#19880368 : GROUP_CONCAT CRASHES AFTER DUMP_LEAF_KEY
Problem:
find_order_by_list does not update the address of order_item
correctly after resolving.

Solution:
Change the ref_by address for a order_by field if its
SUM_FUNC_ITEM to the address of the field present in
all_fields.
2015-02-20 11:04:43 +05:30
Chaithra Gopalareddy
1a5b8122b6 Bug #19612819 : FILESORT: ASSERTION FAILED: POS->FIELD != 0 || POS->ITEM != 0
Problem:
While getting the temp table field for a REF_ITEM
make_sortorder is using the real_item. As a result
server fails later with an assert.

Solution:
Do not use real_item to get the temp table field.
Instead use the REF_ITEM itself as temp table fields
are created for REF_ITEM not the real_item.
2015-02-18 22:28:03 +05:30
Praveenkumar.Hulakund
ddd275bde7 Bug#20052694 - FAILED RESTARTS CONTAIN NO VERSION DETAILS.
In versions 5.5 and 5.6 the MySQL version is not logged until
server is started and ready to accept connections. Exiting
server before this point will not have server version information
in the log. But in 5.7 code, we log a server version information
just after we prepare server_version string and logging is initialized.

For 5.5 and 5.6 code also adding this code to print server version
information.

Test results:
================

5.5
-----
Server version will be logged as below on server startup:
141218  8:45:48 [Note] /home/praveen/WorkDir/mysql_local/bug20052694/mysql/sql/mysqld (mysqld 5.5.42-debug-log) starting as process 19697 ...

5.6
----
Server version will be logged as below on server startup:
2014-12-18 09:08:43 0 [Note] /home/praveen/WorkDir/mysql_local/bug20052694/mysql-5.6/sql/mysqld (mysqld 5.6.23-debug-log) starting as process 18474 ...
2015-02-06 11:09:08 +05:30