Simplify the check, remove redundant code.
Add a safety check to avoid linking with static jemalloc_pic.a
if jemalloc version is 5+.
This doesn't fix the issue on Gentoo, it should be fixed in the ebuild.
The error message modified.
Then the TABLE_SHARE::error_table_name() implementation taken from 10.3,
to be used as a name of the table in this message.
set both `password` and `authentication_string` columns in `mysql`.`user`
table for now.
Suppress the "password was ignored" warning if the password is
the same as the authentication string
don't create static objects that destroy mutexes from destructors,
and don't destroy mutexes from .so destructor (on-unload) function.
if it happens after exit(), P_S will be long gone by that time
this fixes tokudb tests crashing on quantal-amd64
Don't let SET PASSWORD to set the password, if auth_string is set.
Now SET PASSWORD always sets the plugin/auth_string fields and clears
the password field (on pre-plugin mysql.user table it works as before).
In RPM/DEB packages - always ld-preload jemalloc, instead
of linking ha_tokudb.so with it.
Keep linking in bintars, because they don't install cnf files
in the correct locations.
On OS X, (u)int64_t is defined as (unsigned) long long int while on 74
bit Linux it is defined as (unsigned) long int.
Ensure the type matches when doing printf on all systems.
GCC-8 introduced multiple warnings and increased the level of
strictness.
* -Wshadow will warn if a local variable shadows a typedef.
* GCC will also warn when memsetting a non-trivial type.
In this case a non-trivial type can not have a custom constructor.
For all intents and purposes, the class is trivially-copyable.
* GCC will also warn if you use too many paranthesses which are not
necessary
Several issues were encountered and fixed as explained bellow:
* missing link to dbug lib;
* user proper fprintf format specifier;
* ZERO_COND_INITIALIZER was using wrong toku_cond_t struct
initializer for first member of type pthread_cond_t and
not considering the TOKU_PTHREAD_DEBUG case which has
one extra struct member of type pfs_key_t;
* Remove likely(!opt_debug_sync_timeout), argument is
declared extern and not available to Toku;
* pthread_mutex_timedlock() is not available in pthreads
for Mac, as it's not part of the POSIX pthreads spec.
The encompassing event_t::wait(ms) methods are unused,
thus have been removed;
This is happening because they are declared as packed
and clang has -Waddress-of-packed-member when passing the
address of a packed member, a legit concern on different
architectures. The easiest way to get rid of the errors is to
remove the packed attribute from said structs.
Fix build on macOS 10.13:
39dceaae60 MDEV-10983: TokuDB does not compile on OS X 10.12
Make use of a different function to get the current tid.
Additionally, librt doesn't exist on OS X. Use System library instead.
storage/tokudb/PerconaFT/cmake_modules/TokuFeatureDetection.cmake | 4 +++-
storage/tokudb/PerconaFT/portability/portability.cc | 9 ++++++++-
storage/tokudb/PerconaFT/portability/tests/test-xid.cc | 9 ++++++++-
storage/tokudb/PerconaFT/portability/toku_config.h.in | 1 +
4 files changed, 20 insertions(+), 3 deletions(-)
jemalloc > 5.0.0 doesn't like to be linked with
a dlopen-ed module.
Don't link tokudb with jemalloc on Fedora 28,
LD_PRELOAD it instead with mysqld_safe
and with systemd.
MDEV--15609 engines/funcs.crash_manytables_number crashes with error 24
(too many open files)
MDEV-10286 Adjustment of table_open_cache according to system limits
does not work when open-files-limit option is provided
Fixed by adjusting tc_size downwards if there is not enough file
descriptors to use.
Other changes:
- Ensure that there is 30 (was 10) extra file descriptors for other usage
- Decrease TABLE_OPEN_CACHE_MIN to 200 as it's better to have a smaller
table cache than getting error 24
- Increase minimum of max_connections and table_open_cache from 1 to 10
as 1 is not usable for any real application, only for testing.