Fix for server hang bug
mysql-test/r/heap.result:
Bug#4411
Test for server hang bug
mysql-test/t/heap.test:
Bug#4411
Test for server hang bug
sql/opt_sum.cc:
Bug#4411
Allow code to exit the loop.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
- Changed the default log file name to Bootstrap-<repository>.log
(e.g. Bootstrap-mysql-4.0.log) (thanks to Joerg for the hint)
- added option "--archive-log" to automatically move the log file
into the Log directory of the exported tree
Build-tools/Bootstrap:
- Changed the default log file name to Bootstrap-<repository>.log
(e.g. Bootstrap-mysql-4.0.log) (thanks to Joerg for the hint)
- added option "--archive-log" to automatically move the log file
into the Log directory of the exported tree
innobase/include/os0file.h:
Improve the comment of os_file_create_tmpfile()
innobase/os/os0file.c:
os_file_create_tmpfile(): Use create_temp_file()
via innobase_mysql_tmpfile() unless UNIV_HOTBACKUP is defined
sql/ha_innodb.cc:
Added innobase_mysql_tmpfile(), a wrapper around create_temp_file()
Solved performance problems by enabling write buffer.
sql/sql_select.cc:
bug#4497 - Serious regression if disk based TMP table is used.
Solved performance problems by enabling write buffer.
Supplied no test case, as it required too much data to see the performance regression.
InnoDB: Implement tmpfile() differently on Windows (Bug #3998)
innobase/dict/dict0dict.c:
Check the return value of os_file_create_tmpfile(),
as it can now return NULL
innobase/include/os0file.h:
Note that os_file_create_tmpfile() can now return NULL
innobase/include/srv0srv.h:
Add a new server flag (srv_innodb_status) to disable
the creation of innodb_status.<pid> files
innobase/lock/lock0lock.c:
Check the return value of os_file_create_tmpfile(),
as it can now return NULL
innobase/os/os0file.c:
os_file_create_tmpfile(): separate implementation for Win32;
errors will be reported but will not cause assertion failure
innobase/srv/srv0srv.c:
Add a new server flag (srv_innodb_status) to disable
the creation of innodb_status.<pid> files
innobase/srv/srv0start.c:
innobase_start_or_create_for_mysql(): create srv_monitor_file
with tmpfile() or with a visible name "innodb_status.<pid>",
depending on the setting of the flag srv_innodb_status.
sql/ha_innodb.cc:
innobase_init(): initialize srv_innodb_status
update_table_comment(), get_foreign_key_create_info(): replace
tmpfile() with os_file_create_tmpfile()
sql/ha_innodb.h:
Add new Boolean flag, innobase_create_status_file.
sql/mysqld.cc:
Add new Boolean flag, innodb_status_file
We should allow 19 as length of newly created TIMESTAMP fields.
mysql-test/r/type_timestamp.result:
Added test of TIMESTAMP(19) support.
mysql-test/t/type_timestamp.test:
Added test of TIMESTAMP(19) support.
sql/sql_parse.cc:
add_field_to_list(): TIMESTAMP columns should also support 19 as length since it is
length of 4.1 compatible representation.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
EXCEPTIONS file and amended the GPL text as requested by Zak
libmysql/Makefile.am:
- Fixed license text, added reference to the EXCEPTIONS file
libmysql/Makefile.shared:
- Fixed license text, added reference to the EXCEPTIONS file
libmysql/conf_to_src.c:
- Fixed license text, added reference to the EXCEPTIONS file
libmysql/dll.c:
- Fixed license text, added reference to the EXCEPTIONS file
libmysql/errmsg.c:
- Fixed license text, added reference to the EXCEPTIONS file
libmysql/get_password.c:
- Fixed license text, added reference to the EXCEPTIONS file
libmysql/libmysql.c:
- Fixed license text, added reference to the EXCEPTIONS file
libmysql/manager.c:
- Fixed license text, added reference to the EXCEPTIONS file
libmysql_r/Makefile.am:
- Fixed license text, added reference to the EXCEPTIONS file
various distributions
Docs/Makefile.am:
- Honoured node name change in manual.texi FOSS->FLOSS
Makefile.am:
- actually add EXCEPTIONS to the source distribution
scripts/make_win_src_distribution.sh:
- add EXCEPTIONS to the Windows source distribution, too
file "EXCEPTIONS" and include it in the source and binary
distributions
Build-tools/mysql-copyright:
- remove COPYING and EXCEPTIONS from the commercial packages
Docs/Makefile.am:
- create the EXCEPTIONS file that includes the FOSS License exception
scripts/make_binary_distribution.sh:
- include EXCEPTIONS in the binary distribution, too.
support-files/mysql.spec.sh:
- add EXCEPTIONS to the server RPM
sql/share/czech/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/danish/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/dutch/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/english/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/estonian/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/french/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/german/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/greek/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/hungarian/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/japanese/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/korean/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/norwegian-ny/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/norwegian/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/polish/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/portuguese/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/romanian/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/russian/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/slovak/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/spanish/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/swedish/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/ukrainian/errmsg.txt:
Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
Bug #4810 "deadlock with KILL when the victim was in a wait state"
(I included mutex unlock into exit_cond() for future safety)
and BUG#4827 "KILL while START SLAVE may lead to replication slave crash"
sql/lock.cc:
we did exit_cond() before unlock(LOCK_open), which led to deadlocks with THD::awake(). Fixing this.
sql/log.cc:
mutex unlock is now included in exit_cond()
sql/repl_failsafe.cc:
we did exit_cond() before unlock(LOCK_rpl_status), which led to deadlocks with THD::awake(). Fixing this.
sql/slave.cc:
we did exit_cond() before unlock(cond_lock), which led to deadlocks with THD::awake(). Fixing this.
Fixing also that if killed while waiting for slave thread to start, we don't release the mutex
(that caused a double release of the mutex => crash).
sql/sql_class.h:
comments about exit_cond()/enter_cond().
Mutex unlock is now included in exit_cond() so that it's always done in the good order.
sql/sql_table.cc:
unlock is now included in exit_cond().
sql/sql_class.h:
removing the assertion as I don't want to include assert.h (inclusion of assert.h has already been
reworked in 4.1, so I'll move the assertion to 4.1). Assertion makes compilation fail if non-debug.
Add still more diagnostic code to track buffer pool corruption in one AMD64/Linux computer
innobase/include/page0page.ic:
Add still more diagnostic code to track buffer pool corruption in one AMD64/Linux computer
innobase/row/row0sel.c:
Add still more diagnostic code to track buffer pool corruption in one AMD64/Linux computer
removing safe_mutex_assert_owner, as it would require an include,
and Konstantin already has cleaned up things with assert.h in 4.1;
so I'll put the safe_mutex_assert_owner in 4.1 instead.
sql/sql_class.h:
removing safe_mutex_assert_owner, as it would require an include,
and Konstantin already has cleaned up things with assert.h in 4.1;
so I'll put the safe_mutex_assert_owner in 4.1 instead.
happen on SMP machines, when a thread is going to wait on a condition and it is KILLed at the
same time.
Cleaning code a bit by adding a test in enter_cond() that we have the mutex (was already the case in all places
where it's called except one which is fixed here).
sql/log.cc:
safe_mutex_assert_owner() is now in THD::enter_cond()
sql/slave.cc:
lock mutex before waiting on condition.
sql/sql_class.cc:
THD::awake(): before locking the mutex, let's test it's not zero;
in theory indeed, the killer thread may see current_cond non-zero and current_mutex zero
(order of assignments is not guaranteed by POSIX).
A comment noting that there is still a small chance a KILL does not work and needs
being re-issued.
sql/sql_class.h:
Assert in enter_cond() that we have the mutex.
It is already the case in all places where we call enter_cond(), so better ensure it there.