Summary:
Call to GetConsistentChanges() suppresses all the error status it gets from virtual_wal's GetConsistentChangesInternal() apart from few ones (such as 'stream being inactive'
and 'intent records already GCed'). This behaviour of not responding most of the errors back to walsender causes problems such as walsender being unaware of internal issue
keep trying and thus being stuck.
This diff corrects this issue by sending back most of the errors back to walsender which GetConsistentChanges() gets from virtual_wal's GetConsistentChangesInternal(). The error
cases which are skipped from propagating back to client are: when tablet peer is not started yet, and when the tablet is not in kAvailable state.
Jira: DB-17654, DB-16451
Test Plan:
./yb_build.sh --cxx-test cdcsdk_consumption_consistent_changes-test --gtest_filter=CDCSDKConsumptionConsistentChangesTest.TestBeforeImageNotExistErrorPropagation
./yb_build.sh release --cxx-test cdcsdk_consumption_consistent_changes-test --gtest_filter=CDCSDKConsumptionConsistentChangesTest.TestBeforeImageNotExistErrorPropagation
Reviewers: sumukh.phalgaonkar, skumar, stiwary, asrinivasan, #db-approvers
Reviewed By: sumukh.phalgaonkar, #db-approvers
Subscribers: ycdcxcluster
Tags: #jenkins-ready
Differential Revision: https://phorge.dev.yugabyte.com/D45633