You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
MCOL-5352 Properly handle PP restart for DML/DDL operations.
This commit is contained in:
committed by
Leonid Fedorov
parent
d3896efb0f
commit
7f14dae5c7
@ -50,7 +50,8 @@ using namespace messageqcpp;
|
||||
|
||||
namespace dmlpackageprocessor
|
||||
{
|
||||
DMLPackageProcessor::DMLResult InsertPackageProcessor::processPackage(dmlpackage::CalpontDMLPackage& cpackage)
|
||||
DMLPackageProcessor::DMLResult InsertPackageProcessor::processPackageInternal(
|
||||
dmlpackage::CalpontDMLPackage& cpackage)
|
||||
{
|
||||
SUMMARY_INFO("InsertPackageProcessor::processPackage");
|
||||
|
||||
@ -184,7 +185,6 @@ DMLPackageProcessor::DMLResult InsertPackageProcessor::processPackage(dmlpackage
|
||||
abs_ts.tv_nsec = rm_ts.tv_nsec;
|
||||
} while (nanosleep(&abs_ts, &rm_ts) < 0);
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
processID = ::getpid();
|
||||
@ -365,21 +365,28 @@ DMLPackageProcessor::DMLResult InsertPackageProcessor::processPackage(dmlpackage
|
||||
}
|
||||
catch (exception& ex)
|
||||
{
|
||||
cerr << "InsertPackageProcessor::processPackage: " << ex.what() << endl;
|
||||
|
||||
logging::Message::Args args;
|
||||
logging::Message message(1);
|
||||
args.add("Insert Failed: ");
|
||||
args.add(ex.what());
|
||||
args.add("");
|
||||
args.add("");
|
||||
message.format(args);
|
||||
|
||||
if (result.result != VB_OVERFLOW_ERROR)
|
||||
if (checkPPLostConnection(ex))
|
||||
{
|
||||
result.result = INSERT_ERROR;
|
||||
result.message = message;
|
||||
errorMsg = ex.what();
|
||||
result.result = PP_LOST_CONNECTION;
|
||||
}
|
||||
else
|
||||
{
|
||||
cerr << "InsertPackageProcessor::processPackage: " << ex.what() << endl;
|
||||
|
||||
logging::Message::Args args;
|
||||
logging::Message message(1);
|
||||
args.add("Insert Failed: ");
|
||||
args.add(ex.what());
|
||||
args.add("");
|
||||
args.add("");
|
||||
message.format(args);
|
||||
|
||||
if (result.result != VB_OVERFLOW_ERROR)
|
||||
{
|
||||
result.result = INSERT_ERROR;
|
||||
result.message = message;
|
||||
errorMsg = ex.what();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
@ -397,7 +404,19 @@ DMLPackageProcessor::DMLResult InsertPackageProcessor::processPackage(dmlpackage
|
||||
result.message = message;
|
||||
}
|
||||
|
||||
if ((rc != 0) && (rc != IDBRANGE_WARNING))
|
||||
if (rc == 1)
|
||||
{
|
||||
logging::Message::Args args;
|
||||
logging::Message message(1);
|
||||
args.add("Insert Failed: ");
|
||||
args.add(errorMsg);
|
||||
args.add("");
|
||||
args.add("");
|
||||
message.format(args);
|
||||
result.result = PP_LOST_CONNECTION;
|
||||
result.message = message;
|
||||
}
|
||||
else if ((rc != 0) && (rc != IDBRANGE_WARNING))
|
||||
{
|
||||
logging::Message::Args args;
|
||||
logging::Message message(1);
|
||||
@ -427,4 +446,3 @@ DMLPackageProcessor::DMLResult InsertPackageProcessor::processPackage(dmlpackage
|
||||
}
|
||||
|
||||
} // namespace dmlpackageprocessor
|
||||
|
||||
|
Reference in New Issue
Block a user