summaryrefslogtreecommitdiff
path: root/mysys
Commit message (Collapse)AuthorAgeFilesLines
* WL#2110 (SIGNAL)Marc Alff2009-09-103-16/+14
| | | | | | | | WL#2265 (RESIGNAL) Manual merge of SIGNAL and RESIGNAL to mysql-trunk-signal, plus required dependencies.
* 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