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]

Reply via email to