Commit graph

120 commits

Author SHA1 Message Date
Georgi Kodinov
0d56490ced Bug #57774: Typos/ambiguities in the WL1054 comments
Fixed few typos and added better wording as suggested.
2010-10-27 18:12:17 +03:00
Horst.Hunger
237dfb742f due to merge 2010-10-20 16:56:09 +02:00
Davi Arnaut
96c99602d4 Bug#45288: pb2 returns a lot of compilation warnings on linux
Fix warnings related to the use of the deprecated gets() function
and passing NULL to non-pointer argument of the sys_var constructor.
2010-10-07 21:53:00 -03:00
Georgi Kodinov
fee2a518b4 Bug #56767: Make sure client plugins in 1054 are compatible with
connectors plugins
      
Implemented changes needed to keep the client plugin API compatible with 
the existing plugins :
      
1. Provided an options() client plugin API to let the application pass
options to the plugin after loading it
2. Added "License" (const char *) to specify the client plugin's license
3. Added "mysql_api" as a placeholder that the client library can use
to pass function pointers to the plugin so that the plugin can call the 
C lib back.
4. Updated the existing client plugins to comply with the API change.
5. Added more detailed error message generation for Windows.
2010-10-04 15:54:41 +03:00
Georgi Kodinov
99039957fe WL#1054: code style remarks fixed. 2010-09-20 19:38:27 +03:00
Georgi Kodinov
5c81e2cf16 merged mysql-5.5 into WL1054-5.5 2010-08-16 18:16:07 +03:00
Georgi Kodinov
0e2adc4ae6 Bug #55634, Bug#55635, Bug#55637, Bug#55638
Fixed copyright texts..
2010-08-16 17:34:09 +03:00
Alexander Nozdrin
13ec2a1625 Patch for Bug#55854 (MySQL AB should not be AUTHOR, copyright incorrect).
Fixing copyright text.
2010-08-12 19:19:57 +04:00
Georgi Kodinov
881a76699e WL#1054: Pluggable authentication support
Merged the implementation to a new base tree.
2010-08-09 11:32:50 +03:00
Davi Arnaut
649390ac81 Merge of mysql-trunk-bugfixing into mysql-trunk-merge. 2010-07-15 10:47:50 -03:00
Davi Arnaut
e1f748c0bd Merge of mysql-5.1-bugteam into mysql-trunk-merge. 2010-07-09 09:28:51 -03:00
Davi Arnaut
4f59204b49 Bug#53445: Build with -Wall and fix warnings that it generates
Introduce a MySQL maintainer/developer mode that enables
a set of warning options for the C/C++ compiler. This mode
is intended to help improve the overall quality of the code.

The warning options are:

C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Werror"
CXX_WARNINGS="$C_WARNINGS -Wno-unused-parameter"

Since -Wall is essentially a moving target, autoconf checks
are not run with warning options enabled, in particualr -Werror.
This decision might be revisited in the future. The patch also
fixes a mistake in the makefiles, where automake CXXFLAGS would
be set to CFLAGS.
2010-07-09 08:37:51 -03:00
Davi Arnaut
a10ae35328 Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Essentially, the problem is that safemalloc is excruciatingly
slow as it checks all allocated blocks for overrun at each
memory management primitive, yielding a almost exponential
slowdown for the memory management functions (malloc, realloc,
free). The overrun check basically consists of verifying some
bytes of a block for certain magic keys, which catches some
simple forms of overrun. Another minor problem is violation
of aliasing rules and that its own internal list of blocks
is prone to corruption.

Another issue with safemalloc is rather the maintenance cost
as the tool has a significant impact on the server code.
Given the magnitude of memory debuggers available nowadays,
especially those that are provided with the platform malloc
implementation, maintenance of a in-house and largely obsolete
memory debugger becomes a burden that is not worth the effort
due to its slowness and lack of support for detecting more
common forms of heap corruption.

Since there are third-party tools that can provide the same
functionality at a lower or comparable performance cost, the
solution is to simply remove safemalloc. Third-party tools
can provide the same functionality at a lower or comparable
performance cost. 

The removal of safemalloc also allows a simplification of the
malloc wrappers, removing quite a bit of kludge: redefinition
of my_malloc, my_free and the removal of the unused second
argument of my_free. Since free() always check whether the
supplied pointer is null, redudant checks are also removed.

