Commit graph

443 commits

Author SHA1 Message Date
kroki/tomash@moonlight.intranet
0f0ddc398a BUG#21051: RESET QUERY CACHE very slow when query_cache_type=0
There were two problems: RESET QUERY CACHE took a long time to complete
and other threads were blocked during this time.

The patch does three things:
  1 fixes a bug with improper use of test-lock-test_again technique.
      AKA Double-Checked Locking is applicable here only in few places.
  2 Somewhat improves performance of RESET QUERY CACHE.
      Do my_hash_reset() instead of deleting elements one by one.  Note
      however that the slowdown also happens when inserting into sorted
      list of free blocks, should be rewritten using balanced tree.
  3 Makes RESET QUERY CACHE non-blocking.
      The patch adjusts the locking protocol of the query cache in the
      following way: it introduces a flag flush_in_progress, which is
      set when Query_cache::flush_cache() is in progress.  This call
      sets the flag on enter, and then releases the lock.  Every other
      call is able to acquire the lock, but does nothing if
      flush_in_progress is set (as if the query cache is disabled).
      The only exception is the concurrent calls to
      Query_cache::flush_cache(), that are blocked until the flush is
      over.  When leaving Query_cache::flush_cache(), the lock is
      acquired and the flag is reset, and one thread waiting on
      Query_cache::flush_cache() (if any) is notified that it may
      proceed.
2006-08-22 11:47:52 +04:00
unknown
32741794a3 BUG#9678: Client library hangs after network communication failure
Socket timeouts in client library were used only on Windows.

The solution is to use socket timeouts in client library on all
systems were they are supported.

No test case is provided because it is impossible to simulate network
failure in current test suit.


sql/net_serv.cc:
  Retry indefinitely only if got EINTR.
vio/viosocket.c:
  Set socket timeouts on POSIX systems as well as on Windows.
2006-08-14 20:01:19 +04:00
kroki/tomash@moonlight.intranet
c746c08af9 BUG#9678: Client library hangs after network communication failure
Socket timeouts in client library were used only on Windows.

The solution is to use socket timeouts in client library on all
systems were they are supported.

No test case is provided because it is impossible to simulate network
failure in current test suit.
2006-08-14 20:01:19 +04:00
unknown
91fb831076 configure.in, net_serv.cc, compile-netware-END:
Changes for Netware


sql/net_serv.cc:
  Netware needs <sys/select.h>
configure.in:
  Call of "comp_err" has moved, changed code for Netware that
  edits make files to reflect this
netware/BUILD/compile-netware-END:
  After correcting "configure.in" to edit make files correctly,
  removed obsolete "sed" of "extra/Makefile.am" for Netware
2006-06-17 00:30:02 +02:00
kent@mysql.com
392bb51f25 configure.in, net_serv.cc, compile-netware-END:
Changes for Netware
2006-06-17 00:30:02 +02:00
unknown
c38308dee2 some small fixups
include/config-win.h:
  force time_t to be 32 bit on Visual C++ 2005 or later
sql/net_serv.cc:
  include winsock after my_global so the time_t #define can take effect
storage/csv/ha_tina.cc:
  fix the csv engine so that it supports DOS, Unix, and Mac line endings
2006-05-24 12:43:03 -05:00
reggie@big_geek.
4a25f024ee some small fixups 2006-05-24 12:43:03 -05:00
unknown
61bd3fa055 mysql.spec.sh:
Removed Berkeley DB
configure.in:
  Adjusted Netware support
basic.t.c:
  Change for Netware
Makefile.am:
  Use thread safe libmysqlclient_r if it was built
valgrind.supp:
  Hide report about strlen/_dl_init_paths
ha_tina.cc:
  Temporarely disable CSV engine on Netware,
  as the engine depends on mmap()
net_serv.cc:
  Include <sys/select.h> for Netware


sql/net_serv.cc:
  Include <sys/select.h> for Netware
storage/csv/ha_tina.cc:
  Temporarely disable CSV engine on Netware,
  as the engine depends on mmap()
mysql-test/valgrind.supp:
  Hide report about strlen/_dl_init_paths
tests/Makefile.am:
  Use thread safe libmysqlclient_r if it was built
