Thanks for answer,
This is telling that this process is running a cache invalidation
signal outside a transaction block. The only logical explanation that
I see here is that the transaction state of CurrentTransactionState is
not set to TBLOCK_DEFAULT, making transInvalInfo to not be
initialized, but we are sure that it is initialized via
IsTransactionOrTransactionBlock and CurrentTransactionState is set
per-backend. What kind of commands have you run in parallel for this
to happen?
There were performed parallel only standard commands like select, update, insert, delete, stored procedures which execute select/update/delete/insert
Value of CurrentTransactionState:
(gdb) print *CurrentTransactionState
$1 = {transactionId = 0, subTransactionId = 1, name = 0x0, savepointLevel = 0, state = TRANS_COMMIT, blockState = TBLOCK_STARTED, nestingLevel = 1, gucNestLevel = 1, curTransactionContext = 0x7f6ecdc3de10,
curTransactionOwner = 0x7f6eccf72800, childXids = 0x0, nChildXids = 0, maxChildXids = 0, prevUser = 21339, prevSecContext = 0, prevXactReadOnly = 0 '\000', startedInRecovery = 0 '\000',
didLogXid = 0 '\000', parent = 0x0}
--
Best regards,
Dmitriy Sarafannikov