Also, this patch adds unit testing for my_malloc and moves
my_realloc implementation into the same file as the other
memory allocation primitives.
2010-07-08 18:20:08 -03:00
Daniel Fischer
9891642e77 merge 2010-06-18 17:04:15 +02:00
Davi Arnaut
75dce25ca8 Post-merge fix: header is used by the client API. Obvious in retrospect.
Also, update a few cases missed by the initial patch.
2010-06-05 16:39:03 -03:00
Davi Arnaut
5dec0c9637 Bug#53445: Build with -Wall and fix warnings that it generates
Fix various mismatches between function's language linkage. Any
particular function that is declared in C++ but should be callable
from C must have C linkage. Note that function types with different
linkages are also distinct. Thus, if a function type is declared in
C code, it will have C linkage (same if declared in a extern "C"
block).
2010-05-31 12:29:54 -03:00
He Zhenxing
a06e034dd4 Auto merge from 5.1-rep-semisync 2010-06-02 20:57:39 +08:00
He Zhenxing
f2a9896c47 Post fix for bug#52748 2010-06-02 18:57:52 +08:00
He Zhenxing
5725d2303e BUG#52748 Semi-Sync ACK packet isn't check for length
Check the length and use strncpy to make the code safer.
2010-06-01 16:54:52 +08:00
He Zhenxing
1bcba61847 BUG#52748 Semi-Sync ACK packet isn't check for length
Check the length and use strncpy to make the code safer.
2010-06-01 16:59:48 +08:00
Jonathan Perkin
7609b38454 Fix HP-UX localtime_r issue correctly, patch from mats. 2010-05-27 12:52:01 +01:00
Jonathan Perkin
6ed71b7d1e Pull in time.h for localtime_r. 2010-05-25 14:37:35 +01:00
Alexander Nozdrin
091bcacc79 Another incarnation of the patch for Bug#30708
(make relies GNU extentions). The patch was partially
backport from 6.0.

Original comment:
bug#30708: make relies GNU extensions.  Now that we no longer use
BitKeeper we can safely remove the SCCS handling with no loss of
functionality.
2010-05-19 17:00:23 +04:00
Jonathan Perkin
89aedeb06d Revert back to new CMake names for audit_null/daemon_example plugins. 2010-05-12 16:32:31 +01:00
Jonathan Perkin
5b85121ca6 Changes to build using CMake according to existing release packages:
- Update/fix file layouts for each package type, add new types for
   native package formats including deb, rpm and svr4.

 - Build all plugins, including debug versions

 - Update compiler flags to match current release

 - Add missing @VAR@ expansions

 - Install correct mysqclient library symlinks

 - Fix icc/ia64 builds

 - Fix install of libmysqld-debug

 - Don't include mysql_embedded

 - Remove unpackaged manual pages to avoid missing files warnings

 - Don't install mtr's test suite
2010-05-12 12:51:23 +01:00
Jonathan Perkin
9f28252385 fix syntax error 2010-05-05 14:28:02 +02:00
Jonathan Perkin
2c9803580f Build all plugins.
Try to fix ia64/icc builds.
2010-05-05 13:49:03 +02:00
Sergey Vojtovich
a2ed9137cc Merge fixes for BUG46587 and BUG47059 to trunk-bugfixing. 2010-04-15 13:36:36 +04:00
Sergey Vojtovich
1b12f4c233 BUG#47059 - In audit plugin I cannot see the event subclasses,
e.g.MYSQL_AUDIT_GENERAL_ERROR

General audit API (MYSQL_AUDIT_GENERAL_CLASS) didn't expose event
subclass to plugins.

This patch exposes event subclass to plugins via
struct mysql_event_general::event_subclass.

This change is not compatible with existing general audit plugins.
Audit interface major version has been incremented.
2010-04-15 13:05:17 +04:00
Mats Kindahl
e409d6f69c WL#5030: Split and remove mysql_priv.h
This patch:

- Moves all definitions from the mysql_priv.h file into
  header files for the component where the variable is
  defined
- Creates header files if the component lacks one
- Eliminates all include directives from mysql_priv.h
- Eliminates all circular include cycles
- Rename time.cc to sql_time.cc
- Rename mysql_priv.h to sql_priv.h
2010-03-31 16:05:33 +02:00
Joerg Bruehe
283188c939 Automerge the bug#49022 fix correction into next-mr-bugfixing. 2010-03-12 10:56:56 +01:00
Joerg Bruehe
1f9235f04b Fix for the bug#49022 patch, detected by further testing. 2010-03-11 16:37:51 +01:00
He Zhenxing
99d1b2bd9a Auto merge 2010-03-11 10:58:20 +08:00
He Zhenxing
3760845b72 Auto merge from 5.1-rep-semisync 2010-03-11 10:22:18 +08:00
He Zhenxing
b2e3fb8a6f Post fix for Bug#49557 2010-03-10 18:32:21 +08:00
Joerg Bruehe
c2676e2b5d Part of the fixes for bug#49022
Plugins included into bin release cannot be
    installed on debug version of server