unittest/mytap/t/basic.t.c:
  Change for Netware
configure.in:
  Adjusted Netware support
support-files/mysql.spec.sh:
  Removed Berkeley DB
2006-05-16 22:47:22 +02:00
kent@mysql.com
9fca0d766b mysql.spec.sh:
Removed Berkeley DB
configure.in:
  Adjusted Netware support
basic.t.c:
  Change for Netware
Makefile.am:
  Use thread safe libmysqlclient_r if it was built
valgrind.supp:
  Hide report about strlen/_dl_init_paths
ha_tina.cc:
  Temporarely disable CSV engine on Netware,
  as the engine depends on mmap()
net_serv.cc:
  Include <sys/select.h> for Netware
2006-05-16 22:47:22 +02:00
unknown
cc62983ca2 Final patch to remove the last of the OS2 support.
client/client_priv.h:
  OS2 removal
client/mysql.cc:
  OS2 removal
dbug/dbug.c:
  OS2 removal
include/m_string.h:
  OS2 removal
include/my_global.h:
  Cleanup for have_mit
libmysql/dll.c:
  OS2 removal
libmysql/get_password.c:
  OS2 removal
libmysql/libmysql.c:
  OS2 removal
libmysql/manager.c:
  OS2 removal
sql-common/client.c:
  OS2 removal
sql/event_executor.cc:
  OS2 removal
sql/hostname.cc:
  OS2 removal
sql/log.cc:
  OS2 removal
sql/log_event.h:
  OS2 removal
sql/my_lock.c:
  OS2 removal
sql/mysql_priv.h:
  OS2 removal
sql/mysqld.cc:
  OS2 removal
sql/net_serv.cc:
  OS2 removal
sql/repl_failsafe.cc:
  OS2 removal
sql/slave.cc:
  OS2 removal
sql/sql_base.cc:
  OS2 removal
sql/sql_insert.cc:
  OS2 removal
sql/sql_load.cc:
  OS2 removal
sql/sql_parse.cc:
  OS2 removal
sql/sql_table.cc:
  OS2 removal
storage/myisam/myisamchk.c:
  OS2 removal
storage/ndb/src/mgmclient/main.cpp:
  OS2 removal
storage/ndb/src/mgmsrv/main.cpp:
  OS2 removal
vio/vio.c:
  OS2 removal
vio/viosocket.c:
  OS2 removal
vio/viossl.c:
  OS2 removal
2006-04-15 18:17:32 -07:00
brian@zim.(none)
5d1d27c016 Final patch to remove the last of the OS2 support. 2006-04-15 18:17:32 -07:00
unknown
92ead72dc7 Make the define start at "start of line" 2006-03-02 10:55:55 +01:00
msvensson@neptunus.(none)
4697536963 Make the define start at "start of line" 2006-03-02 10:55:55 +01:00
unknown
69012c7524 Bug#2845 client fails to reconnect if using TCP/IP
- Change to use non blocking read to empty channel in case of too large sd number
 - Don't check for too large socket number on Windows.


sql/net_serv.cc:
  Windows does not need protection from sd >= FD_SETSIZE, it uses an array to store the sd's it should read from.
  Change the handler for when "net_data_is_ready" returns -1 to perform nonblocking read to empty the net.
  Only include that handler if HAVE_POLL is not defined  and not windows
2006-03-01 15:21:03 +01:00
msvensson@shellback.(none)
3a325cb81e Bug#2845 client fails to reconnect if using TCP/IP
- Change to use non blocking read to empty channel in case of too large sd number
 - Don't check for too large socket number on Windows.
2006-03-01 15:21:03 +01:00
unknown
f56e873418 BUG#2845 client fails to reconnect if using TCP/IP
- Use 'poll' if available
 - Check that sd <= FD_SETSIZE if using 'select'
 - Handle case when 'net_data_is_ready' returns -1, ie. sd > FD_SETSIZE and 'select' is used 


sql/net_serv.cc:
  Use 'poll' in favor of 'select' if avaliable
  This is to avoid the limitation with 'select' only being able to handle fd's with numbers <= 1024 as default.
  If 'poll' is not available use 'select' but check that we are not having a number higher than FD_SETSIZE
  Handle the case when 'net_data_is_ready' can't check if there is data to read, since the sd number is too high
