Fixing DTrace issue in mysqld.cc

Disabling ndb DTrace probes temporarily
Hacking some DTrace Makefile magic to make it work
All temporary solutions to make it work quickly
This commit is contained in:
Mikael Ronstrom 2008-12-23 00:56:44 +01:00
parent bceeb36b45
commit 0478e0508d
3 changed files with 10 additions and 6 deletions

View file

@ -29,7 +29,6 @@ libexec_PROGRAMS = mysqld
EXTRA_PROGRAMS = gen_lex_hash
bin_PROGRAMS = mysql_tzinfo_to_sql
DTRACEFILES = filesort.o \
libndb_la-ha_ndbcluster.o \
handler.o \
mysqld.o \
net_serv.o \
@ -207,8 +206,6 @@ install-exec-hook:
test ! -f mysqld.sym.gz || $(INSTALL_DATA) mysqld.sym.gz $(DESTDIR)$(pkglibdir)
if HAVE_DTRACE_DASH_G
libndb_la_LIBADD = probes_all.o
libndb_la_DEPENDENCIES = probes_all.o dtrace_files dtrace_providers
mysqld_LDADD += probes_all.o
mysqld_DEPENDENCIES += probes_all.o dtrace_files dtrace_providers
CLEANFILES += dtrace_files dtrace_providers probes_all.o
@ -223,7 +220,7 @@ DTRACEDIRS = . ../mysys $(patsubst %,$(top_builddir)/storage/%,@mysql_se_dirs@)
probes_all.o: probes_mysql.d $(DTRACEFILES)
providers=`(for i in $(DTRACEDIRS); do cat $$i/dtrace_providers 2>/dev/null; done) | tr " " "\n" | sort | uniq | sed -e '/^$$/d' -e 's/^/-s /'`; \
objects=`for i in $(DTRACEDIRS); do f=\`cat $$i/dtrace_files 2>/dev/null\`; for j in $$f; do test -f $$i/$$j && echo -n "$$i/$$j "; done; done`; \
objects=`for i in $(DTRACEDIRS); do f=\`cat $$i/dtrace_files 2>/dev/null\`; for j in $$f; do test -f $$i/$$j && echo -n "$$i/$$j " | sed -e 's/echo -n//g'; done; done`; \
$(DTRACE) $(DTRACEFLAGS) -G $$providers $$objects -o $@
endif

View file

@ -41,7 +41,14 @@
#include "ha_ndbcluster_tables.h"
#include <mysql/plugin.h>
#include "probes_mysql.h"
/*
Temporarily disabling DTrace for ndb storage engine
*/
#define MYSQL_INDEX_READ_ROW_START(arg0, arg1)
#define MYSQL_INDEX_READ_ROW_DONE(arg0)
#define MYSQL_READ_ROW_START(arg0, arg1, arg2)
#define MYSQL_READ_ROW_DONE(arg0)
/* #include "probes_mysql.h" */
#ifdef ndb_dynamite
#undef assert

View file

@ -1758,9 +1758,9 @@ void close_connection(THD *thd, uint errcode, bool lock)
net_send_error(thd, errcode, ER(errcode)); /* purecov: inspected */
vio_close(vio); /* vio is freed in delete thd */
}
MYSQL_CONNECTION_DONE((int) errcode, thd->thread_id);
if (lock)
(void) pthread_mutex_unlock(&LOCK_thread_count);
MYSQL_CONNECTION_DONE((int) errcode, thd->thread_id);
DBUG_VOID_RETURN;
}
#endif /* EMBEDDED_LIBRARY */