Commit 2310bf1c authored by lzhou/zhl@dev3-63.(none)'s avatar lzhou/zhl@dev3-63.(none)
Browse files

Merge lzhou@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb-bj

into  dev3-63.(none):/home/zhl/mysql/mysql-5.1/bug29186
parents 92ba2bdd 04799ddb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -163,7 +163,8 @@ struct CreateFileImplRef {
    InvalidFileMetadata = 1510,
    OutOfMemory = 1511,
    FileReadError = 1512,
    FilegroupNotOnline = 1513
    FilegroupNotOnline = 1513,
    FileSizeTooLarge = 1515
  };
  
  Uint32 senderData;
+10 −0
Original line number Diff line number Diff line
@@ -12,6 +12,8 @@ Next BACKUP 10038
Next DBUTIL 11002
Next DBTUX 12008
Next SUMA 13001
Next LGMAN 15001
Next TSMAN 16001

TESTING NODE FAILURE, ARBITRATION
---------------------------------
@@ -535,3 +537,11 @@ NDBCNTR:

1000: Crash insertion on SystemError::CopyFragRef
1001: Delay sending NODE_FAILREP (to own node), until error is cleared

LGMAN:
-----
15000: Fail to create log file

TSMAN:
-----
16000: Fail to create data file
+6 −0
Original line number Diff line number Diff line
@@ -8286,6 +8286,12 @@ void Dbdih::execDIHNDBTAMPER(Signal* signal)
    } else if (tuserpointer < 15000) {
      jam();
      tuserblockref = DBDICT_REF;
    } else if (tuserpointer < 16000) {
      jam();
      tuserblockref = LGMAN_REF;
    } else if (tuserpointer < 17000) {
      jam();
      tuserblockref = TSMAN_REF;
    } else if (tuserpointer < 30000) {
      /*--------------------------------------------------------------------*/
      // Ignore errors in the 20000-range.
+16 −0
Original line number Diff line number Diff line
@@ -547,6 +547,22 @@ Lgman::execCREATE_FILE_REQ(Signal* signal)
      break;
    }
    
    if(ERROR_INSERTED(15000) ||
       (sizeof(void*) == 4 && req->file_size_hi & 0xFFFFFFFF))
    {
      jam();
      if(signal->getNoOfSections())
        releaseSections(signal);

      CreateFileImplRef* ref= (CreateFileImplRef*)signal->getDataPtr();
      ref->senderData = senderData;
      ref->senderRef = reference();
      ref->errorCode = CreateFileImplRef::FileSizeTooLarge;
      sendSignal(senderRef, GSN_CREATE_FILE_REF, signal,
                 CreateFileImplRef::SignalLength, JBB);
      return;
    }

    new (file_ptr.p) Undofile(req, ptr.i);

    Local_undofile_list tmp(m_file_pool, ptr.p->m_meta_files);
+16 −0
Original line number Diff line number Diff line
@@ -523,6 +523,22 @@ Tsman::execCREATE_FILE_REQ(Signal* signal){
      break;
    }
    
    if(ERROR_INSERTED(16000) ||
       (sizeof(void*) == 4 && req->file_size_hi & 0xFFFFFFFF))
    {
      jam();
      if(signal->getNoOfSections())
        releaseSections(signal);

      CreateFileImplRef* ref= (CreateFileImplRef*)signal->getDataPtr();
      ref->senderData = senderData;
      ref->senderRef = reference();
      ref->errorCode = CreateFileImplRef::FileSizeTooLarge;
      sendSignal(senderRef, GSN_CREATE_FILE_REF, signal,
                 CreateFileImplRef::SignalLength, JBB);
      return;
    }
 
    new (file_ptr.p) Datafile(req);
    Local_datafile_list tmp(m_file_pool, ptr.p->m_meta_files);
    tmp.add(file_ptr);
Loading