From 1632586e20205ad1ed6ac5b865b6164a7be333ee Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 24 May 2007 13:11:45 +0200 Subject: [PATCH] Bug#28644 Memory status report confused with memory leak This patch removes a false memory leak error report from the test suite. There is a test case that puposely provokes a SAFEMALLOC leak report, even though there is no actual leak. mysql-test/lib/mtr_report.pl: There is a test case that purposely provokes a SAFEMALLOC leak report, even though there is no actual leak. We need to detect this, and ignore the warning in that case. sql/sql_test.cc: Added tags to surround memory dump status report to help the test suite to determine that this isn't a memory leak --- mysql-test/lib/mtr_report.pl | 14 ++++++++++++++ sql/sql_test.cc | 2 ++ 2 files changed, 16 insertions(+) diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl index a2c16e1941a..cd24610f9c0 100644 --- a/mysql-test/lib/mtr_report.pl +++ b/mysql-test/lib/mtr_report.pl @@ -261,8 +261,19 @@ sub mtr_report_stats ($) { mtr_warning("can't read $errlog"); next; } + my $leak_reports_expected= undef; while ( ) { + # There is a test case that purposely provokes a + # SAFEMALLOC leak report, even though there is no actual + # leak. We need to detect this, and ignore the warning in + # that case. + if (/Begin safemalloc memory dump:/) { + $leak_reports_expected= 1; + } elsif (/End safemalloc memory dump./) { + $leak_reports_expected= undef; + } + # Skip some non fatal warnings from the log files if ( /Warning:\s+Table:.* on (delete|rename)/ or /Warning:\s+Setting lower_case_table_names=2/ or @@ -273,6 +284,9 @@ sub mtr_report_stats ($) { } if ( /$pattern/ ) { + if ($leak_reports_expected) { + next; + } $found_problems= 1; print WARN $_; } diff --git a/sql/sql_test.cc b/sql/sql_test.cc index d6afc888be2..e73fd03426a 100644 --- a/sql/sql_test.cc +++ b/sql/sql_test.cc @@ -406,7 +406,9 @@ Next alarm time: %lu\n", if (thd) thd->proc_info="malloc"; my_checkmalloc(); + fprintf(stdout,"\nBegin safemalloc memory dump:\n"); // tag needed for test suite TERMINATE(stdout); // Write malloc information + fprintf(stdout,"\nEnd safemalloc memory dump.\n"); #ifdef HAVE_MALLINFO struct mallinfo info= mallinfo();