Commit graph

1604 commits

Author SHA1 Message Date
unknown
05d8dc82b4 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  chilla.local:/home/mydev/mysql-5.0-bug8283


include/my_sys.h:
  Auto merged
myisam/myisamdef.h:
  Auto merged
2006-10-11 17:57:47 +02:00
unknown
c6a67e6933 Bug#23010 _my_b_read() passing illegal file handles to my_seek()
- The io cache flag seek_not_done was not set properly in the reinit_
io_chache function call and this led my_seek to be called despite an
invalid file handle.
- Added a test in reinit_io_cache to ensure we have a valid file handle
before setting seek_not_done flag.


mysys/mf_iocache.c:
  Added a test to only trigger my_seek function calls if we have 
  a valid file descriptor.
mysys/my_seek.c:
  Refactored incomplete condition into an assertion. This also ensures that
  newpos is initialized.
2006-10-09 21:13:37 +02:00
unknown
91be4f6f0c Merge chilla.local:/home/mydev/mysql-4.1-bug8283-one
into  chilla.local:/home/mydev/mysql-5.0-bug8283


include/my_sys.h:
  Auto merged
include/myisam.h:
  Auto merged
myisam/mi_check.c:
  Auto merged
myisam/mi_open.c:
  Auto merged
myisam/mi_packrec.c:
  Auto merged
myisam/sort.c:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
myisam/myisamdef.h:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Merge from 4.1
mysql-test/r/myisam.result:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Merge from 4.1
mysys/mf_iocache.c:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Merge from 4.1
2006-10-09 20:03:12 +02:00
unknown
679b5848f3 Merge chilla.local:/home/mydev/mysql-4.1-bug8283
into  chilla.local:/home/mydev/mysql-4.1-bug8283-one


myisam/mi_check.c:
  Auto merged
myisam/mi_packrec.c:
  Auto merged
myisam/sort.c:
  Auto merged
mysql-test/r/myisam.result:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Manual merge
mysql-test/t/myisam.test:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Manual merge
2006-10-09 19:40:16 +02:00
unknown
3109da7719 Bug#8283 - OPTIMIZE TABLE causes data loss
OPTIMIZE TABLE with myisam_repair_threads > 1 performs a non-quick 
parallel repair. This means that it does not only rebuild all 
indexes, but also the data file.

Non-quick parallel repair works so that there is one thread per 
index. The first of the threads rebuilds also the new data file.

The problem was that all threads shared the read io cache on the
old data file. If there were holes (deleted records) in the table,
the first thread skipped them, writing only contiguous, non-deleted
records to the new data file. Then it built the new index so that
its entries pointed to the correct record positions. But the other
threads didn't know the new record positions, but put the positions
from the old data file into the index.

The new design is so that there is a shared io cache which is filled
by the first thread (the data file writer) with the new contiguous
records and read by the other threads. Now they know the new record
positions.

Another problem was that for the parallel repair of compressed
tables a common bit_buff and rec_buff was used. I changed it so
that thread specific buffers are used for parallel repair.

A similar problem existed for checksum calculation. I made this
multi-thread safe too.


include/my_sys.h:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Redesign of io_cache_share.
include/myisam.h:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Redesign of checksum calculation in mi_check.c.
  'calc_checksum' is now in myisamdef.h:st_mi_sort_param.
myisam/mi_check.c:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Implemented a new parallel repair design.
  Using a synchronized shared read/write cache.
  Allowed for thread specific bit_buff, rec_buff, and calc_checksum.
myisam/mi_open.c:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Added DBUG output.
myisam/mi_packrec.c:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Allowed for thread specific bit_buff and rec_buff.
myisam/myisamdef.h:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Commented on checksum calculation variables.
  Allowed for thread specific bit_buff.
  Added DBUG output for better table crash detection.
myisam/sort.c:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Added implications of the new parallel repair design.
  Renamed 'info' -> 'sort_param'.
  Added DBUG output.
