summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2012-02-21 01:44:50 +0200
committerMichael Widenius <monty@askmonty.org>2012-02-21 01:44:50 +0200
commit7ed4806b1181c1f003d2d31f997a4ca6609ee794 (patch)
treec6aba7e51628c72711c17ed8433f11b9f2315bc6
parent54cad2aae3142e8a123f0d62fc0c2bd67a1dc64a (diff)
downloadmariadb-git-7ed4806b1181c1f003d2d31f997a4ca6609ee794.tar.gz
More general handling of memory loss in dlclose (backported from 5.2)
Fixed supression in mysql-test-run so it also works on windows. mysql-test/mysql-test-run.pl: Fixed supression so it also works on windows. mysql-test/valgrind.supp: More general handling of memory loss in dlclose (backported from 5.2) sql/signal_handler.cc: Added newlines around link to how to do bug reports
-rwxr-xr-xmysql-test/mysql-test-run.pl4
-rw-r--r--mysql-test/valgrind.supp130
-rw-r--r--sql/signal_handler.cc4
3 files changed, 11 insertions, 127 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index cb6f7b4a486..3e1be3ab077 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -4443,9 +4443,9 @@ sub extract_warning_lines ($) {
qr/Failed on request_dump/,
qr/Slave: Can't drop database.* database doesn't exist/,
qr/Slave: Operation DROP USER failed for 'create_rout_db'/,
- qr|Checking table: '\./mtr/test_suppressions'|,
+ qr|Checking table: '\..mtr.test_suppressions'|,
qr|Table \./test/bug53592 has a primary key in InnoDB data dictionary, but not in MySQL|,
- qr|mysqld: Table '\./mtr/test_suppressions' is marked as crashed and should be repaired|,
+ qr|mysqld: Table '\..mtr.test_suppressions' is marked as crashed and should be repaired|,
qr|InnoDB: Error: table 'test/bug39438'|,
qr|table.*is full|,
);
diff --git a/mysql-test/valgrind.supp b/mysql-test/valgrind.supp
index ff649db144a..e7f5a7880d2 100644
--- a/mysql-test/valgrind.supp
+++ b/mysql-test/valgrind.supp
@@ -386,134 +386,18 @@
fun:__libc_start_main
}
+#
+# dlclose can allocate memory for error message, the memory will be
+# freed by dlerror or other dl* function.
+#
{
- dlclose memory loss from udf_free
- Memcheck:Leak
- fun:calloc
- fun:_dlerror_run
- fun:dlclose
- fun:_Z8udf_freev
-}
-
-{
- dlsym memory loss from udf_free on SuSE 11.1 x64 variant 2
- Memcheck:Leak
- fun:calloc
- obj:/lib*/ld-*.so
- fun:dlclose
- fun:udf_free
-}
-
-{
- dlclose memory loss from plugin variant 1
- Memcheck:Leak
- fun:calloc
- fun:_dlerror_run
- fun:dlclose
- fun:plugin_dl_del(st_mysql_lex_string const*)
-}
-
-{
- dlclose memory loss from plugin variant 2
- Memcheck:Leak
- fun:malloc
- fun:_dl_close_worker
- fun:_dl_close
- fun:_dl_catch_error
- fun:_dlerror_run
- fun:dlclose
- fun:_Z15free_plugin_memP12st_plugin_dl
- fun:_Z13plugin_dl_delPK19st_mysql_lex_string
-}
-
-{
- dlclose memory loss from plugin variant 3
- Memcheck:Leak
- fun:malloc
- fun:_dl_scope_free
- fun:_dl_close_worker
- fun:_dl_close
- fun:_dl_catch_error
- fun:_dlerror_run
- fun:dlclose
- fun:_Z15free_plugin_memP12st_plugin_dl
- fun:_Z13plugin_dl_delPK19st_mysql_lex_string
-}
-
-{
- dlclose memory loss from plugin variant 4
- Memcheck:Leak
- fun:malloc
- obj:/lib*/ld-*.so
- obj:/lib*/ld-*.so
- obj:/lib*/ld-*.so
- obj:/lib*/libdl-*.so
- fun:dlclose
- fun:_ZL15free_plugin_memP12st_plugin_dl
- fun:_ZL13plugin_dl_delPK19st_mysql_lex_string
-}
-
-{
- dlclose memory loss from plugin variant 5
- Memcheck:Leak
- fun:malloc
- obj:/lib*/ld-*.so
- obj:/lib*/ld-*.so
- obj:/lib*/ld-*.so
- obj:/lib*/ld-*.so
- obj:/lib*/libdl-*.so
- fun:dlclose
- fun:_ZL15free_plugin_memP12st_plugin_dl
-}
-
-{
- dlclose memory loss from plugin variant 6, seen on Ubuntu Jaunty i686
- Memcheck:Leak
- fun:malloc
- fun:_dl_scope_free
- fun:_dl_close_worker
- fun:_dl_close
- fun:dlclose_doit
- fun:_dl_catch_error
- fun:_dlerror_run
- fun:dlclose
- fun:_ZL15free_plugin_memP12st_plugin_dl
- fun:_ZL13plugin_dl_delPK19st_mysql_lex_string
-}
-
-{
- dlclose memory loss from plugin variant 7, seen on Ubuntu Jaunty i686
- Memcheck:Leak
- fun:malloc
- fun:_dl_close_worker
- fun:_dl_close
- fun:dlclose_doit
- fun:_dl_catch_error
- fun:_dlerror_run
- fun:dlclose
- fun:_ZL15free_plugin_memP12st_plugin_dl
- fun:_ZL13plugin_dl_delPK19st_mysql_lex_string
-}
-
-{
- dlclose memory loss from plugin variant 8
+ memory "loss" from dlclose error messages
Memcheck:Leak
- fun:calloc
- fun:_dlerror_run
+ fun:*alloc
+ ...
fun:dlclose
- fun:_Z15free_plugin_memP12st_plugin_dl
- fun:_Z13plugin_dl_delPK19st_mysql_lex_string
}
-{
- dlclose memory loss from plugin variant 9
- Memcheck:Leak
- fun:calloc
- fun:_dlerror_run
- fun:dlclose
- fun:_ZL15free_plugin_memP12st_plugin_dl
- fun:_ZL13plugin_dl_delPK19st_mysql_lex_string
-}
{
dlsym memory loss from plugin on SuSE 11.1 x64
diff --git a/sql/signal_handler.cc b/sql/signal_handler.cc
index 23d898fdb5e..289670ec830 100644
--- a/sql/signal_handler.cc
+++ b/sql/signal_handler.cc
@@ -88,10 +88,10 @@ extern "C" sig_handler handle_fatal_signal(int sig)
my_safe_printf_stderr("%s",
"This could be because you hit a bug. It is also possible that this binary\n"
"or one of the libraries it was linked against is corrupt, improperly built,\n"
- "or misconfigured. This error can also be caused by malfunctioning hardware.\n");
+ "or misconfigured. This error can also be caused by malfunctioning hardware.\n\n");
my_safe_printf_stderr("%s",
- "To report this bug, see http://kb.askmonty.org/en/reporting-bugs\n");
+ "To report this bug, see http://kb.askmonty.org/en/reporting-bugs\n\n");
my_safe_printf_stderr("%s",
"We will try our best to scrape up some info that will hopefully help\n"