- 26 Oct, 2009 2 commits
-
-
Dmitry Lenev authored
Concurrent execution of statements which require non-table-level write locks on several instances of the same table (such as SELECT ... FOR UPDATE which uses same InnoDB table twice or a DML statement which invokes trigger which tries to update same InnoDB table directly and through stored function) and statements which required table-level locks on this table (e.g. LOCK TABLE ... WRITE, ALTER TABLE, ...) might have resulted in a deadlock. The problem occured when a thread tried to acquire write lock (TL_WRITE_ALLOW_WRITE) on the table but had to wait since there was a pending write lock (TL_WRITE, TL_WRITE_ALLOW_READ) on this table and we failed to detect that this thread already had another instance of write lock on it (so in fact we were trying to acquire recursive lock) because there was also another thread holding write lock on the table (also TL_WRITE_ALLOW_WRITE). When the latter thread released its lock neither the first thread nor the thread trying to acquire TL_WRITE/TL_WRITE_ALLOW_READ were woken up (as table was still write locked by the first thread) so we ended up with a deadlock. This patch solves this problem by ensuring that thread which already has write lock on the table won't wait when it tries to acquire second write lock on the same table. mysql-test/r/lock_sync.result: Added test case for bug #45143 "All connections hang on concurrent ALTER TABLE". mysql-test/t/lock_sync.test: Added test case for bug #45143 "All connections hang on concurrent ALTER TABLE". mysys/thr_lock.c: Ensured that thread can acquire write lock on the table without waiting if it already has write lock on it even if there are other threads holding write locks on this table (this is normal situation for, e.g., TL_WRITE_ALLOW_WRITE type of lock). Adjusted comments to better explain why it is OK to do so and added asserts to prevent introduction of scenarios in which this can cause problems.
-
Sergey Glukhov authored
additional fix(Betony)
-
- 23 Oct, 2009 8 commits
-
-
Sergey Glukhov authored
-
Sergey Glukhov authored
backport to betony
-
Horst.Hunger authored
-
Sergey Glukhov authored
backport to Betony
-
Alexander Nozdrin authored
Original revision: ------------------------------------------------------------ revno: 2801.10.16 committer: Vladislav Vaintroub <vvaintroub@mysql.com> branch nick: mysql-azalea-bugfixing timestamp: Mon 2009-08-10 13:26:23 +0200 message: Bug #46267 Shutdown with idle connection crash the server. The crash happens when mysqld logs a warning. The macro ER() used in sql_print_warning references thread local storage variable via current_thd(), to output the warning in "current user language". However, for the shutdown thread, current_thd() will return NULL, and mysqld will crash while derefencing NULL pointer. Solution: get error mesage text with ER_DEFAULT() macro instead of ER(), this does not current_thd() and will output errors in default language. ------------------------------------------------------------
-
Sergey Glukhov authored
backport to Betony
-
Sergey Glukhov authored
backport to Betony
-
Sergey Glukhov authored
-
- 22 Oct, 2009 17 commits
-
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Jonathan Perkin authored
-
Jonathan Perkin authored
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
instead of making it experimental.
-
- 21 Oct, 2009 5 commits
-
-
Alexander Nozdrin authored
The value was changed from 1024 to 2048, because 1024 is already used. Original revision: ------------------------------------------------------------ revno: 2476.657.259 committer: tsmith@bk-internal.mysql.com timestamp: Tue 2008-01-29 19:32:44 +0100 message: WL#4098: Add a status flag for slow queries Add new result set status flag SERVER_QUERY_WAS_SLOW in mysql_com.h. There is no server-side implementation to actually set this flag at this time. This patch simply defines the interface so that applications can make use of it. See the worklog for background. ------------------------------------------------------------
-
Alexander Nozdrin authored
```--------------------------------------------------------- revno: 2476.714.9 committer: markleith@medusa.mysql.com timestamp: Mon 2007-09-03 23:18:50 +0100 message: Bug#25822 / WL#3953 - Log Access Denied errors for bad passwords in the error log Added logging of Access Denied messages on failed new connections to the error log when log-warnings = 2. This allows a user to log these messages without having to incur the overhead of using the general query log on production systems. ``` ---------------------------------------------------------
-
Alexander Nozdrin authored
-
Alexander Barkov authored
-
Bjorn Munch authored
-
- 20 Oct, 2009 8 commits
-
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Satya B authored
Remove the extra line which try to use the name INNOBASE again. The IF ELSE loop above declares the library name based on the version of mysql
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Alexander Nozdrin authored
-