mysql-test/r/myisam.result:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Added test results.
mysql-test/t/myisam.test:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Added test cases.
mysys/mf_iocache.c:
  Bug#8283 - OPTIMIZE TABLE causes data loss
  Redesign of io_cache_share.
  We do now allow a writer to synchronize himself with the
  readers of a shared cache. When all threads join in the lock,
  the writer copies the data from his write buffer to the shared
  read buffer.
2006-10-09 19:26:55 +02:00
unknown
5d5ef8469a Merge shellback.(none):/home/msvensson/mysql/mysql-5.0
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint


BitKeeper/etc/ignore:
  auto-union
sql/item_func.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
2006-10-03 01:01:06 +02:00
unknown
ef5fe1f2b7 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines


BitKeeper/etc/ignore:
  auto-union
mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/table.cc:
  Auto merged
2006-10-02 14:52:09 +05:00
unknown
350ec8b198 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines


mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
sql/table.cc:
  Auto merged
2006-10-02 14:42:12 +05:00
unknown
c681d06f9b Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint


sql/mysql_priv.h:
  Auto merged
2006-09-29 16:24:21 -04:00
unknown
59a7f1ab5f Merge mysql.com:/home/svoj/devel/mysql/BUG21617/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG21617/mysql-5.0-engines


myisammrg/myrg_open.c:
  Auto merged
myisammrg/myrg_queue.c:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
mysql-test/r/merge.result:
  Manual merge.
2006-09-29 00:00:27 +05:00
unknown
7d915f0193 BUG#21617 - crash when selecting from merge table with inconsistent indexes
Crash may happen when selecting from a merge table that has underlying
tables with less indexes than in a merge table itself.

If number of keys in merge table is not bigger than requested key number,
return error.


myisammrg/myrg_open.c:
  Store min(number of keys) in m_info instead of number of keys in last
  underlying table.
myisammrg/myrg_queue.c:
  Return error if inx passed to _myrg_init_queue function is not less
  than number of keys.
mysql-test/r/merge.result:
  A test case for bug#21617.
mysql-test/t/merge.test:
  A test case for bug#21617.
mysys/queues.c:
  Replaced annoying ifndef DBUG_OFF with DBUG_ASSERT, fixed coding style.
  The problem was that having queue overrun in debug build was hidden
  with this ifdef.
2006-09-28 22:10:06 +05:00
unknown
fe9f7980b7 Merge mysql.com:/home/hf/work/mysql-4.1.15428
into  mysql.com:/home/hf/work/mysql-5.0-mrg


myisam/mi_check.c:
  Auto merged
mysys/my_chsize.c:
  Auto merged
2006-09-25 16:44:53 +05:00
unknown
06ef603c09 Merge siva.hindu.god:/usr/home/tim/m/bk/tmp/41
into  siva.hindu.god:/usr/home/tim/m/bk/tmp/50


mysys/charset.c:
  Auto merged
mysys/my_read.c:
  Manual merge
2006-09-14 23:22:25 -06:00
unknown
ac1a030e34 Merge siva.hindu.god:/usr/home/tim/m/bk/tmp/40
into  siva.hindu.god:/usr/home/tim/m/bk/tmp/41


mysys/my_lwrite.c:
  Auto merged
mysys/my_pread.c:
  Auto merged
mysys/my_read.c:
  Auto merged
mysys/my_write.c:
  Auto merged
2006-09-14 23:20:13 -06:00
unknown
d7a1f97c15 Bug #4053: too many of "error 1236: 'binlog truncated in the middle of event' from master"
- Fix my_read/my_write to handle return values from read/write correctly
- Add debugging 'deprecated function' warning to my_lread/my_lwrite
- Add debugging 'error, read/write interrupt not handled' warning to my_quick_read/my_quick_write

There is no test case associated with these changes.  However, this is a conservative change,
and no repeatable test case is available.


mysys/my_lread.c:
  Warn about using deprecated function.
mysys/my_lwrite.c:
  Warn about using deprecated function.
mysys/my_pread.c:
  Handle interrupted read() or write() (EINTR) properly
mysys/my_quick.c:
  Warn about interrupted read() or write(), which is not
  handled by my_quick_read() or my_quick_write().
mysys/my_read.c:
  Handle interrupted read() (EINTR) properly
