Commit 1f1257bd authored by unknown's avatar unknown

A fix (bug #5823: mysql_install_db fails due to incorrect max_allowed_packet).


scripts/fill_help_tables.sh:
  percent_xxx variables added to avoid /0 error.
scripts/mysql_install_db.sh:
  A fix (bug #5823: mysql_install_db fails due to incorrect max_allowed_packet).          
  --net_buffer_length=16K added.
sql/net_serv.cc:
  Typo fixed.
sql/sql_parse.cc:
  A fix (bug #5823: mysql_install_db fails due to incorrect max_allowed_packet).
  Auto extend net buffer in bootstrap mode.
parent 21f2d3aa
......@@ -454,10 +454,12 @@ sub print_verbose_errors
print STDERR "number of help keywords - ",$count_keywords,"\n";
my $count_without_help= scalar(@without_help);
my $percent_without_help= $count_lex ?
int (($count_without_help/$count_lex)*100) :
"100";
print_bad_names(\@without_help,"lexems without help (".
$count_without_help." ~ ".
(int (($count_without_help/$count_lex)*100)).
"%)");
$percent_without_help."%)");
print_bad_names(\@description_with_at,
" topics below have symbol \'@\' in their descriptions.\n".
"it's probably the litter from 'texi' tags (script needs fixing)");
......@@ -467,10 +469,12 @@ sub print_verbose_errors
print_bad_names(\@without_description,"topics without description");
my $count_without_example= scalar(@without_example);
my $percent_without_example= $count_topics ?
int (($count_without_example/$count_topics)*100) :
"100";
print_bad_names(\@without_example,"topics without example (".
$count_without_example." ~ ".
(int (($count_without_example/$count_topics)*100)).
"%)");
$percent_without_example."%)");
}
print_verbose_errors if ($verbose_option ne 0);
......
......@@ -213,7 +213,7 @@ then
fi
mysqld_install_cmd_line="$mysqld $defaults $mysqld_opt --bootstrap \
--skip-grant-tables --basedir=$basedir --datadir=$ldata --skip-innodb \
--skip-bdb --skip-ndbcluster $args --max_allowed_packet=8M"
--skip-bdb --skip-ndbcluster $args --max_allowed_packet=8M --net_buffer_length=16K"
if $scriptdir/mysql_create_system_tables $create_option $mdata $hostname $windows \
| eval "$mysqld_install_cmd_line"
then
......
......@@ -165,8 +165,8 @@ my_bool net_realloc(NET *net, ulong length)
if (length >= net->max_packet_size)
{
DBUG_PRINT("error",("Packet too large. Max sixe: %lu",
net->max_packet_size));
DBUG_PRINT("error", ("Packet too large. Max size: %lu",
net->max_packet_size));
net->error= 1;
net->report_error= 1;
net->last_errno= ER_NET_PACKET_TOO_LARGE;
......
......@@ -1102,13 +1102,25 @@ extern "C" pthread_handler_decl(handle_bootstrap,arg)
thd->init_for_queries();
while (fgets(buff, thd->net.max_packet, file))
{
uint length=(uint) strlen(buff);
if (buff[length-1]!='\n' && !feof(file))
ulong length= (ulong) strlen(buff);
while (buff[length-1] != '\n' && !feof(file))
{
send_error(thd,ER_NET_PACKET_TOO_LARGE, NullS);
thd->fatal_error();
break;
/*
We got only a part of the current string. Will try to increase
net buffer then read the rest of the current string.
*/
if (net_realloc(&(thd->net), 2 * thd->net.max_packet))
{
send_error(thd, thd->net.last_errno, NullS);
thd->is_fatal_error= 1;
break;
}
buff= (char*) thd->net.buff;
fgets(buff + length, thd->net.max_packet - length, file);
length+= (ulong) strlen(buff + length);
}
if (thd->is_fatal_error)
break;
while (length && (my_isspace(thd->charset(), buff[length-1]) ||
buff[length-1] == ';'))
length--;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment