Commit graph

23 commits

Author SHA1 Message Date
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
Sergei Golubchik
6eaf0b5acb backport of dbug extensions from 6.0:
function/ syntax
  glob(7) wildcards
  unit tests
2009-10-30 19:13:58 +01:00
kent@kent-amd64.(none)
58763e383e Merge mysql.com:/home/kent/bk/main/mysql-5.0
into  mysql.com:/home/kent/bk/main/mysql-5.1
2006-12-31 01:32:21 +01:00
kent@mysql.com/kent-amd64.(none)
6523aca729 my_strtoll10-x86.s:
Corrected spelling in copyright text
Makefile.am:
  Don't update the files from BitKeeper
Many files:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header 
Many files:
  Added GPL copyright text
Removed files:
  Docs/Support/colspec-fix.pl
  Docs/Support/docbook-fixup.pl
  Docs/Support/docbook-prefix.pl
  Docs/Support/docbook-split
  Docs/Support/make-docbook
  Docs/Support/make-makefile
  Docs/Support/test-make-manual
  Docs/Support/test-make-manual-de
  Docs/Support/xwf
2006-12-31 01:02:27 +01:00
kent@kent-amd64.(none)
be15e3bc15 Merge mysql.com:/home/kent/bk/main/mysql-5.0
into  mysql.com:/home/kent/bk/main/mysql-5.1
2006-12-23 20:20:40 +01:00
kent@mysql.com/kent-amd64.(none)
226a5c833f Many files:
Changed header to GPL version 2 only
2006-12-23 20:17:15 +01:00
tsmith@maint2.mysql.com
6a31ec2cad Merge maint2.mysql.com:/data/localhome/tsmith/bk/mrg50/50
into  maint2.mysql.com:/data/localhome/tsmith/bk/mrg50/51
2006-09-13 09:03:52 +02:00
georg@lmy002.wdf.sap.corp
9d6471c33e make dist changes for Cmake build 2006-09-01 10:32:12 +02:00
msvensson@neptunus.(none)
40bfe246a9 Rename cmakelists.txt -> CMakeLists.txt 2006-05-12 10:51:07 +02:00
knielsen@mysql.com
cfb43e683b Add missing files for CMake build. 2006-03-27 11:23:50 +02:00
serg@serg.mylan
94e3b91d4e fix 'make dist' 2006-02-15 17:26:22 +01:00
kent@mysql.com
8e3b393d5c Merge 2005-07-06 00:06:11 +02:00
kent@mysql.com
a7be42163a Makefile.am:
Added -I$(top_builddir)/include for searching
  generated header files, when builddir != srcdir
2005-07-05 23:24:48 +02:00
brian@zim.(none)
473e1ffd3a Removed support for RAID, mit-threads, and MySQL FS (really, if someone wants this feature look at a web-dav hookup). 2005-03-16 16:22:56 -08:00
serg@serg.mylan
6117ee754b fixed automake problem in dbug/Makefile.am 2005-01-28 13:49:42 +01:00
serg@serg.mylan
a102fd5a2e don't fail if dbug manual cannot be built 2004-11-17 12:28:44 +01:00
serg@sergbook.mylan
527686bf15 more dbug fixups to get a nicer manual (w/o my_pthread specifics)
use my_main.c for the actual build, and main.c for the manual
2004-11-09 17:10:08 +01:00
serg@serg.mylan
353dd4fe35 dbug: DBUG_EXECUTE_IF macro, build user manual automatically, document all features
charset2html moved from mysys to extra
ignore: new files added, garbage removed
2004-11-04 22:29:00 +01:00
serg@serg.mysql.com
b385eb4a05 removed redundant -I include-dirs 2002-11-26 14:01:08 +01:00
lenz@mysql.com
3cf7acb756 - Applied required modifications for automake 1.5
- some additional small fixes
 - added "depcomp" for automake 1.5
2002-10-01 21:57:10 +02:00
monty@tik.mysql.fi
1016a08dc9 Fixed that IF is case insensitive if 2 and 3 arguments are case insensitive.
Added copyright messages to some files that was missing it.
2002-04-22 10:34:46 +03:00
monty@donna.mysql.com
a753a3a2ce Updated benchmark and results for PostgreSQL 7.0.2
Added more status to the MyISAM files to avoid checking files that
has already been checked.
2000-08-18 12:48:00 +03:00
bk@work.mysql.com
f4c589ff6c Import changeset 2000-07-31 21:29:14 +02:00