mysys/my_write.c:
  Handle interrupted write() (EINTR) properly
2006-09-14 23:19:24 -06:00
unknown
da5e2660b7 Bug #4053: too many of "error 1236: 'binlog truncated in the middle of event' from master"
- Detect read failure in my_read_charset_file


mysys/charset.c:
  Use my_read instead of read(), and detect read failure, in my_read_charset_file()
2006-09-14 21:06:14 -06:00
unknown
fd42895a68 Bug #18246: compilation error with tcp_wrapper
Fix the functions in my_libwrap.c to return the results of the
  underlying call to libwrap.


mysys/my_libwrap.c:
  Make my_hosts_access() and my_eval_client() return their results
2006-09-11 16:23:45 -07:00
unknown
e44024d473 bug #12620 (UTF-8 indexing causes ER_NO_KEYFILE error)
The problem is that on some Mac OS X-es the file writing/reading
call with zero bytes to read/write returns error.
So here i try to eliminate that kinds of calls.


myisam/mi_check.c:
  zero length copying avoided
mysys/my_chsize.c:
  no file operations if it's not necessary
2006-09-04 19:47:24 +05:00
unknown
50456f81c4 Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-cmake
2006-09-02 11:03:16 +02:00
unknown
5d3e6c2758 Fixes for crashes and test failures
scripts/make_win_bin_dist:
  BitKeeper file /home/georg/work/mysql/prod/mysql-5.0-win/scripts/make_win_bin_dist
client/mysqlbinlog.cc:
  Fix for cmake build: Cmake doesn't use the VC++ files
extra/comp_err.c:
  fixed windows crash (debug): We can't call DBUG_RETURN after my_end.
include/my_dbug.h:
  added missing empty define for DBUG_LEAVE to prevent precompiler errors when
  compiling in non_debug mode
mysql-test/mysql-test-run.pl:
  Added support for new cmake release and debug paths.
mysql-test/t/system_mysql_db_fix.test:
  This test requires unix shell script mysql_fix_previleges_tables -> skip under windows
mysys/my_seek.c:
  Fix for windows debug crash. However this solution is bad: we should never
  call lseek with an invalid file pointer.
sql/ha_archive.cc:
  Fixed windows crash: We need dup in gzdopen to keep the filehandle open,
  otherwise subsequent calls to mysql_close will fail/crash.
2006-09-01 14:34:37 +02:00
unknown
cce4cc25a9 make dist changes for Cmake build
libmysql/mytest.c:
  Rename: BitKeeper/deleted/.del-mytest.c -> libmysql/mytest.c
sql/message.mc:
  BitKeeper file /home/georg/work/mysql/prod/mysql-5.0-win/sql/message.mc
2006-09-01 10:32:12 +02:00
unknown
8f4477281e Additional files for cmake support
CMakeLists.txt:
  New BitKeeper file ``CMakeLists.txt''
bdb/CMakeLists.txt:
  New BitKeeper file ``bdb/CMakeLists.txt''
client/CMakeLists.txt:
  New BitKeeper file ``client/CMakeLists.txt''
dbug/CMakeLists.txt:
  New BitKeeper file ``dbug/CMakeLists.txt''
extra/CMakeLists.txt:
  New BitKeeper file ``extra/CMakeLists.txt''
extra/yassl/CMakeLists.txt:
  New BitKeeper file ``extra/yassl/CMakeLists.txt''
extra/yassl/taocrypt/CMakeLists.txt:
  New BitKeeper file ``extra/yassl/taocrypt/CMakeLists.txt''
heap/CMakeLists.txt:
  New BitKeeper file ``heap/CMakeLists.txt''
innobase/CMakeLists.txt:
  New BitKeeper file ``innobase/CMakeLists.txt''
libmysql/CMakeLists.txt:
  New BitKeeper file ``libmysql/CMakeLists.txt''
myisam/CMakeLists.txt:
  New BitKeeper file ``myisam/CMakeLists.txt''
myisammrg/CMakeLists.txt:
  New BitKeeper file ``myisammrg/CMakeLists.txt''
mysys/CMakeLists.txt:
  New BitKeeper file ``mysys/CMakeLists.txt''
