This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-1.2-lts in repository https://gitbox.apache.org/repos/asf/doris.git
commit 847e0d36380758ab0a36dbfbc6eef43c9bb723e8 Author: xueweizhang <[email protected]> AuthorDate: Mon Mar 6 19:57:04 2023 +0800 [fix](publish) fix when TabletPublishTxnTask::handle() error, transaction publish success, and query table error (#17409) be use EnginePublishVersionTask to publish all replica of all tablets of table of one transaction, and EnginePublishVersionTask use TabletPublishTxnTask to truly publish tablet and make rowset visible. but if TabletPublishTxnTask error, tablet id will add _error_tablet_ids but no return some errors, and EnginePublishVersionTask will not report any error to fe, and fe make this transaction visible, and partition's version add 1. but if you query this table, will return error like "MySQL [test]> select * from test12;ERROR 1105 (HY000): errCode = 2, detailMessage = [INTERNAL_ERROR]failed to initialize storage reader. tablet=14023.730105214.d742d664692db946-386daa993d84d89d, res=[INTERNAL_ERROR][9.134.167.25]fail to find path in version_graph. spec_version: 0-3, backend=9.134.167.25". after this pr, _error_tablet_ids will report to fe, this transaction will not be visible and add ErrMsg like "publish on tablet 14038 failed.". Signed-off-by: nextdreamblue <[email protected]> --- be/src/agent/task_worker_pool.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/be/src/agent/task_worker_pool.cpp b/be/src/agent/task_worker_pool.cpp index 29a10ae8e8..e9982416be 100644 --- a/be/src/agent/task_worker_pool.cpp +++ b/be/src/agent/task_worker_pool.cpp @@ -757,6 +757,7 @@ void TaskWorkerPool::_publish_version_worker_thread_callback() { finish_task_request.__set_task_type(agent_task_req.task_type); finish_task_request.__set_signature(agent_task_req.signature); finish_task_request.__set_report_version(_s_report_version); + finish_task_request.__set_error_tablet_ids(error_tablet_ids); _finish_task(finish_task_request); _remove_task_info(agent_task_req.task_type, agent_task_req.signature); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
