Fix rollback_B_1/repl_nonrepl_crash subtest hang when TRGUPD:1
Background
-
After commit edf2bdb8 re-enabled the
rollback_B_1/repl_nonrepl_crash
subtest, it was noticed that it hung once in a while. -
The update process log showed a
NULSUBSC
error in this case.%YDB-E-NULSUBSC, Update failed because Null subscripts are not allowed for database file: ##REMOTE_TEST_PATH##/rollback_B_1_5/repl_nonrepl_crash/mumps.dat %YDB-I-GVIS, Global variable: ^jrandomvariableinimptpfillprogr(0,5,5,"")
-
And all hangs happened when
gtm_test_trigupdate
env var was set to1
(i.e. random options chosen showedTRGUPD:1
).
Issue
-
This subtest sets the
test_specific_trig_file
env var. That means whendbcreate.csh
happens in the source and receiver side, trigger definitions fromcom/imptp.trg
would be loaded on both sides. -
But if
gtm_test_trigupdate
is set to 1, the source server would be started with-trigupdate
which would imply the trigger definitions andZTWORMHOLE
journal records would not be replicated. That in turn would imply that triggers on the receiver side which rely on$ztwormhole
would see an empty string and in turn result in an empty string as a subscript in the global variable resulting in theNULSUBSC
error. -
See YDB#722 (comment 1283543204) for more details.
Fix
- It is not important to test
gtm_test_trigupdate=1
in this subtest so we disable this random env var for this subtest using thecom/gtm_test_trigupdate_disabled.csh
script.