Commit graph

31 commits

Author SHA1 Message Date
Vladislav Vaintroub
4dfbf2ec93 Bug#38522: 5 seconds delay when closing application using embedded server
The problem here is that embedded server starts handle_thread manager 
thread  on mysql_library_init() does not stop it on mysql_library_end().
At shutdown, my_thread_global_end() waits for thread count to become 0,
but since we did not stop the thread it will give up after 5 seconds.
             
Solution is to move shutdown for handle_manager thread from kill_server()
(mysqld specific) to clean_up() that is used by both embedded and mysqld.
            
This patch also contains some refactorings - to avoid duplicate code,
start_handle_manager() and stop_handle_manager() functions are introduced.
Unused variables are eliminated. handle_manager does not rely on global
variable abort_loop anymore to stop (abort_loop is not set for embedded).
            
Note: Specifically on Windows and when using DBUG version of libmysqld, 
the complete solution requires removing obsolete code my_thread_init() 
from my_thread_var(). This has a side effect that a DBUG statement 
after my_thread_end() can cause thread counter to be incremented, and 
embedded will hang for some seconds. Or worse, my_thread_init() will 
crash if critical sections have been deleted by the global cleanup 
routine that runs in a different thread. 

This patch also fixes and revert prior changes for Bug#38293 
"Libmysqld crash in mysql_library_init if language file missing".

Root cause of the crash observed in Bug#38293  was bug in my_thread_init() 
described above
2008-12-04 19:41:53 +01:00
Vladislav Vaintroub
d0eae54036 Fix broken link in embedded server (Windows) 2008-11-21 11:15:26 +01:00
Alexey Botchkov
70e8a4fd54 Bug#38293 Libmysqld crash in mysql_library_init if language file missing
That's a Win-specific error.
    When we create libmysqld.dll we have many libraries like mysys, dbug,
    strings, etc linked into that dll, so the application built upon
    this library shouldn't link these libraries to itself, rather use
    those inside the dll.

    Fixed by redirecting calls into the libmysqld.dll

per-file comments:
  dbug/dbug.c
Bug#38293 Libmysqld crash in mysql_library_init if language file missing
    fake _db_something definitions added

  include/my_dbug.h
Bug#38293 Libmysqld crash in mysql_library_init if language file missing
  fake _db_something declarations added

  libmysqld/examples/CMakeLists.txt
Bug#38293 Libmysqld crash in mysql_library_init if language file missing
    superfluous libraries removed from linking

  libmysqld/libmysqld.def
Bug#38293 Libmysqld crash in mysql_library_init if language file missing
    set of mysys functions added to the export section