regex/CMakeLists.txt:
  New BitKeeper file ``regex/CMakeLists.txt''
server-tools/CMakeLists.txt:
  New BitKeeper file ``server-tools/CMakeLists.txt''
server-tools/instance-manager/CMakeLists.txt:
  New BitKeeper file ``server-tools/instance-manager/CMakeLists.txt''
sql/CMakeLists.txt:
  New BitKeeper file ``sql/CMakeLists.txt''
sql/examples/CMakeLists.txt:
  New BitKeeper file ``sql/examples/CMakeLists.txt''
strings/CMakeLists.txt:
  New BitKeeper file ``strings/CMakeLists.txt''
tests/CMakeLists.txt:
  New BitKeeper file ``tests/CMakeLists.txt''
vio/CMakeLists.txt:
  New BitKeeper file ``vio/CMakeLists.txt''
win/Makefile.am:
  New BitKeeper file ``win/Makefile.am''
win/README:
  New BitKeeper file ``win/README''
win/build-vs71.bat:
  New BitKeeper file ``win/build-vs71.bat''
win/build-vs8.bat:
  New BitKeeper file ``win/build-vs8.bat''
win/build-vs8_x64.bat:
  New BitKeeper file ``win/build-vs8_x64.bat''
win/configure.js:
  New BitKeeper file ``win/configure.js''
zlib/CMakeLists.txt:
  New BitKeeper file ``zlib/CMakeLists.txt''
2006-08-31 19:52:42 +02:00
unknown
3cb03194fd Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug04053/my41-bug04053
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-4.1-maint
2006-08-31 12:45:49 -04:00
unknown
f082fc7e7b Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug04053/my41-bug04053
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug04053/my50-bug04053
2006-08-30 21:52:17 -04:00
unknown
8fb0f8a249 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug04053/my40-bug04053
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug04053/my41-bug04053


mysys/my_read.c:
  Auto merged
2006-08-30 17:33:28 -04:00
unknown
626abc5205 Bug#4053: too many of "error 1236: 'binlog truncated in the middle of \
event' from master"

Since there is no repeatable test case, and this is obviously wrong, this is
the most conservative change that might possibly work.  

The syscall  read()  wasn't checked for a negative return value for an
interrupted read.  The kernel  sys_read()  returns -EINTR, and the "library" 
layer maps that to return value of -1 and sets  errno  to EINTR.  It's 
impossible (on Linux) for  read()  to set errno EINTR without the return 
value being -1 .

So, if we're checking for EINTR behavior, we should not require that the
return value be zero.


mysys/my_read.c:
  The read() syscall should check for negative one, since that (usually) signals
  errors (like being interrupted) and zero (usually) signals end-of-file .
2006-08-30 17:28:34 -04:00
unknown
a29f10e8ee Bug #21396: Wrong error number generated for a missing table
BitKeeper/etc/collapsed:
  BitKeeper file /home/georg/work/mysql/prod/mysql-5.0/BitKeeper/etc/collapsed
mysys/my_open.c:
  Win64 bit fix: Replacing 32-bit value (0xFFFFFFFF) by a generic error constant.
2006-08-02 10:00:28 +02:00
unknown
1d0f873d56 Fix after manual merge.
tests/mysql_client_test.c:
  Fix after manual merge: add test for bug#21206.
2006-07-29 13:50:08 +04:00
unknown
74214b8635 Merge moonlight.intranet:/home/tomash/src/mysql_ab/tmp_merge
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-merge


configure.in:
  Auto merged
man/Makefile.am:
  Auto merged
mysys/my_bitmap.c:
  Auto merged
scripts/make_binary_distribution.sh:
  Auto merged
sql/field.cc:
  Auto merged
sql/sql_locale.cc:
  Auto merged
support-files/mysql.spec.sh:
  Auto merged
mysql-test/t/mysqlbinlog.test:
  Manual merge.
sql/sql_select.cc:
  Manual merge.
