summaryrefslogtreecommitdiff
path: root/mysys
Commit message (Collapse)AuthorAgeFilesLines
* This is the downport ofVladislav Vaintroub2009-09-1123-398/+1161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug#24509 - 2048 file descriptor limit on windows needs increasing, also WL#3049 - improved Windows I/O The patch replaces the use of the POSIX I/O interfaces in mysys on Windows with the Win32 API calls (CreateFile, WriteFile, etc). The Windows HANDLE for the open file is stored in the my_file_info struct, along with a flag for append mode because the Windows API does not support opening files in append mode in all cases) The default max open files has been increased to 16384 and can be increased further by setting --max-open-files=<value> during the server start. Another major change in this patch that almost all Windows specific file IO code has been moved to a new file my_winfile.c, greatly reducing the amount of code in #ifdef blocks within mysys, thus improving readability. Minor enhancements: - my_(f)stat() is changed to use __stati64 structure with 64 file size and timestamps. It will return correct file size now (C runtime implementation used to report outdated information) - my_lock on Windows is prepared to handle additional timeout parameter - after review : changed __WIN__ to _WIN32 in the new and changed code. client/mysqlbinlog.cc: fileno -> my_fileno client/readline.cc: fileno -> my_fileno include/config-win.h: Increase OS_FILE_LIMIT for Windows. Remove O_SHARE - Windows does not support it. Its definition conflicts with O_SHORT_LIVED, that has different semantics. include/my_dir.h: Use stat64 for stat() family of functions on Windows, because of 64 bit file size. include/my_global.h: Increased default value for open file limit to 16K include/my_sys.h: - my_file_info got new structure members - file handle and open flags - 2 new Windows-only mysys functions : my_get_osfhandle and my_osmaperr, modelled after Windows C runtime functions _get_osfhandle and _dosmaperr libmysql/CMakeLists.txt: new files my_winfile.c and my_winerr.c mysql-test/suite/large_tests/r/lock_tables_big.result: test for more then 2048 open file descriptors on Windows mysql-test/suite/large_tests/t/lock_tables_big.test: test for more then 2048 open file descriptors on Windows mysys/CMakeLists.txt: new files my_winfile.c and my_winerr.c mysys/Makefile.am: new files my_winfile.c and my_winerr.c mysys/default_modify.c: fileno -> my_fileno mysys/my_chsize.c: implementation of chsize on Windows now moved to my_winfile.c mysys/my_create.c: - my_sopen->my_win_open - close open file before removing (won't generally work on Windows otherwise) mysys/my_file.c: On Windows, files returned by my_open will not start with 0, but 2048 (making it simple to detect incompatible mix of CRT and mysys io functions) mysys/my_fopen.c: fileno->my_win_fileno , fclose->my_win_fclose, fdopen->my_win_fdopen Check for legal filename is done by my_win_[f]open functions mysys/my_fstream.c: fileno->my_fileno mysys/my_lib.c: Windows stat() functions are moved to my_winfile.c mysys/my_lock.c: Move Windows code under #ifdef to a separate function win_lock(). Add a parameter for lock wait timeout mysys/my_mmap.c: _get_osfhandle->my_get_osfhandle mysys/my_open.c: my_sopen->my_win_open (simpler interface) mysys/my_pread.c: moved most windows specific code to my_win_file.c Use my_win_pread mysys/my_quick.c: Use my_win_read/my_win_write mysys/my_read.c: Moved most of windows specific code to my_win_file.c Use my_win_read() mysys/my_seek.c: On Windows, use my_win_lseek() in my_seek()/my_tell() Removed dead code (synchronization of lseeks) Improved DBUG tracing (file position is ulonglong, not ulong) mysys/my_static.c: Removed array initialization. my_file_info_default is global variable thus it is initialized with all zeros anyway mysys/my_sync.c: _commit->my_win_fsync mysys/my_winerr.c: New file my_winerr.c Exports my_osmaperr modelled after undocumented C runtime function _dosmaperr(). The problem with _dosmaperr() used previously is that 1) it is nowhere documented and thus code relying on it is not guaranteed to work in subsequent releases on the C runtime 2) it is present only in static C runtime (mysqld does not link if compiled with /MD) mysys/my_winfile.c: New file my_winfile.c Implements ANSI/Posix file IO routines, when possible using native Windows IO, without C runtime (C runtime dropped because of the 2048 file descriptor limit). mysys/my_write.c: write->my_win_write mysys/mysys_priv.h: Declaration of Windows Posix functions (private to mysys, shall not be visible outside) storage/innobase/handler/ha_innodb.cc: mysys native Windows IO : correct innodb tmp file handling mysql_tmpfile does not return valid CRT file descriptor, thus it is not possible to dup() it. Instead, the native file handle has to be duplicated and then converted to CRT descriptor. storage/myisam/mi_locking.c: _commit->my_sync
* merge of 5.1-main into mysql-trunk.Guilhem Bichot2009-08-123-9/+10
|\ | | | | | | | | Changes to ha_innodb.cc are not propagated to plugin, they will come back via Oracle/Innobase if needed.
| * Merge mysql-5.1-innodb_plugin to mysql-5.1.Sergey Vojtovich2009-08-111-1/+1
| |\
| * \ Auto-mergeIgnacio Galarza2009-07-311-1/+1
| |\ \
| | * | Bug#17270 - mysql client tool could not find ../share/charsets folder and fails.Ignacio Galarza2009-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Define and pass compile time path variables as pre-processor definitions to mimic the makefile build. - Set new CMake version and policy requirements explicitly. - Changed DATADIR to MYSQL_DATADIR to avoid conflicting definition in Platform SDK header ObjIdl.h which also defines DATADIR.
| * | | merging with mysql-5.1-bugteam branchSatya B2009-07-271-7/+7
| |\ \ \
| | * \ \ merging with mysql-5.0-bugteamV Narayanan2009-07-171-7/+7
| | |\ \ \ | | | |/ /
| | | * | Bug#43572 Handle failures from hash_initV Narayanan2009-07-121-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is a follow up to http://lists.mysql.com/commits/76678. When an allocation failure occurs for the buffer in the dynamic array, an error condition was being set. The dynamic array is usable even if the memory allocation fails. Since in most cases the thread can continue to work without any problems the error condition should not be set here. This patch adds logic to remove the error condition from being set when the memory allocation for the buffer in dynamic array fails. mysys/array.c: Bug#43572 Handle failures from hash_init Remove the MY_WME flag from the call to malloc in order to prevent the error status from being set in the init_dynamic_array method. Since this memory allocation failure is no longer fatal this method has been modified to return FALSE (indicate success) irrespective of array->buffer being allocated.
| * | | | merge 5.0-bugteam to 5.1-bugteamSatya B2009-07-241-1/+2
| |\ \ \ \ | | |/ / / | |/| / / | | |/ /
* | | | Creation of mysql-trunk = {summit + "Innodb plugin replacing the builtin"}:Guilhem Bichot2009-08-046-17/+51
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | bzr branch mysql-5.1-performance-version mysql-trunk # Summit cd mysql-trunk bzr merge mysql-5.1-innodb_plugin # which is 5.1 + Innodb plugin bzr rm innobase # remove the builtin Next step: build, test fixes.
| * | | Merge 5.1-bugteam -> 5.1-innodb_plugin.Sergey Vojtovich2009-07-142-9/+42
| |\ \ \ | | |/ /
| | * | AutomergeKristofer Pettersson2009-06-251-2/+13
| | |\ \
| | | * | Bug#45336 --enable-foobar doesn't work for any plugin foobar.Kristofer Pettersson2009-06-251-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because of a regression introduced by bug#19027 the option --enable-foobar doesn't work anymore for any plugin 'foobar'. The reason is that plugin names are tristate options variables with optional parameters and integer values are not accepted. Since the 'enable' prefix attempts to assign '1' to the option the operation fails. This patch translates any number n assigned to a plugin variable of type ENUM to be the corresponding enumerated item. As a side effect --enable-foobar and --disable-foobar will also start working again. mysys/my_getopt.c: * setval now accepts integer values for option variables of type ENUM.
| | * | | Bug#43572 Handle failures from hash_initV Narayanan2009-06-221-1/+1
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The merge from http://lists.mysql.com/commits/76678 caused the growth_size parameter to the my_init_dynamic_array function to be ignored. This patch corrects the problem. mysys/hash.c: Bug#43572 Handle failures from hash_init Replacing the last parameter to my_init_dynamic_array with growth_size.
| | * | merging with mysql-5.0-bugteamV Narayanan2009-06-191-7/+29
| | |\ \ | | | |/
| | | * Bug#43572 Handle failures from hash_initV Narayanan2009-06-191-6/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Failure to allocate memory for the hash->array element, caused hash_init to return without initializing the other members of the hash. Thus although the dynamic array buffer may be allocated at a later point in the code, the incompletely initialized hash caused fatal failures. This patch moves the initialization of the other members of the hash above the array allocation, so that the usage of this hash will not result in fatal failures. include/hash.h: Bug#43572 Handle failures from hash_init hash_inited is used to verify that the hash is valid. After the change induced by the current patch hash->array.buffer !=0 is not a valid check for this condition, since, the dynamic array can be allocated even at a later time. Bootstrap SQL script is setting some variables, which are actually not set due to this hash_inited issue. Thus we get empty grant tables. A better way to check if the hash is valid is to verify that hash->blength is greater than 0. mysys/hash.c: Bug#43572 Handle failures from hash_init Move the initialization of the other members of the hash above the array allocation, so that the usage of this hash will not result in fatal failures.
| * | | Backport WL#3653 to 5.1 to enable bundled innodb plugin.Vladislav Vaintroub2009-06-101-1/+1
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove custom DLL loader code from innodb plugin code, use symbols exported from mysqld. storage/innodb_plugin/handler/ha_innodb.cc: Remove a Win32 workaround for current_thd. The original problem that innodb plugin used value of TLS variable across DLL boundaries is solved in MySQL server (current_thd is a function not TLS variable now) storage/innodb_plugin/handler/handler0alter.cc: Remove custom delay loader storage/innodb_plugin/handler/handler0vars.h: Remove custom delay loader storage/innodb_plugin/handler/i_s.cc: Remove custom delay loader storage/innodb_plugin/handler/win_delay_loader.cc: Remove custom delay loader storage/innodb_plugin/plug.in: Remove commented out MYSQL_PLUGIN_STATIC, CMake would not parse that correctly
| * | auto-merge 5.1-bugteam (local) --> 5.1-bugteamAlfranio Correia2009-05-211-1/+1
| |\ \
| | * | BUG#43949 Initialization of slave produces a warning message in ValgrindAlfranio Correia2009-04-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to define the --slave-load-tmpdir, the init_relay_log_file() was calling fn_format(MY_PACK_FILENAME) which internally was indirectly calling strmov_overlapp() (through pack_dirname) and the following warning message was being printed out while running in Valgrind: "source and destination overlap in strcpy". We fixed the issue by removing the flag MY_PACK_FILENAME as it was not necessary. In a nutshell, with this flag the function fn_format() tried to replace a directory by either "~", "." or "..". However, we wanted exactly to remove such strings. In this patch, we also refactored the functions init_relay_log_file() and check_temp_dir(). The former was refactored to call the fn_format() with the flag MY_SAFE_PATH along with the MY_RETURN_REAL_PATH, in order to avoid issues with long directories and return an absolute path, respectively. The flag MY_SAFE_UNPACK_FILENAME was removed too as it was responsible for removing "~", "." or ".." only from the file parameter and we wanted to remove such strings from the directory parameter in the fn_format(). This result is stored in an rli variable, which is then processed by the other function in order to verify if the directory exists and if we are able to create files in it. mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist.test: Changed the output to make it consistent among different runs. mysys/mf_format.c: Replaced a return for DBUG_RETURN.
| * | | Auto mergeKristofer Pettersson2009-05-151-1/+2
| |\ \ \
| | * | | Bug#19027 MySQL 5.0 starts even with Fatal InnoDB errorsKristofer Pettersson2009-05-141-1/+2
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is not possible to prevent the server from starting if a mandatory built-in plugin fails to start. This can in some cases lead to data corruption when the old table name space suddenly is used by a different storage engine. A boolean command line option in the form of --foobar is automatically created for every existing plugin "foobar". By changing this command line option from a boolean to a tristate { OFF, ON, FORCE } it is possible to specify the plugin loading policy for each plugin. The behavior is specified as follows: OFF = Disable the plugin and start the server ON = Enable the plugin and start the server even if an error occurrs during plugin initialization. FORCE = Enable the plugin but don't start the server if an error occurrs during plugin initialization. mysql-test/lib/mtr_cases.pm: * Changed --<pluginname> from a boolean to a tristate. mysys/my_getopt.c: * Changed --<pluginname> from boolean to tristate. Optional arguments must still work for tristates. It is praxis that disable means value 0 and enable is value 1. Since plugin name is the only tristate with optional arguments this principle will still hold. sql/sql_plugin.cc: * Changed --<pluginname> option from a boolean type to a tristate. - FORCE will now terminate the server if the plugin fails to initialize properly. * Refactored prototypes for test_plugin_options() and construct_options() to get rid of the 'enable' value pointer. * Cleaned up code related to option name constructing. * Added documentation sql/sql_plugin.h: * Introduced new member to st_plugin_int structure.
| * | | Merge from 5.0-bugteamJim Winstead2009-05-131-4/+4
| |\ \ \ | | | |/ | | |/|
| | * | The get_date() function in mysys interpreted the GETDATE_GMT optionJim Winstead2009-05-071-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | backwards, which resulted in the incorrect time being reported at the end of mysqldump. (Bug #44424, patch by Andrew Hutchings)
* | | | Merge MySQL 5.1.35 into MySQL 5.4Mikael Ronstrom2009-06-1127-406/+434
|\ \ \ \
| * \ \ \ Merge main 5.1 into 5.1-buildJoerg Bruehe2009-05-083-17/+34
| |\ \ \ \ | | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 165 changesets with 23 conflicts: Text conflict in mysql-test/r/lock_multi.result Text conflict in mysql-test/t/lock_multi.test Text conflict in mysql-test/t/mysqldump.test Text conflict in sql/item_strfunc.cc Text conflict in sql/log.cc Text conflict in sql/log_event.cc Text conflict in sql/parse_file.cc Text conflict in sql/slave.cc Text conflict in sql/sp.cc Text conflict in sql/sp_head.cc Text conflict in sql/sql_acl.cc Text conflict in sql/sql_base.cc Text conflict in sql/sql_class.cc Text conflict in sql/sql_crypt.cc Text conflict in sql/sql_db.cc Text conflict in sql/sql_lex.cc Text conflict in sql/sql_parse.cc Text conflict in sql/sql_select.cc Text conflict in sql/sql_table.cc Text conflict in sql/sql_view.cc Text conflict in storage/innobase/handler/ha_innodb.cc Text conflict in storage/myisam/mi_packrec.c Text conflict in tests/mysql_client_test.c Updates to Innobase, taken from main 5.1: bzr: ERROR: Some change isn't sane: File mysql-test/r/innodb-semi-consistent.result is owned by Innobase and should not be updated. File mysql-test/t/innodb-semi-consistent.test is owned by Innobase and should not be updated. File storage/innobase/handler/ha_innodb.cc is owned by Innobase and should not be updated. File storage/innobase/ibuf/ibuf0ibuf.c is owned by Innobase and should not be updated. File storage/innobase/include/row0mysql.h is owned by Innobase and should not be updated. File storage/innobase/include/srv0srv.h is owned by Innobase and should not be updated. File storage/innobase/include/trx0trx.h is owned by Innobase and should not be updated. File storage/innobase/include/trx0trx.ic is owned by Innobase and should not be updated. File storage/innobase/lock/lock0lock.c is owned by Innobase and should not be updated. File storage/innobase/page/page0cur.c is owned by Innobase and should not be updated. File storage/innobase/row/row0mysql.c is owned by Innobase and should not be updated. File storage/innobase/row/row0sel.c is owned by Innobase and should not be updated. File storage/innobase/srv/srv0srv.c is owned by Innobase and should not be updated. File storage/innobase/trx/trx0trx.c is owned by Innobase and should not be updated. (Set env var 'ALLOW_UPDATE_INNOBASE_OWNED' to override.)
| | * | | Bug#43932 myisam index corruption with large index and large Vladislav Vaintroub2009-04-292-3/+5
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | key_buffer_size. The cause of corruption was number overflow when multiplying two ulong values, number of used keycache blocks with size of a single block. The result of multiplication exceeded ulong range (4G) and this lead to incorrectly calculated buffer offset in the key cache. The fix is to use size_t for multiplication result. This patch also fixes pointless cast in safemalloc (size of allocated block to uint), that creates lot of false alarm warnings when using big keycache (> 4GB) in debug mode.
| | * | Bug#43706: libmysqld segfaults when re-intialisedDavi Arnaut2009-04-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug#44091: libmysqld gets stuck waiting on mutex on initialization The problem was that libmysqld wasn't enforcing a certain initialization and deinitialization order for the mysys library. Another problem was that the global object used for management of log event handlers (aka LOGGER) wasn't being prepared for a possible reutilization. What leads to the hang/crash reported is that a failure to load the language file triggers a double call of the cleanup functions, causing an already destroyed mutex to be used. The solution is enforce a order on the initialization and deinitialization of the mysys library within the libmysqld library and to ensure that the global LOGGER object reset it's internal state during cleanup. mysys/my_init.c: Deinitialize only if initialized already. sql/log.cc: Reset state.
| | * | Bug#42649 THR_LOCK_charset global mutex abused by InnoDBAlexander Barkov2009-04-071-15/+26
| |/ / | | | | | | | | | | | | The patch was originally proposed by Mikael and reviewed by Bar.
| * | merged 5.0-bugteam -> 5.1-bugteamGeorgi Kodinov2009-03-242-3/+4
| |\ \ | | |/
| | * Bug#43461: invalid comparison with string literal in default.cDavi Arnaut2009-03-192-3/+4
| | | | | | | | | | | | | | | | | | | | | Don't compare string literals as it results in unspecified behavior. mysys/default.c: Test for a empty string.
| | * auto-mergeIgnacio Galarza2009-03-195-318/+283
| | |\
| * | | fixed compilation warnings. addendum to the fix for bug 29125Georgi Kodinov2009-03-201-1/+1
| | | |
| * | | Fixed a prototype to match the actual function signature (addendum to theGeorgi Kodinov2009-03-201-1/+1
| | | | | | | | | | | | | | | | | | | | fix for 29125).
| * | | auto-mergeIgnacio Galarza2009-03-191-4/+9
| |\ \ \
| | * \ \ Merge bugteam and fix for 42675.Chad MILLER2009-03-181-4/+9
| | |\ \ \
| | | * | | Fix indentation. tab -> spacesChad MILLER2009-03-171-1/+1
| | | | | |
| | | * | | Bug#42675: Dangling pointer leads to a client crash (mysys/my_error.c \Chad MILLER2009-03-171-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | patch enclosed) One call to my_error_unregister_all() would free pointers, but leave one pointer to just-freed memory still assigned. That's the bug. Subsequent calls of this function would try to follow pointers into deallocated, garbage memory and almost certainly SEGV. Now, after freeing a linked list, unset the initial pointer.
| * | | | | auto-mergeIgnacio Galarza2009-03-192-16/+55
| |\ \ \ \ \ | | |/ / / /
| | * | | | 36446: fix Windows warningTatiana A. Nurnberg2009-03-171-1/+1
| | | | | |
| | * | | | manual mergeTatiana A. Nurnberg2009-03-161-14/+51
| | |\ \ \ \ | | | |/ / /
| | | * | | Manual merge of patch for bug #40552 into the team tree.Alexey Kopytov2009-03-161-14/+51
| | | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaced a call to load_defaults() in sql_plugin.cc with its thread-safe version.
| | | | * | | Fix for bug #40552: Race condition around default_directories Alexey Kopytov2009-02-271-14/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in load_defaults() load_defaults(), my_search_option_files() and my_print_default_files() utilized a global variable containing a pointer to thread local memory. This could lead to race conditions when those functions were called with high concurrency. Fixed by changing the interface of the said functions to avoid the necessity for using a global variable. Since we cannot change load_defaults() prototype for API compatibility reasons, it was renamed my_load_defaults(). Now load_defaults() is a thread-unsafe wrapper around a thread-safe version, my_load_defaults(). mysys/default.c: 1. Added a thread-safe version of load_defaults(), changed load_defaults() with the old interface to be a thread-unsafe wrapper around the thread-safe version. 2. Always use a private MEM_ROOT in my_print_default_files, don't use a global variable. sql-common/client.c: Use a thread-safe version of load_defaults().
| | * | | | | Bug#36446: Attempt to set @@join_buffer_size to its minimum value produces ↵Tatiana A. Nurnberg2009-03-161-2/+4
| | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | spurious warning If a sys-var has a base and a block-size>1, and then a user-supplied value >= minimum ended up below minimum thanks to block-size alignment, we threw a warning. This meant for instance that when getting, then setting the minimum, we'd see a warning. This was needlessly confusing. (updated patch)
| * | | | | auto-mergeIgnacio Galarza2009-03-177-328/+297
| |\ \ \ \ \ | | |/ / / /
| | * | | | merge of bug 42434 to 5.1-bugteamGeorgi Kodinov2009-03-111-305/+262
| | |\ \ \ \ | | | | |_|/ | | | |/| |
| | | * | | Bug #42434: license of mysys MD5 implementation is not GPL-compatibleGeorgi Kodinov2009-03-091-305/+262
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Took the Xfree implementation (based on the same rewrite as the NDB one) and added it instead of the current implementation. Added a macro to make the calls to MD5 more streamlined. client/mysqlmanager-pwgen.c: Bug #42434: changed to call the macro include/my_md5.h: Bug #42434: use the Xfree implementation mysys/md5.c: Bug #42434: use the Xfree implementation sql/item_strfunc.cc: Bug #42434: changed to call the macro sql/table.cc: Bug #42434: changed to call the macro tools/mysqlmanager.c: Bug #42434: changed to call the macro
| | * | | | Merge BUG#22082 from 5.0-bugteam to 5.1-bugteamHe Zhenxing2009-03-064-13/+21
| | |\ \ \ \ | | | |/ / /
| | | * | | BUG#22082 Slave hangs(holds mutex) on "disk full"He Zhenxing2009-03-064-13/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When disk is full, server may waiting for free space while writing binlog, relay-log or MyISAM tables. The server will continue after user have freed some space. But the error message printed was not quite clear about the how often the error message is printed, and there will be a delay before the server continue and user freeing space. And caused users thinking that the server was hanging forever. This patch fixed the problem by making the error messages printed more clear. The error message is split into two part, the first part will only be printed once, and the second part will be printed very 10 times. Message first part: Disk is full writing '<filename>' (Errcode: <errorno>). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space) Message second part: Retry in 60 secs, Message reprinted in 600 secs
| | * | | | merging.Alexey Botchkov2009-02-242-10/+14
| | |\ \ \ \ | | | |_|/ / | | |/| | |
| | | * | | Bug#39289 libmysqld.a calls exit() upon error Alexey Botchkov2008-10-273-19/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several functions (mostly in mysqld.cc) directly call exit() function in case of errors, which is not a desired behaviour expecially in the embedded-server library. Fixed by making these functions return error sign instead of exiting. per-file comments: include/my_getopt.h Bug#39289 libmysqld.a calls exit() upon error added 'error' retvalue for my_getopt_register_get_addr libmysqld/lib_sql.cc Bug#39289 libmysqld.a calls exit() upon error unireg_clear() function implemented mysys/default.c Bug#39289 libmysqld.a calls exit() upon error error returned instead of exit() call mysys/mf_tempdir.c Bug#39289 libmysqld.a calls exit() upon error free_tmpdir() - fixed so it's not produce crash on uninitialized tmpdir structure mysys/my_getopt.c Bug#39289 libmysqld.a calls exit() upon error error returned instead of exit() call sql/mysql_priv.h Bug#39289 libmysqld.a calls exit() upon error unireg_abort definition fixed for the embedded server sql/mysqld.cc Bug#39289 libmysqld.a calls exit() upon error various functions fixed error returned instead of exit() call