Ensure router executor acquires proper shard lock

cr: @onderkalaci
pull/335/head
Jason Petersen 2016-02-16 16:43:39 -07:00
commit 8ad5b09251
2 changed files with 5 additions and 2 deletions

View File

@ -154,7 +154,7 @@ CommutativityRuleToLockMode(CmdType commandType, bool upsertQuery)
static void
AcquireExecutorShardLock(Task *task, LOCKMODE lockMode)
{
int64 shardId = task->shardId;
int64 shardId = task->anchorShardId;
LockShardResource(shardId, lockMode);
}

View File

@ -14,9 +14,10 @@
*/
#include "postgres.h"
#include "c.h"
#include "miscadmin.h"
#include "distributed/relay_utility.h"
#include "distributed/resource_lock.h"
#include "storage/lmgr.h"
@ -68,6 +69,8 @@ LockShardResource(uint64 shardId, LOCKMODE lockmode)
const bool sessionLock = false;
const bool dontWait = false;
AssertArg(shardId != INVALID_SHARD_ID);
SET_LOCKTAG_SHARD_RESOURCE(tag, MyDatabaseId, shardId);
(void) LockAcquire(&tag, lockmode, sessionLock, dontWait);