Commit 5da2f843 authored by unknown's avatar unknown
Browse files

Merge mysql.com:/home/stewart/Documents/MySQL/4.1/main

into  mysql.com:/home/stewart/Documents/MySQL/4.1/cleanup


ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Auto merged
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Auto merged
parents d0cf13f8 bdca0728
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3774,7 +3774,7 @@ Backup::checkFile(Signal* signal, BackupFilePtr filePtr)
    req->userReference = reference();
    req->varIndex      = 0;
    req->offset        = tmp - c_startOfPages;
    req->size          = sz; // Avrunda uppot
    req->size          = sz; // Round up
    
    sendSignal(NDBFS_REF, GSN_FSAPPENDREQ, signal, 
	       FsAppendReq::SignalLength, JBA);
+9 −5
Original line number Diff line number Diff line
@@ -11018,7 +11018,11 @@ void Dbdih::initCommonData()

  cnoReplicas = 1;
  ndb_mgm_get_int_parameter(p, CFG_DB_NO_REPLICAS, &cnoReplicas);
  cnoReplicas = cnoReplicas > 4 ? 4 : cnoReplicas;
  if (cnoReplicas > 4)
  {
    progError(__LINE__, NDBD_EXIT_INVALID_CONFIG,
	      "Only up to four replicas are supported. Check NoOfReplicas.");
  }

  cgcpDelay = 2000;
  ndb_mgm_get_int_parameter(p, CFG_DB_GCP_INTERVAL, &cgcpDelay);