2006-02-27 16:44:23 +01:00
msvensson@neptunus.(none)
e2423d5e05 BUG#2845 client fails to reconnect if using TCP/IP
- Use 'poll' if available
 - Check that sd <= FD_SETSIZE if using 'select'
 - Handle case when 'net_data_is_ready' returns -1, ie. sd > FD_SETSIZE and 'select' is used
2006-02-27 16:44:23 +01:00
unknown
d430e2474f Bug#2845 client fails to reconnect if using TCP/IP
- Detect that connection to server has been broken in "net_clear". Since 
  net_clear is always called before we send command to server, we can be sure
  that server has not received the command.


mysql-test/r/wait_timeout.result:
  Update test result
mysql-test/t/wait_timeout-master.opt:
  Decrease wait_timeout value to avoid unneccessary sleeps
mysql-test/t/wait_timeout.test:
  Test that same error message is returned when disconnected regardless of connection is socket or TCP
  Decrease sleep times
sql/net_serv.cc:
  Make "net_clear" detect if connection with server has been broken by 
  performing a select. If the select returns that there are data to read but
  no data can be read, that means the connection is broken. Signal disconnected
  to "write" functions by setting error to 2.
2006-02-16 12:02:38 +01:00
msvensson@neptunus.(none)
8c828967ee Bug#2845 client fails to reconnect if using TCP/IP
- Detect that connection to server has been broken in "net_clear". Since 
  net_clear is always called before we send command to server, we can be sure
  that server has not received the command.
2006-02-16 12:02:38 +01:00
unknown
8dc5c95b14 Merge mysql.com:/home/jimw/my/mysql-4.1-clean
into  mysql.com:/home/jimw/my/mysql-5.0-clean


include/my_global.h:
  Auto merged
include/my_pthread.h:
  Auto merged
include/violite.h:
  Auto merged
mysql-test/r/ndb_autodiscover.result:
  Auto merged
ndb/src/mgmsrv/MgmtSrvr.cpp:
  Auto merged
ndb/src/ndbapi/SignalSender.cpp:
  Auto merged
sql-common/client.c:
  Auto merged
sql/examples/ha_archive.cc:
  Auto merged
sql/net_serv.cc:
  Auto merged
vio/vio.c:
  Auto merged
vio/viosocket.c:
  Auto merged
vio/viossl.c:
  Auto merged
configure.in:
  Resolve conflicts
2005-09-12 17:00:50 -07:00
jimw@mysql.com
a60ed0b75d Merge mysql.com:/home/jimw/my/mysql-4.1-clean
into  mysql.com:/home/jimw/my/mysql-5.0-clean
2005-09-12 17:00:50 -07:00
unknown
c9b589defa Merge selena.:H:/MYSQL/src/#05588-mysql-4.0
into  selena.:H:/MYSQL/src/#05588-mysql-4.1


BitKeeper/deleted/.del-lib_vio.c~d779731a1e391220:
  Auto merged
BitKeeper/deleted/.del-mini_client.cc~8677895ec8169183:
  Auto merged
include/violite.h:
  Auto merged
sql/net_serv.cc:
  Auto merged
vio/vio.c:
  Auto merged
vio/viosocket.c:
  Auto merged
include/my_global.h:
  SCCS merged
2005-09-07 14:59:41 +04:00
SergeyV@selena.
784582b857 Merge selena.:H:/MYSQL/src/#05588-mysql-4.0
into  selena.:H:/MYSQL/src/#05588-mysql-4.1
2005-09-07 14:59:41 +04:00
unknown
a8a5e98ec6 Fixes bug #5588. vio_was_interrupted() function was added to detect
read timeout properly on win32.


include/my_global.h:
  Added win32 specific socket timeout error code.
include/violite.h:
  Added vio_was_interrupted function that returns true if operation was
  not completed due to timeout.
sql/mini_client.cc:
  added a check that replication read was not completed due to timeout.
sql/net_serv.cc:
  net->last_errno should be equal to ER_NET_READ_INTERRUPTED in case if read
  operation was not completed due to timeout.
vio/vio.c:
  added initialization code for vio_was_interrupted() function.
