Analysis: InnoDB error monitor is responsible to call every second
sync_arr_wake_threads_if_sema_free() to wake up possible hanging
threads if they are missed in mutex_signal_object. This is not
possible if error monitor itself is on mutex/semaphore wait. We
should avoid all unnecessary mutex/semaphore waits on error monitor.
Currently error monitor calls function buf_flush_stat_update()
that calls log_get_lsn() function and there we will try to get
log_sys mutex. Better, solution for error monitor is that in
buf_flush_stat_update() we will try to get lsn with
mutex_enter_nowait() and if we did not get mutex do not update
the stats.
Fix: Use log_get_lsn_nowait() function on buf_flush_stat_update()
function. If returned lsn is 0, we do not update flush stats.
log_get_lsn_nowait() will use mutex_enter_nowait() and if
we get mutex we return a correct lsn if not we return 0.
- Fix XtraDB to be built as a static library.
storage/xtradb/buf/buf0flu.c:
Fix previous merge error (was harmless except for on win32)
storage/xtradb/plug.in:
Make it sync with innobase/plug.in.disabled
mysql-test/t/mysqldump.test:
Make test case work when build directory is not world readable
(this is the case for Buildbot checkouts).
mysys/my_getopt.c:
Restore bugfix which was lost in previous merge.
storage/xtradb/buf/buf0flu.c:
Fix extranous line caused by bad merge.
- Add strmov_overlapp.c where it's needed
- Add libevent where it is required
- Fix typo in unittest/mysys/waiting_threads-t.c
- fix xtradb C language source so that they have variable declarations before
any operators, as it is (or was?) required in C.
libmysql/CMakeLists.txt:
- Add strmov_overlapp.c where it's needed
sql/CMakeLists.txt:
- Add strmov_overlapp.c where it's needed
- Add libevent where it is required
storage/xtradb/btr/btr0cur.c:
- fix xtradb C language source so that they have variable declarations before
any operators, as it is (or was?) required in C.
storage/xtradb/buf/buf0buddy.c:
- fix xtradb C language source so that they have variable declarations before
any operators, as it is (or was?) required in C.
storage/xtradb/buf/buf0flu.c:
- fix xtradb C language source so that they have variable declarations before
any operators, as it is (or was?) required in C.
storage/xtradb/fil/fil0fil.c:
- fix xtradb C language source so that they have variable declarations before
any operators, as it is (or was?) required in C.
storage/xtradb/handler/i_s.cc:
- fix xtradb C language source so that they have variable declarations before
any operators, as it is (or was?) required in C.
storage/xtradb/srv/srv0srv.c:
- fix xtradb C language source so that they have variable declarations before
any operators, as it is (or was?) required in C.
strings/CMakeLists.txt:
- Add strmov_overlapp.c where it's needed
unittest/mysys/waiting_threads-t.c:
- Fix typo in unittest/mysys/waiting_threads-t.c
include/my_sys.h:
Move generic file parsing functions out to shared code, as they are used in several places.
mysys/mf_iocache2.c:
Move generic file parsing functions out to shared code, as they are used in several places.
sql/log_event.cc:
Fix XtraDB build with embedded server.
XtraDB needs access to replication stuff, which is missing in embedded server.
Solved by defining wrapper function for this which is compiled differently for normal and
embedded case.
sql/log_event.h:
Fix XtraDB build with embedded server.
XtraDB needs access to replication stuff, which is missing in embedded server.
Solved by defining wrapper function for this which is compiled differently for normal and
embedded case.
sql/slave.cc:
Move generic file parsing functions out to shared code, as they are used in several places.