@@ -11610,14 +11614,14 @@ void Dbdih::execCHECKNODEGROUPSREQ(Signal* signal)
    break;
  case CheckNodeGroups::GetNodeGroupMembers: {
    ok = true;
    Uint32 ownNodeGoup =
    Uint32 ownNodeGroup =
      Sysfile::getNodeGroup(sd->nodeId, SYSFILE->nodeGroups);

    sd->output = ownNodeGoup;
    sd->output = ownNodeGroup;
    sd->mask.clear();

    NodeGroupRecordPtr ngPtr;
    ngPtr.i = ownNodeGoup;
    ngPtr.i = ownNodeGroup;
    ptrAss(ngPtr, nodeGroupRecord);
    for (Uint32 j = 0; j < ngPtr.p->nodeCount; j++) {
      jam();
@@ -11625,7 +11629,7 @@ void Dbdih::execCHECKNODEGROUPSREQ(Signal* signal)
    }
#if 0
    for (int i = 0; i < MAX_NDB_NODES; i++) {
      if (ownNodeGoup == 
      if (ownNodeGroup == 
	  Sysfile::getNodeGroup(i, SYSFILE->nodeGroups)) {
	sd->mask.set(i);
      }
+12 −18
Original line number Diff line number Diff line
@@ -18458,60 +18458,54 @@ void
Dblqh::execCREATE_TRIG_REQ(Signal* signal)
{
  jamEntry();
  NodeId myNodeId = getOwnNodeId();
  BlockReference tupref = calcTupBlockRef(myNodeId);
  sendSignal(tupref, GSN_CREATE_TRIG_REQ, signal, CreateTrigReq::SignalLength, JBB);
  sendSignal(DBTUP_REF, GSN_CREATE_TRIG_REQ, signal,
             CreateTrigReq::SignalLength, JBB);
}
void
Dblqh::execCREATE_TRIG_CONF(Signal* signal)
{
  jamEntry();
  NodeId myNodeId = getOwnNodeId();
  BlockReference dictref = calcDictBlockRef(myNodeId);
  sendSignal(dictref, GSN_CREATE_TRIG_CONF, signal, CreateTrigConf::SignalLength, JBB);
  sendSignal(DBDICT_REF, GSN_CREATE_TRIG_CONF, signal,
             CreateTrigConf::SignalLength, JBB);
}
void
Dblqh::execCREATE_TRIG_REF(Signal* signal)
{
  jamEntry();
  NodeId myNodeId = getOwnNodeId();
  BlockReference dictref = calcDictBlockRef(myNodeId);
  sendSignal(dictref, GSN_CREATE_TRIG_REF, signal, CreateTrigRef::SignalLength, JBB);
  sendSignal(DBDICT_REF, GSN_CREATE_TRIG_REF, signal,
             CreateTrigRef::SignalLength, JBB);
}
void
Dblqh::execDROP_TRIG_REQ(Signal* signal)
{
  jamEntry();
  NodeId myNodeId = getOwnNodeId();
  BlockReference tupref = calcTupBlockRef(myNodeId);
  sendSignal(tupref, GSN_DROP_TRIG_REQ, signal, DropTrigReq::SignalLength, JBB);
  sendSignal(DBTUP_REF, GSN_DROP_TRIG_REQ, signal,
             DropTrigReq::SignalLength, JBB);
}
void
Dblqh::execDROP_TRIG_CONF(Signal* signal)
{
  jamEntry();
  NodeId myNodeId = getOwnNodeId();
  BlockReference dictref = calcDictBlockRef(myNodeId);
  sendSignal(dictref, GSN_DROP_TRIG_CONF, signal, DropTrigConf::SignalLength, JBB);
  sendSignal(DBDICT_REF, GSN_DROP_TRIG_CONF, signal,
             DropTrigConf::SignalLength, JBB);
}
void
Dblqh::execDROP_TRIG_REF(Signal* signal)
{
  jamEntry();
  NodeId myNodeId = getOwnNodeId();
  BlockReference dictref = calcDictBlockRef(myNodeId);
  sendSignal(dictref, GSN_DROP_TRIG_REF, signal, DropTrigRef::SignalLength, JBB);
  sendSignal(DBDICT_REF, GSN_DROP_TRIG_REF, signal,
             DropTrigRef::SignalLength, JBB);
}
Uint32 Dblqh::calcPageCheckSum(LogPageRecordPtr logP){
+88 −0
Original line number Diff line number Diff line
#!/usr/bin/perl -w

use strict;

if(@ARGV < 1)
{
    print STDERR "Usage:\n";
    print STDERR "\tndb_error_reporter config.ini [username] [--fs]\n\n";
    print STDERR "\tusername is a user that you can use to ssh into\n";
    print STDERR "\t  all of your nodes with.\n\n";
    print STDERR "\t--fs means include the filesystems in the report\n";
    print STDERR "\t WARNING: This may require a lot of disk space.\n";
    print STDERR "\t          Only use this option when asked to.\n\n";
    exit(1);
}

my $config_file= $ARGV[0];
my $config_get_fs= 0;
my $config_username= '';
if(defined($ARGV[1]))
{
    $config_get_fs= 1 if $ARGV[1] eq '--fs';
    $config_username= $ARGV[1].'@' if $ARGV[1] ne '--fs';
    $config_get_fs= (defined $ARGV[2] && $ARGV[2] eq '--fs')?1:$config_get_fs;
}

if(!stat($config_file))
{
    print STDERR "Cannot open configuration file.\n\n";
    exit(1);
}

my @nodes= split ' ',`ndb_config --config-file=$ARGV[0] --nodes --query=id --type=ndbd`;

push @nodes, split ' ',`ndb_config --config-file=$ARGV[0] --nodes --query=id --type=ndb_mgmd`;

sub config {
    my $nodeid= shift;
    my $query= shift;
    my $res= `ndb_config --config-file=$ARGV[0] --id=$nodeid --query=$query`;
    chomp $res;
    $res;
}

my @t= localtime();
my $reportdir= sprintf('ndb_error_report_%u%02u%02u%02u%02u%02u',
		       ($t[5]+1900),($t[4]+1),$t[3],$t[2],$t[1],$t[0]);

if(stat($reportdir) || stat($reportdir.'tar.bz2'))
{
    print STDERR "It looks like another ndb_error_report process is running.\n";
    print STDERR "If that is not the case, remove the ndb_error_report directory";
    print STDERR " and run ndb_error_report again.\n\n";
    exit(1);
}

mkdir($reportdir);

foreach my $node (@nodes)
{
    print "\n\n Copying data from node $node".
	(($config_get_fs)?" with filesystem":"").
	"\n\n";
    my $recurse= ($config_get_fs)?'-r ':'';
    system 'scp '.$recurse.$config_username.config($node,'host').
	':'.config($node,'datadir')."/ndb_".$node."* ".
	"$reportdir/\n";
}

print "\n\n Copying configuration file...\n\n\t$config_file\n\n";
system "cp $config_file $reportdir/";

my $r = system 'bzip2 2>&1 > /dev/null  < /dev/null';
my $outfile;
if($r==0)
{
    $outfile= "$reportdir.tar.bz2";
    system "tar c $reportdir|bzip2 > $outfile";
}
else
{
    $outfile= "$reportdir.tar.gz";
    system "tar c $reportdir|gzip > $outfile";
}

system "rm -rf $reportdir";

print "\n\nPlease attach $outfile to your error report\n\n";
+3 −3
Original line number Diff line number Diff line
@@ -146,9 +146,9 @@ foreach(@{$tables})
	elsif($type =~ /varchar/ || $type =~ /varbinary/)
	{
	    my $fixed= 1+$size;
	    my @dynamic=$dbh->selectrow_array("select avg(length("
					      .$dbh->quote($name)
					      .")) from `".$table.'`');
	    my @dynamic=$dbh->selectrow_array("select avg(length(`"
					      .$name.
					      ."`)) from `".$table.'`');
	    $dynamic[0]=0 if !$dynamic[0];
	    @realsize= ($fixed,$fixed,ceil($dynamic[0]));
	}