2008-11-19 13:57:23 +04:00
davi@endora.local
36d3c604c1 Merge mysql.com:/Users/davi/mysql/bugs/29592-5.0
into  mysql.com:/Users/davi/mysql/bugs/29592-5.1
2007-11-26 16:10:26 -02:00
davi@mysql.com/endora.local
cdad8669df Bug#29592 SQL Injection issue
Remove the mysql_odbc_escape_string() function. The function
has multi-byte character escaping issues, doesn't honor the
NO_BACKSLASH_ESCAPES mode and is not used anymore by the
Connector/ODBC as of 3.51.17.
2007-11-26 14:09:37 -02:00
iggy@amd64.(none)
35b1a59841 Bug#29903 The CMake build method does not produce the embedded library.
- Additional changes to correct link failure in Do-linkall script.
2007-08-03 18:56:24 -04:00
joerg@trift2.
4f6b3d107b Merge trift2.:/MySQL/M50/push-5.0
into  trift2.:/MySQL/M51/push-5.1
2007-06-18 20:22:18 +02:00
joerg@trift2.
cf95b9e40e Merge trift2.:/MySQL/M41/push-4.1
into  trift2.:/MySQL/M50/push-5.0
2007-06-18 19:44:58 +02:00
iggy@alf.
c15a2647a0 Embedded Server doesn't build on Windows.
- Add build configuration parameter EMBEDDED_ONLY which will configure 
the VS solution to produce only mysql embedded binary.
- Make necessary updates to successfully compile solution.
2007-06-15 14:32:16 -04:00
kent@mysql.com/c-554072d5.010-2112-6f72651.cust.bredbandsbolaget.se
425bbb3264 libmysqld.def:
Corrected name of mysql_thread_{init,end} (bug#29007)
2007-06-12 01:33:23 +02:00
rburnett@production.mysql.com
926d98d973 Merge production.mysql.com:/usersnfs/rburnett/tmp_merge2
into  production.mysql.com:/usersnfs/rburnett/mysql-5.1
2006-09-06 18:27:26 +02:00
holyfoot/hf@mysql.com/deer.(none)
4d8e38a693 bug #16513 (no mysql_set_server_option in libmysqld.dll export) 2006-08-19 15:15:36 +05:00
msvensson@neptunus.(none)
29ace143a1 Backport fix for mysql client not using SSl library directly
- Add function mysql_get_ssl_cipher
 - Use function mysql_get_ssl_cipher from mysql
2006-04-22 00:48:13 +02:00
msvensson@neptunus.(none)
c1e9bb8dea Add 'mysql_get_ssl_cipher' list of functions to export from libmysqld 2006-04-11 15:14:08 +02:00
knielsen@mysql.com
8e7907c36e Add embedded server build to the CMake build files. 2006-04-03 10:25:36 +02:00
monty@mishka.local
21ae963205 Fixes to previous changeset
get_defaults_file() -> get_defaults_options()
2005-07-18 20:05:30 +03:00
kent@mysql.com
0005165fa0 mysql_client_test.dsp, mysql_test_run_new.dsp, mysqltest.dsp:
Added /FD flag, to avoid include file warnings
mysqlclient.dsp:
  Removed duplicate entry for "strings/ctype-cp932.c"
  Added missing "mysys/my_access.c"
libmysqld.dsp:
  Added missing "mysys/charset.c"
libmysqld.def:
  Added symbol 'get_charset_name'
2005-06-09 00:49:37 +02:00
jani@a193-229-222-105.elisa-laajakaista.fi
c63ad3b549 New file default_modify.c. Fixed a typo on mysqld.cc
Changed name of function my_correct_default_file to
modify_defaults_file. Improved function and fixed some
bugs in it.
2005-05-18 20:10:17 +03:00
jimw@mysql.com
5f715b52d0 Fix test_libmysqld link problem on Windows. 2005-03-21 21:51:31 +01:00
mwagner@here.mwagner.org
292ca0959c libmysqld.def, libmysql.def:
Use the invisible tabs (!)
2005-01-12 21:04:31 -06:00
mwagner@here.mwagner.org
ffdeb4f880 libmysqld.def, libmysql.def:
Add missing 'get_defaults_files' to fix linking error.
2005-01-12 19:56:49 -06:00
miguel@hegel.(none)
58bdb6221c Export the stmt functions on Embedded Server 2004-07-21 19:29:08 -04:00
monty@mysql.com
017096695a Update version number
Fixed serbian error messages
Fix for windows regarding changed variable name
2004-06-01 22:29:46 +03:00
monty@mysql.com
61a6557307 merge with 4.0 to get windows fixes 2004-05-27 00:30:28 +03:00
hf@deer.(none)
78f58ff384 Fix to make Windows compilation smoother 2004-05-26 21:40:27 +05:00
monty@mysql.com
56c0258536 After merge fixes
Remove compiler warnings
Update windows project files
2004-05-24 14:42:34 +03:00
monty@mysql.com
a4b0ec1ede Merge with 4.0, mainly to get changes to windows project files 2004-05-20 00:54:52 +03:00
monty@mysql.com
86a966256b Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
Ensured that all projects compile
Removed compiler warnings
Better setting of server_version variable.
Fix that make_win_src_distribution creates the privilege tables.
2004-05-19 16:38:12 +03:00
monty@narttu.mysql.fi
1bd306ccd4 Fixed some new memory leaks
Updated VC++ files
2003-06-24 12:10:35 +03:00
monty@hundin.mysql.fi
8a2daeac77 Removed mysql_ssl_clear()
Added statistics information for alarms (for bug tracking)
Don't store "incomplete" in the xxx.cfg file if we are not using --restart. (Crash-me)
Enlarged STACK_BUF_ALLOC becasue of failed crash-me test
Aded new script mysql_tableinfo to make a system directory.
2002-06-27 11:27:04 +03:00
miguel@light.local
558d88f977 Win32 Embedded Server Changes 2002-01-09 05:38:48 -02:00