2006-07-29 13:43:34 +04:00
unknown
35945019ea BUG#21206: memory corruption when too many cursors are opened at once
Too many cursors (more than 1024) could lead to memory corruption.
This affects both, stored routines and C API cursors, and the
threshold is per-server, not per-connection.  Similarly, the
corruption could happen when the server was under heavy load
(executing more than 1024 simultaneous complex queries), and this is
the reason why this bug is fixed in 4.1, which doesn't support
cursors.

The corruption was caused by a bug in the temporary tables code, when
an attempt to create a table could lead to a write beyond allocated
space.  Note, that only internal tables were affected (the tables
created internally by the server to resolve the query), not tables
created with CREATE TEMPORARY TABLE.  Another pre-condition for the
bug is TRUE value of --temp-pool startup option, which, however, is a
default.

The cause of a bug was that random memory was overwritten in
bitmap_set_next() due to out-of-bound memory access.


mysys/my_bitmap.c:
  Local 'bitmap_size' is measured in bytes, no need to multiply it by 8.
sql/sql_select.cc:
  Clear the temp_pool_slot bit only if we have set it previously.
2006-07-26 16:23:07 +04:00
unknown
2226065b27 Merge mysql.com:/home/my/mysql-4.1
into  mysql.com:/home/my/mysql-5.0


include/my_global.h:
  Auto merged
mysql-test/r/func_sapdb.result:
  Auto merged
mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/func_sapdb.test:
  Auto merged
mysys/my_handler.c:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
strings/strtod.c:
  Auto merged
mysql-test/r/func_time.result:
  Manual merge
mysql-test/t/func_time.test:
  Manual merge
