After fix of bug#25192, load_defaults() will add an args separator
to distinguish options loaded from configure files from that provided
in the command line. One problem of this is that the args separator
would be added no matter the application need it or not.
Fixed the problem by adding an option:
bool my_getopt_use_args_separator;
to control whether the separator will be added or not. And also
added functions:
bool my_getopt_is_args_separator(const char* arg);
to check if the argument is the separator or not.
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.
client/mysqldump.c:
Pass my_free directly as its signature is compatible with the
callback type -- which wasn't the case for free_table_ent.
(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.
Options loaded from config files were added before command line
arguments, and they were parsed together, which could interprete
the following:
option-a
option-b
as --option-a=--option-b if 'option-a' requires a value, and
caused confusing.
Because all options that requires a value are always given in
the form '--option=value', so it's an error if there is no
'=value' part for such an option read from config file.
This patch added a separator to separate the arguments from
config files and that from command line, so that they can be
handled differently. And report an error for options loaded
from config files that requires a value and is not given in the
form '--option=value'.
mysql-test/t/partition.test
sql/ha_partition.cc
Bug#40954: Crash in MyISAM index code with concurrency test using partitioned tables
Problem was usage of read_range_first with an empty key.
Solution was to not to give a key if it was empty. (real author Mattias Jonsson)
storage/archive/archive_reader.c
client/mysqlslap.c
Aligned the copyright texts output from "--version" of tools, to
let internal tools be able to change them if needed.
storage/ndb/test/tools/connect.cpp
storage/ndb/test/run-test/atrt.hpp
Corrected a few GPL headers not restricted to GPL version 2
Makefile.am
Added missing --report-features to the 'test-bt-fast' target
support-files/mysql.spec.sh
Reversed the removal of the "%define license GPL" in as internal
tools depended on it
During TC-take-over (NF) the new-TC builds up a new transaction state
And commits operation according to this state.
However, in the new state that is build, the operations does not have to be in same order, as "real" state
In the multi-update-case, this means that operations can be commit in "incorrect" order
i.e update A, delete A, insert A is normally commited in same order as prepared
but can be committed in any order
This patch changes TUP handling of these out-order commits, and previous implementation
could confuse the TUX triggers
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
new method
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp:
move removeActiveOpList, cause it's now only used by DbtupAbort
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
- move tux-trigger execution *before* check of disk, since ops can be committed during a disk timeslice
- allow out-of-order commits and use tuple_ptr->m_operation_ptr_i for determening "real" commit
(instead of re-ordering operations on the fly, which confused tux-triggers)
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
use constant instead of number
storage/ndb/test/run-test/daily-basic-tests.txt:
"old-51" does not yet support --nologging
testcases
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
new error codes
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
new error codes
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
new error codes
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
remove assert
storage/ndb/test/ndbapi/testNodeRestart.cpp:
new testcase
1) -n Bug34216
Which tests node diying during multip-op commit
Very controlled
2) -n mixedmultiop
Runs several threads "load" of same scenario...not very controlled
storage/ndb/test/run-test/daily-basic-tests.txt:
new testcases
into sama.ndb.mysql.com:/export/space/pekka/ndb/version/my51-ndb
storage/ndb/src/ndbapi/Ndb.cpp:
Auto merged
storage/ndb/test/ndbapi/testOIBasic.cpp:
Auto merged
Updated with new support function from Magnus push to dbutil
storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp:
Updated with new support function from Magnus push to dbutil
into sama.ndb.mysql.com:/export/space/pekka/ndb/version/my51-bug34107
storage/ndb/test/ndbapi/testInterpreter.cpp:
Auto merged
storage/ndb/test/run-test/daily-basic-tests.txt:
ul, fix next
into sama.ndb.mysql.com:/export/space/pekka/ndb/version/my51-bug31477
storage/ndb/include/ndbapi/Ndb.hpp:
Auto merged
storage/ndb/src/common/util/NdbOut.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp:
Auto merged
storage/ndb/test/ndbapi/testOIBasic.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
mindless merge
storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp:
mindless merge
into perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
storage/ndb/include/util/Bitmask.hpp:
Auto merged
storage/ndb/src/common/util/Bitmask.cpp:
merge
storage/ndb/test/ndbapi/testBitfield.cpp:
merge
storage/ndb/test/include/DbUtil.hpp:
Add support for SqlResultSet
storage/ndb/test/ndbapi/Makefile.am:
Add testNDBT
storage/ndb/test/src/DbUtil.cpp:
Add support for SqlResultSet
storage/ndb/test/src/Makefile.am:
Build AtrtClient
storage/ndb/test/include/AtrtClient.hpp:
New BitKeeper file ``storage/ndb/test/include/AtrtClient.hpp''
storage/ndb/test/ndbapi/testNDBT.cpp:
New BitKeeper file ``storage/ndb/test/ndbapi/testNDBT.cpp''
storage/ndb/test/src/AtrtClient.cpp:
New BitKeeper file ``storage/ndb/test/src/AtrtClient.cpp''
into perch.ndb.mysql.com:/home/jonas/src/51-ndb
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
Auto merged
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
Auto merged
storage/ndb/test/run-test/daily-basic-tests.txt:
merge
dont assume that page is "all empty"
only as gci is acked, as release_gci might not have processed it yet
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
new error codes
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
dont assume that page is "all empty"
only as gci is acked, as release_gci might not have processed it yet
storage/ndb/test/ndbapi/test_event.cpp:
testcase
storage/ndb/test/run-test/daily-basic-tests.txt:
testcase
into dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-5.1/mysql-5.1-new-ndb-bj
storage/ndb/src/kernel/blocks/backup/Backup.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/lgman.cpp:
Auto merged
storage/ndb/src/kernel/blocks/tsman.cpp:
Auto merged
storage/ndb/test/ndbapi/testDict.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
SCCS merged
storage/ndb/src/ndbapi/ndberror.c:
SCCS merged
More code improvments
storage/ndb/test/include/DbUtil.hpp:
More code improvments
storage/ndb/test/src/DbUtil.cpp:
More code improvments
storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp:
More code improvments
Updated with suggestions from Magnus and other fixes and adjustments I found along the way
DbUtil.hpp, DbUtil.cpp:
fixes and adjustments I found along the way
storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp:
Updated with suggestions from Magnus and other fixes and adjustments I found along the way
storage/ndb/test/src/DbUtil.cpp:
fixes and adjustments I found along the way
storage/ndb/test/include/DbUtil.hpp:
fixes and adjustments I found along the way
Rename: storage/ndb/test/src/dbutil.cpp -> storage/ndb/test/src/DbUtil.cpp
DbUtil.hpp, DbUtil.cpp:
Many changes based off a review from Magnus
DbUtil.hpp:
Rename: storage/ndb/test/include/dbutil.hpp -> storage/ndb/test/include/DbUtil.hpp
storage/ndb/test/src/DbUtil.cpp:
Many changes based off a review from Magnus
storage/ndb/test/include/DbUtil.hpp:
Many changes based off a review from Magnus
make local INCL_NODEREQ/CONF more robust (to remove testprg introduced race, error insert causes 5s delay)
storage/ndb/src/kernel/blocks/backup/Backup.cpp:
make local INCL_NODEREQ/CONF more robust (to remove testprg introduced race)
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
make local INCL_NODEREQ/CONF more robust (to remove testprg introduced race)
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
make local INCL_NODEREQ/CONF more robust (to remove testprg introduced race)
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
make local INCL_NODEREQ/CONF more robust (to remove testprg introduced race)
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
make local INCL_NODEREQ/CONF more robust (to remove testprg introduced race)
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
make local INCL_NODEREQ/CONF more robust (to remove testprg introduced race)
storage/ndb/test/ndbapi/testNodeRestart.cpp:
soem more printout
Fix handling of multiple redo phases
- set correct state
- handle 4 phases, by moving START_FRAGCONF to end of phase instead of beginning...
storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
remove unused state ACTIVE_REMOVE_AFTER
remove unused variable nextLcp
remove unused methods (BUILD_INDX)
add counter of outstanding GSN_EXEC_FRAGREQ
remove c_redo_complete_fragments cause it fits badly with functional multi-redo-phases
storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
remove unused stuff
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
1) set correct state before starting next non-empty REDO phase
2) move GSN_START_FRAGCONF to execFRAGCONF instead of when sending GSN_EXEC_FRAGREQ
or fragments with 4 redo-phases would never be complete...
storage/ndb/test/ndbapi/testSystemRestart.cpp:
testcase
storage/ndb/test/run-test/daily-basic-tests.txt:
testcase
add new testtool that does connect/disconnect in loop
storage/ndb/test/tools/Makefile.am:
add new test tool
storage/ndb/test/tools/connect.cpp:
New BitKeeper file ``storage/ndb/test/tools/connect.cpp''