mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
bug#11942 - ndb - backup during DDL
fix bug introduced in alter table
This commit is contained in:
@ -2918,6 +2918,7 @@ Dbdict::execALTER_TABLE_REQ(Signal* signal)
|
|||||||
alterTabPtr.p->m_coordinatorRef = reference();
|
alterTabPtr.p->m_coordinatorRef = reference();
|
||||||
alterTabPtr.p->m_fragmentsPtrI = RNIL;
|
alterTabPtr.p->m_fragmentsPtrI = RNIL;
|
||||||
alterTabPtr.p->m_dihAddFragPtr = RNIL;
|
alterTabPtr.p->m_dihAddFragPtr = RNIL;
|
||||||
|
alterTabPtr.p->m_alterTableId = tablePtr.p->tableId;
|
||||||
|
|
||||||
// Send prepare request to all alive nodes
|
// Send prepare request to all alive nodes
|
||||||
SimplePropertiesSectionWriter w(getSectionSegmentPool());
|
SimplePropertiesSectionWriter w(getSectionSegmentPool());
|
||||||
@ -2951,7 +2952,7 @@ Dbdict::alterTable_backup_mutex_locked(Signal* signal,
|
|||||||
ndbrequire(c_opCreateTable.find(alterTabPtr, callbackData));
|
ndbrequire(c_opCreateTable.find(alterTabPtr, callbackData));
|
||||||
|
|
||||||
TableRecordPtr tablePtr;
|
TableRecordPtr tablePtr;
|
||||||
c_tableRecordPool.getPtr(tablePtr, alterTabPtr.p->m_tablePtrI, true);
|
c_tableRecordPool.getPtr(tablePtr, alterTabPtr.p->m_alterTableId, true);
|
||||||
|
|
||||||
Mutex mutex(signal, c_mutexMgr, alterTabPtr.p->m_startLcpMutex);
|
Mutex mutex(signal, c_mutexMgr, alterTabPtr.p->m_startLcpMutex);
|
||||||
mutex.unlock(); // ignore response
|
mutex.unlock(); // ignore response
|
||||||
@ -2969,6 +2970,10 @@ Dbdict::alterTable_backup_mutex_locked(Signal* signal,
|
|||||||
req->senderData = alterTabPtr.p->m_senderData;
|
req->senderData = alterTabPtr.p->m_senderData;
|
||||||
req->senderRef = alterTabPtr.p->m_senderRef;
|
req->senderRef = alterTabPtr.p->m_senderRef;
|
||||||
alterTableRef(signal, req, AlterTableRef::BackupInProgress);
|
alterTableRef(signal, req, AlterTableRef::BackupInProgress);
|
||||||
|
|
||||||
|
c_tableRecordPool.getPtr(tablePtr, alterTabPtr.p->m_tablePtrI);
|
||||||
|
releaseTableObject(tablePtr.i, false);
|
||||||
|
|
||||||
c_opCreateTable.release(alterTabPtr);
|
c_opCreateTable.release(alterTabPtr);
|
||||||
c_blockState = BS_IDLE;
|
c_blockState = BS_IDLE;
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user