ommysql: do not duplicate entries on failed transaction

If a multi-message batch contains data errors, messages may be
duplicated as connection close is implicit commit (not rollback).
This patch introduces a specific rollback request in those cases.

closes https://github.com/rsyslog/rsyslog/issues/1829
This commit is contained in:
Rainer Gerhards 2017-10-10 14:28:44 +02:00
parent e9a27a0c53
commit cdd7b62c60

View File

@ -309,6 +309,10 @@ CODESTARTcommitTransaction
if(iRet != RS_RET_OK
&& iRet != RS_RET_DEFER_COMMIT
&& iRet != RS_RET_PREVIOUS_COMMITTED) {
if(mysql_rollback(pWrkrData->hmysql) != 0) {
DBGPRINTF("ommysql: server error: transaction could not be rolled back\n");
}
closeMySQL(pWrkrData);
FINALIZE;
}
}