vio/viosocket.c:
  Added vio_was_interrupted function that returns true if operation was
  not completed due to timeout.
2005-08-30 19:19:28 +04:00
SergeyV@selena.
e82e15b051 Fixes bug #5588. vio_was_interrupted() function was added to detect
read timeout properly on win32.
2005-08-30 19:19:28 +04:00
unknown
8daa1c4229 Merge mysql.com:/home/bkroot/mysql-4.1
into  mysql.com:/home/bk/mysql-5.0


BitKeeper/etc/config:
  Auto merged
include/my_global.h:
  Auto merged
sql/des_key_file.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/net_serv.cc:
  Auto merged
vio/vio.c:
  Auto merged
vio/viosocket.c:
  Auto merged
sql/log.cc:
  Manual merge
sql/slave.cc:
  Manual merge
2005-07-13 02:13:04 +02:00
lars@mysql.com
6db2602ad0 Merge mysql.com:/home/bkroot/mysql-4.1
into  mysql.com:/home/bk/mysql-5.0
2005-07-13 02:13:04 +02:00
unknown
73fd169d02 Fixed some vio code that was using ___WIN__ instead of __WIN__
include/my_global.h:
  set SOCKET_EWOULDBLOCK to the proper windows def WSAEWOULDBLOCK
sql/net_serv.cc:
  fixed typo with using 3 leading underscores instead of 2
vio/vio.c:
  fixed typo with using 3 leading underscores instead of 2
vio/viosocket.c:
  fixed typo with using 3 leading underscores instead of 2
2005-07-12 10:31:09 -06:00
reggie@linux.site
c31d71c065 Fixed some vio code that was using ___WIN__ instead of __WIN__ 2005-07-12 10:31:09 -06:00
unknown
4576776010 Merge bk-internal.mysql.com:/users/rburnett/bug9721
into bk-internal.mysql.com:/users/rburnett/mysql-5.0


BitKeeper/etc/logging_ok:
  auto-union
include/violite.h:
  Auto merged
sql/net_serv.cc:
  Auto merged
vio/viosocket.c:
  Auto merged
vio/viossl.c:
  Auto merged
2005-05-06 15:15:48 +02:00
rburnett@bk-internal.mysql.com
ad6de2c05a Merge bk-internal.mysql.com:/users/rburnett/bug9721
into bk-internal.mysql.com:/users/rburnett/mysql-5.0
2005-05-06 15:15:48 +02:00
unknown
af5596b32e Bug #9721 net_write_timeout not used on Windows
Added an extra parameter to all calls to timeout().  
1 means we want to set the write timeout
0 means we wnat to set the read timeout

viossl.c:
  Add which parameter to ssl timeout routine
vio_priv.h:
  Added which parameter to vio_ignore_timeout and vio_ssl_timeout
violite.h:
  Add which parameter to vio_timeout sigs
net_serv.cc:
  Use proper which code in call to vio_timeout to set the proper timeout
viosocket.c:
  Set the appropriate timeout in vio_timeout


vio/viosocket.c:
  Set the appropriate timeout in vio_timeout
sql/net_serv.cc:
  Use proper which code in call to vio_timeout to set the proper timeout
include/violite.h:
  Add which parameter to vio_timeout sigs
vio/vio_priv.h:
  Added which parameter to vio_ignore_timeout and vio_ssl_timeout
vio/viossl.c:
  Add which parameter to ssl timeout routine
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2005-05-05 17:17:57 +02:00
rburnett@bk-internal.mysql.com
e7d7c0f236 Bug #9721 net_write_timeout not used on Windows
Added an extra parameter to all calls to timeout().  
1 means we want to set the write timeout
0 means we wnat to set the read timeout

viossl.c:
  Add which parameter to ssl timeout routine
vio_priv.h:
  Added which parameter to vio_ignore_timeout and vio_ssl_timeout
violite.h:
  Add which parameter to vio_timeout sigs
net_serv.cc:
  Use proper which code in call to vio_timeout to set the proper timeout
viosocket.c:
  Set the appropriate timeout in vio_timeout
2005-05-05 17:17:57 +02:00
unknown
d8222c03c0 Merge changes.
Build-tools/Do-compile:
  Change already present in 5.0
