I have tried one experiment -
Sequence is -
a) Ran Two application which has used cdb_subscribe2 api with CDB_SUB_RUNNING_TWOPHASE.
b) from CLI or netconf Client changed a node value
c) Both application connects to cdb with two connections
1) cdb_session_start2 with CDB_PRE_COMMIT_RUNNING to get old data
2) cdb_session_start2 with CDB_RUNNING to get new data.
c) On receipt of CDB_SUB_PREPARE, 1 application call cdb_sub_abort_trans (due to some data validation fail) and one application call cdb_sync_subscription_socket.
Result:
After step C, CLI got hanged. netconf client replied timedout.
Is it the limitation of ConfD basic or we can’t use two phase commit subscribe as mentioned above for validation and aborting the transaction.