Skip to content

Commit a0df293

Browse files
author
Ole John Aske
committed
Fix failing ATR test: 'testSpj -n MixedJoin':
The test utilit function runJoin() had the option to set the property 'InsertError' which in case specified were used as ERROR_INSERT value. When runJoin() completed it *unconditionally* inserted a '0' error in order to clean any error prev. inserted. The testcase MixedJoin ran 6 steps of this testcase in parallel *without* any InsertError property being specified. However, the last error=0 where nevertheless always set. The implementation if error insert always send a SYNC_REQ signal after an error insert in order to 'flush' it to all Ndb blocks. This signal is routed via the block proxy which have only 4 slots for outstandig SYNC_REC signal. If this limit is exceeded it will crash in LocalProxy.hpp line 217. As an error insert sets the error globally for all clients connected to the datanode, such parall setting of error inserts have never been an intended part of what we support. Thus it should be avoided. (STEPS == 1 whenever an error is inserted) This patch makes the 0 error insert conditionally, such that the proxy slots for SYNC_REQ are not exhaused.
1 parent e9d0f52 commit a0df293

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

storage/ndb/test/ndbapi/testSpj.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,10 @@ runJoin(NDBT_Context* ctx, NDBT_Step* step){
315315
addMask(ctx, (1 << stepNo), "Running");
316316
}
317317
g_info << endl;
318-
restarter.insertErrorInAllNodes(0);
318+
if (inject_err)
319+
{
320+
restarter.insertErrorInAllNodes(0);
321+
}
319322
return NDBT_OK;
320323
}
321324

0 commit comments

Comments
 (0)