Bug #734
Transaction Processing: Read only committed transaction can corrupt the commit flow
Status: | Closed | Start date: | 10/18/2021 | |
---|---|---|---|---|
Priority: | Normal (Code 4) | Due date: | ||
Assignee: | - | % Done: | 100% | |
Category: | - | |||
Target version: | - |
Description
N:NDRX:5:7854be8b:32025:7f4bbdb4c300:006:20211018:114641735938:repare_entry:tmi/xa.c:0803:atmi_xa_prepare_entry N:NDRX:5:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736601:repare_entry:tmi/xa.c:0817:xa_prepare_entry - fail: 3 [the transaction branch was read-only and has been committed] N:NDRX:5:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736624:rror_fmt_rsn:perror.c:0404:ndrx_TPset_error_fmt_rsn: 16 (TPERMERR) reason: 3 [xa_prepare_entry - fail: 3 [the transaction branch was read-only and has been committed]] N:NDRX:5:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736642:repare_local:/local.c:0087:Failed to prepare local transaction btid=0! N:NDRX:4:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736653:tm_drive :atedrv.c:0204:Operation tperrno: 16, xa return code: 3 N:NDRX:4:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736669:tm_drive :atedrv.c:0306:Voting to leave group for 50! N:NDRX:5:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736676:ms_log_stage:rv/log.c:1277:tms_log_stage: new stage - 50 (cc 0) N:NDRX:4:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736685:tm_drive :atedrv.c:0127:Entered in stage: COMMITTING N:NDRX:4:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736690:tm_drive :atedrv.c:0146:RMID: 1 status r N:NDRX:4:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736695:tm_drive :atedrv.c:0154:OP_NOP N:NDRX:4:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736699:tm_drive :atedrv.c:0204:Operation tperrno: 0, xa return code: 0 N:NDRX:4:7854be8b:32025:7f4bbdb4c300:006:20211018:114641736704:tm_drive :atedrv.c:0232:No stage info for 50/r - i
Makes a vote / staging to committed for whole group (i.e. prepare/commit not performed for other branches).
History
#1 Updated by Lauris about 2 years ago
- Status changed from New to Resolved
- % Done changed from 0 to 100
Release notes¶
When processing global transactions with several resource managers involved, and if first resource manager would return XA_RDONLY, the whole transaction would step to commit phase, instead of performing prepare for second resource manager. This could lead to data corruption.
The issue has been fixed, so that two-phase commit engine would properly prepare the other resource managers in case if some manager returns XA_RDONLY
.
Available from Enduro/X version 7.5.34+.
#2 Updated by Lauris about 2 years ago
- Status changed from Resolved to Closed