IF    the build process was split into separate "debug" and
      "optimized" builds
   AND
      the plugin files of the debug build got copied into
      "plugin/debug/"
(both is done for MySQL release builds starting from 5.5.3),
THEN these debug plugin files are to be included in the
     final binary package.

This change deals with the inclusion only,
the other parts are done in different changesets.
2010-03-10 10:48:43 +01:00
Jonathan Perkin
c55c87024e Fix truncated GPL text. 2010-02-26 15:04:07 +00:00
He Zhenxing
522311e0c9 Bug#49557 "semisync" plugin test fails on Windows
The problem was because the gettimeofday function was incorrect
implemented for Windows, and so the semisync master did not wait
for slave reply properly on Windows.

Fixed by removing the gettimeofday function for Windows, and using
set_timespec function to get current time for all platforms.
2010-02-23 17:26:56 +08:00
Vladislav Vaintroub
8ba512559c merge 2010-02-13 17:01:32 +01:00
Vladislav Vaintroub
9a1746a04c Cleanup casing in MYSQL_ADD_PLUGIN, patch provided by Kent 2010-02-01 23:46:02 +01:00
52bc6179d9 Manual Merge for bug#50157 2010-01-31 21:37:41 +08:00
85589577e7 BUG#50157 Assertion !active_tranxs_->is_tranx_end_pos(..) in ReplSemiSyncMaster::commitTrx
The root cause of the crash is that a TranxNode is freed before it is used.
A TranxNode is allocated and inserted into the active list each time 
a log event is written and flushed into the binlog file. 
The memory for TranxNode is allocated with thd_alloc and will be freed 
at the end of the statement. The after_commit/after_rollback callback
was supposed to be called before the end of each statement and remove the node from
the active list. However this assumption is not correct in all cases(e.g. call 
'CREATE TEMPORARY TABLE myisam_t SELECT * FROM innodb_t' in a transaction
 and delete all temporary tables automatically when a session closed), 
and can cause the memory allocated for TranxNode be freed
before it was removed from the active list. So The TranxNode pointer in the active
list would become a wild pointer and cause the crash.

After this patch, We have a class called a TranxNodeAllocate which manages the memory
for allocating and freeing TranxNode. It uses my_malloc to allocate memory.
2010-01-31 02:26:51 +08:00
Vladislav Vaintroub
add502a268 add CMakeLists.txt to EXTRA_DIST for audit_null 2010-01-26 07:54:03 +01:00
Vladislav Vaintroub
ebf2e76289 merge, add plugin/audit_null/CMakeLists.txt 2010-01-26 05:39:48 +01:00
Sergey Vojtovich
92985af1ff Merge backport of WL#3771 with mysql-next-mr. 2010-01-19 17:30:55 +04:00
Alexander Nozdrin
594d05a688 Auto-merge from mysql-next-mr. 2009-12-19 11:35:19 +03:00
Vladislav Vaintroub
9c9cc49060 merge 2009-12-19 03:21:49 +01:00
Vladislav Vaintroub
dc803c99d0 merge 2009-12-18 22:13:56 +01:00
Vladislav Vaintroub
e378fa5be0 Bug #49811: inconsistent usage of SAFEMALLOC in debug compilation on windows
Remove per-project SAFEMALLOCs definitions, as they result in malloc/free mismatches.
2009-12-18 21:39:24 +01:00
Alexander Nozdrin
0b1a15e9a7 Backporing patch for Bug#48351 (Inconsistent library names for semisync plugin)
from mysql-next-mr-bugfixing to mysql-trunk-bugfixing.

Original revision:
------------------------------------------------------------
revision-id: zhenxing.he@sun.com-20091127084945-wng7gakygduv3q8k
committer: He Zhenxing <zhenxing.he@sun.com>
branch nick: 5.1-rep-semisync
timestamp: Fri 2009-11-27 16:49:45 +0800
message:
  Bug#48351 Inconsistent library names for semisync plugin
  
  The semisync plugin library names on Unix like systems were prefixed with
  'lib', which did not follow the conventions.
  
  Fix the problem by removing the 'lib' prefix on Unix systems.
------------------------------------------------------------
2009-12-15 23:40:20 +03:00