Below is the list of changes that have just been committed into a local
4.1 repository of thek. When thek does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-05-24 13:11:45+02:00, thek@adventure.(none) +2 -0
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@stripped, 2007-05-24 13:11:44+02:00, thek@adventure.(none) +14 -0
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@stripped, 2007-05-24 13:11:45+02:00, thek@adventure.(none) +2 -0
Added tags to surround memory dump status report to help the test
suite to determine that this isn't a memory leak
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: thek
# Host: adventure.(none)
# Root: /home/thek/Development/cpp/bug28644/my41-bug28644
--- 1.35/sql/sql_test.cc 2005-09-14 13:18:11 +02:00
+++ 1.36/sql/sql_test.cc 2007-05-24 13:11:45 +02:00
@@ -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();
--- 1.25/mysql-test/lib/mtr_report.pl 2006-11-28 12:39:58 +01:00
+++ 1.26/mysql-test/lib/mtr_report.pl 2007-05-24 13:11:44 +02:00
@@ -261,8 +261,19 @@ sub mtr_report_stats ($) {
mtr_warning("can't read $errlog");
next;
}
+ my $leak_reports_expected= undef;
while ( <ERR> )
{
+ # 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 $_;
}
| Thread |
|---|
| • bk commit into 4.1 tree (thek:1.2656) BUG#28644 | kpettersson | 24 May |