configure.in:
  Do not propagate a 4.0 version number to the 5.0 tree.
include/my_sys.h:
  Change already present in 5.0.
mysys/hash.c:
  For Sun compilers, 'static inline' is ok.
mysys/my_bitmap.c:
  Change already present in 5.0
sql/item_strfunc.cc:
  Change already present in 5.0
sql/net_serv.cc:
  Change already present in 5.0
2005-03-08 17:24:07 +01:00
joerg@mysql.com
3bbc35ac01 Merge changes. 2005-03-08 17:24:07 +01:00
unknown
3efe8a84b8 Manual merge. 2005-03-07 10:29:50 +01:00
joerg@mysql.com
ab271b4d84 Manual merge. 2005-03-07 10:29:50 +01:00
unknown
16874ec6f5 Changed C++ style comment to C style for 'sql/net_serv.cc' which will be symlinked
to 'libmysql/net.c'.


sql/net_serv.cc:
  Even though this is (by name) a C++ file, it is later symlinked to 'libmysql/net.c'
  and so the source will be treated as plain C: No C++ comments in here!
2005-03-04 11:07:56 +01:00
joerg@mysql.com
136c1ea181 Changed C++ style comment to C style for 'sql/net_serv.cc' which will be symlinked
to 'libmysql/net.c'.
2005-03-04 11:07:56 +01:00
unknown
7a52848891 Fixed problem of sending ERROR to client after OK or EOF (BUG#6804)
include/mysql_com.h:
  Flag which prevent sending error after EOF or OK sent
mysql-test/r/kill.result:
  test of blocking of sending ERROR after OK or EOF
mysql-test/t/kill.test:
  test of blocking of sending ERROR after OK or EOF
sql/item_func.cc:
  typo fixed
sql/net_serv.cc:
  initialization of flag
sql/protocol.cc:
  check and set of flag no_send_error
sql/sql_parse.cc:
  droping flag no_send_error before new command/query execution
2005-01-20 10:41:37 +02:00
bell@sanja.is.com.ua
e9ad508542 Fixed problem of sending ERROR to client after OK or EOF (BUG#6804) 2005-01-20 10:41:37 +02:00
unknown
7bf677dd64 Merge mysql.com:/home/kostja/work/mysql-4.1-7428
into mysql.com:/home/kostja/work/mysql-5.0-root


sql/net_serv.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
2005-01-11 14:47:12 +03:00
konstantin@mysql.com
a0bc131743 Merge mysql.com:/home/kostja/work/mysql-4.1-7428
into mysql.com:/home/kostja/work/mysql-5.0-root
2005-01-11 14:47:12 +03:00
unknown
fe8c6a4a03 make it compile with -ansi -pedantic 2005-01-11 13:12:52 +03:00
konstantin@mysql.com
876a96cd02 make it compile with -ansi -pedantic 2005-01-11 13:12:52 +03:00
unknown
24b048f5f4 Merge mysql.com:/home/mysql_src/mysql-4.1-clean
into mysql.com:/home/mysql_src/mysql-5.0-clean


sql/net_serv.cc:
  Auto merged
2005-01-10 15:15:49 +01:00
guilhem@mysql.com
b5a44aebbd Merge mysql.com:/home/mysql_src/mysql-4.1-clean
into mysql.com:/home/mysql_src/mysql-5.0-clean
2005-01-10 15:15:49 +01:00
unknown
7a35921bff Merge mysql.com:/home/mysql_src/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.1-clean


Build-tools/Bootstrap:
  Auto merged
sql/net_serv.cc:
  Auto merged
2005-01-10 14:13:41 +01:00
guilhem@mysql.com
da1d751b31 Merge mysql.com:/home/mysql_src/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.1-clean
2005-01-10 14:13:41 +01:00
unknown
d8d9f79e09 Fix for BUG#7658 "optimize crashes slave thread (1 in 1000)]":
mysql_admin_table() attempted to write to a vio which was 0. I could have fixed mysql_admin_table()
but fixing my_net_write() looked more future-proof.


sql/net_serv.cc:
  If no VIO, no write.
2005-01-10 13:52:32 +01:00