Skip to content

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 to 1 (i.e. random options chosen showed TRGUPD:1).

Issue

  • This subtest sets the test_specific_trig_file env var. That means when dbcreate.csh happens in the source and receiver side, trigger definitions from com/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 and ZTWORMHOLE 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 the NULSUBSC 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 the com/gtm_test_trigupdate_disabled.csh script.

Merge request reports

Loading