2006-06-30 02:35:52 +03:00
unknown
77deeb7ee6 Fixed include file usage
hp_test2 now works again
Fixed wrong cast, which caused problems with gcc 4.0 and floats in prepared statements (Bug #19694)


heap/hp_test1.c:
  Portability fix
heap/hp_test2.c:
  Added max_table_size (fixes that hp_test2 works again)
include/my_global.h:
  Fixed wrong cast, which caused problems with gcc 4.0 (Bug #19694)
mysys/my_handler.c:
  Added missing include file
strings/strtod.c:
  Fixed include files
2006-06-30 02:25:35 +03:00
unknown
32e2acadc3 Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge


include/my_sys.h:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/log.cc:
  Auto merged
2006-06-29 14:14:08 +02:00
unknown
b5f89708eb Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/gluh/MySQL/Merge/5.0-kt


sql/set_var.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2006-06-28 14:23:33 +05:00
unknown
39defccfd4 Fixing BUG#17719 "Delete of binlog files fails on Windows"
and BUG#19208 "Test 'rpl000017' hangs on Windows".
 Both bugs are caused by attempting to delete an opened
 file and to create immediatedly a new one with the same
 name. On Windows it can be supported only on NT-platforms
 (by using FILE_SHARE_DELETE mode and with renaming the
 file before deletion). Because deleting not-closed files
 is not supported on all platforms (e.g. Win 98|ME) this
 is to be considered harmful and should be eliminated by
 a "code redesign".


VC++Files/mysys/mysys.vcproj:
  To be sure that __NT__ is defined for Win configurations.
   Temporary, to be changed in more appropriate way.
include/my_sys.h:
  Adding my_delete_allow_opened to be invoked to delete
   a (possibly) not closed file on Windows NT-platforms.
mysys/my_delete.c:
  Adding nt_share_delete() function implementing
   a (possibly) not closed file deletion on Windows NT.
sql/log.cc:
  MYSQL_LOG::reset_logs(): Deleting usually not
   closed binlog files.
2006-06-28 10:21:01 +04:00
unknown
e3ef15ea37 Fix compilation failures on Windows caused by the patch for Bug#17199.
Fix a minor issue with Bug#16206 (bdb.test failed if the tree is compiled 
without blackhole).


include/my_sys.h:
  Change declaration of my_strdup_with_length to accept const char *,
  not const byte *: in 5 places out of 6 where this function is used,
  it's being passed char *, not byte *
mysql-test/r/bdb.result:
  Remove dependency on an optional engine (updated test results).
mysql-test/t/bdb.test:
  Remove dependency on an optional engine.
mysys/my_malloc.c:
  my_strdup_with_length: const byte * -> const char *
mysys/safemalloc.c:
  my_strdup_with_length: const byte * -> const char *
sql/ha_federated.cc:
  my_strdup_with_length: const byte * -> const char *
sql/log_event.cc:
  my_strdup_with_length: const byte * -> const char *
sql/set_var.cc:
  my_strdup_with_length: const byte * -> const char *
sql/sql_class.h:
  Change db_length type to uint from uint32 (see also table.h)
sql/table.h:
  Change the type of db_length to uint from uint32: LEX_STRING uses uint for 
  length, we need a small and consistent set of types to store length to 
  minimize cast and compile failures.
2006-06-27 14:56:24 +04:00
unknown
0f93a64eff Merge istruewing@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/nfstmp1/ingo/autopush-75/mysql-5.0
2006-06-26 22:23:04 +02:00
unknown
c3cb46908c Merge mysql.com:/home/alik/MySQL/devel/5.0-tree
into  mysql.com:/home/alik/MySQL/devel/5.0-rt
2006-06-26 21:58:55 +04:00
unknown
8fe3c29f84 Merge istruewing@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-bug16986-main


sql/sql_table.cc:
  Auto merged
2006-06-26 19:43:28 +02:00
unknown
1c2a13b894 Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.

The stress test suite revealed some deadlocks. Some were
related to the new condition variable (COND_global_read_lock)
and some were general problems with the global read lock.

It is now necessary to signal COND_global_read_lock whenever 
COND_refresh is signalled.

We need to wait for the release of a global read lock if one 
is set before every operation that requires a write lock.
But we must not wait if we have locked tables by LOCK TABLES.
After setting a global read lock a thread waits until all
write locks are released.


mysql-test/r/lock_multi.result:
  Bug#16986 - Deadlock condition with MyISAM tables
  Addendum fixes after changing the condition variable
  for the global read lock.
  Added test results.
mysql-test/t/lock_multi.test:
  Bug#16986 - Deadlock condition with MyISAM tables
  Addendum fixes after changing the condition variable
  for the global read lock.
  Added tests for possible deadlocks that did not occur
  with the stress test suite.
mysys/thr_lock.c:
  Bug#16986 - Deadlock condition with MyISAM tables
  Addendum fixes after changing the condition variable
  for the global read lock.
  Added a protection against an infinite loop that occurs
  with the test case for Bug #20662.
sql/lock.cc:
  Bug#16986 - Deadlock condition with MyISAM tables
  Addendum fixes after changing the condition variable
  for the global read lock.
  Signal COND_global_read_lock whenever COND_refresh
  is signalled by using the new function broadcast_refresh().
  Added the definition of a new function that signals 
  COND_global_read_lock whenever COND_refresh is signalled.
sql/mysql_priv.h:
  Bug#16986 - Deadlock condition with MyISAM tables
  Addendum fixes after changing the condition variable
  for the global read lock.
  Added a declaration for a new function that signals 
  COND_global_read_lock whenever COND_refresh is signalled.
sql/sql_base.cc:
  Bug#16986 - Deadlock condition with MyISAM tables
  Addendum fixes after changing the condition variable
  for the global read lock.
  Signal COND_global_read_lock whenever COND_refresh
  is signalled by using the new function broadcast_refresh().
sql/sql_handler.cc:
  Bug#16986 - Deadlock condition with MyISAM tables
  Addendum fixes after changing the condition variable
  for the global read lock.
  Signal COND_global_read_lock whenever COND_refresh
  is signalled by using the new function broadcast_refresh().
sql/sql_insert.cc:
  Bug#16986 - Deadlock condition with MyISAM tables
  Addendum fixes after changing the condition variable
  for the global read lock.
  Removed global read lock handling from inside of 
  INSERT DELAYED. It is handled on a higher level now.
sql/sql_parse.cc:
  Bug#16986 - Deadlock condition with MyISAM tables
  Addendum fixes after changing the condition variable
  for the global read lock.
  Wait for the release of a global read lock if one is set
  before every operation that requires a write lock.
  But don't wait if locked tables exist already.
sql/sql_table.cc:
  Bug#16986 - Deadlock condition with MyISAM tables
  Addendum fixes after changing the condition variable
  for the global read lock.
  Removed global read lock handling from inside of 
  CREATE TABLE. It is handled on a higher level now.
  Signal COND_global_read_lock whenever COND_refresh
  is signalled by using the new function broadcast_refresh().
2006-06-26 19:14:35 +02:00
unknown
80bb69ed8f Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-kt


sql/mysqld.cc:
  Auto merged
2006-06-26 16:56:28 +02:00
unknown
eef15bdf46 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/data0/bk/mysql-5.0-maint


sql/sp_head.cc:
  Auto merged
sql/table.cc:
  Auto merged
2006-06-26 04:48:16 +02:00
unknown
95239e1d1c BUG#20528 Added missing parenthesis to DBUG_PRINT statement 2006-06-23 11:21:57 -04:00
unknown
3728f43cf8 Merge mysql.com:/usr/local/mysql/mysql-5.0-bug20622
into  mysql.com:/usr/local/mysql/tmp-5.0
2006-06-23 14:52:04 +02:00
unknown
0f3cc95bf1 BUG#20622: Fix one-byte buffer overrun in IM directory string handling.
The problem was a call to convert_dirname() with a destination buffer
that did not have room for the trailing slash added by that function.
This could cause the instance manager to crash in some cases.


mysys/mf_dirname.c:
  Clarify in comments that convert_dirname destination must be larger than
  source to accomodate a trailing slash.
server-tools/instance-manager/instance_options.cc:
  Fix buffer overrun.
2006-06-23 14:50:02 +02:00
unknown
e8e52a6a25 Cleanup to patch for Bug#18246, "compilation error with tcp_wrapper"
include/my_libwrap.h:
  Changed includes to the header file.
mysys/my_libwrap.c:
  Added comment and .c file now takes needed includes from
  the corresponding .h file.
sql/mysqld.cc:
  Include this block from my_libwra.h now.
  Moved two variables out of the otherwise
  same block.
2006-06-21 18:35:19 +03:00
unknown
72cb1d5049 Fix for Bug#18246 "compilation error with tcp_wrapper"
sql/mysqld.cc:
  Fix for Bug#18246 "compilation error with tcp_wrapper"
  
  Added wrapper functions.
2006-06-21 02:23:18 +03:00
unknown
69146b9d0a Bug #18275 invalid file descriptor causes crash on windows
mysys/my_init.c:
  Added invalid parameter handler so that routines such as lseek would return -1 instead of ASSERT.
2006-06-05 13:37:06 -05:00
unknown
a9a4202c9c Merge anna@bk-internal.mysql.com:/home/bk/mysql-5.0
into  hasky.mysql.fi:/home/anjuta/my/mysql-5.0-clean


sql/table.cc:
  Auto merged
2006-06-02 22:31:51 +03:00
unknown
59a33015b4 Fixed Bug#19479:mysqldump creates invalid dump.
Only check for FN_DEVCHAR in filenames if FN_DEVCHAR is defined.
This allows to use table names with ":" on non windows platforms.
On Windows platform get an error if you use table name that contains FN_DEVCHAR


include/config-win.h:
  Moved FN_DEVCHAR to config-win.h
include/my_global.h:
  Moved FN_DEVCHAR to config-win.h
mysql-test/r/create.result:
  Added testcase for Bug#19479:mysqldump creates invalid dump
BitKeeper/etc/ignore:
  Added sql/share/iso639-2.txt sql/share/fixerrmsg.pl to the ignore list
mysql-test/t/create.test:
  Added testcase for Bug#19479:mysqldump creates invalid dump
mysys/mf_fn_ext.c:
  Added checking of BASKSLASH_MBTAIL as dirname_part depends on it.
  Fixed cast and indentation.
sql/table.cc:
  Only check for FN_DEVCHAR in filenames if FN_DEVCHAR is defined.
  This allows to use table names with ":" on non windows platforms.
  On Windows platform get an error if you use table name that contains FN_DEVCHAR
2006-06-01 12:34:44 +03:00