| @@ -214,6 +214,7 @@ int CsvOp::CsvParser::PutRow(int c) { | |||||
| Status s = rows_connector_->Add(worker_id_, std::move(cur_row_)); | Status s = rows_connector_->Add(worker_id_, std::move(cur_row_)); | ||||
| if (s.IsError()) { | if (s.IsError()) { | ||||
| err_message_ = s.ToString(); | err_message_ = s.ToString(); | ||||
| if (s.StatusCode() == kMDInterrupted) return -2; | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -502,7 +503,9 @@ Status CsvOp::LoadFile(const std::string &file, int64_t start_offset, int64_t en | |||||
| // which is a 32-bit -1, it's not equal to the 8-bit -1 on Euler OS. So instead of char, we use | // which is a 32-bit -1, it's not equal to the 8-bit -1 on Euler OS. So instead of char, we use | ||||
| // int to receive its return value. | // int to receive its return value. | ||||
| int chr = ifs.get(); | int chr = ifs.get(); | ||||
| if (csv_parser.ProcessMessage(chr) != 0) { | |||||
| int err = csv_parser.ProcessMessage(chr); | |||||
| if (err != 0) { | |||||
| if (err == -2) return Status(kMDInterrupted); | |||||
| RETURN_STATUS_UNEXPECTED("Invalid file, failed to parse file: " + file + ":" + | RETURN_STATUS_UNEXPECTED("Invalid file, failed to parse file: " + file + ":" + | ||||
| std::to_string(csv_parser.GetTotalRows() + 1) + | std::to_string(csv_parser.GetTotalRows() + 1) + | ||||
| ". Error message: " + csv_parser.GetErrorMessage()); | ". Error message: " + csv_parser.GetErrorMessage()); | ||||