| Bug #69438 | incorrect transaction active time for recoving transaction after crash | ||
|---|---|---|---|
| Submitted: | 11 Jun 2013 6:02 | Modified: | 11 Dec 2013 13:32 |
| Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) |
| Version: | 5.6.12 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | regression | ||
[11 Jun 2013 6:02]
Shane Bester
[11 Jun 2013 6:07]
MySQL Verification Team
5.5.32 is showing correct trx active time. I tested 5.6.10+ and 5.7.2 and they have incorrect trx active times.
[11 Jun 2013 7:10]
MySQL Verification Team
the problem is trx->trx_started is 0000-00-00 00:00:00
[11 Dec 2013 13:32]
Daniel Price
Fixed as of MySQL 5.6.16, 5.7.4: "During crash recovery, an incorrect transaction active time would result in rolling back an uncommitted transaction." Thank you for the bug report.
[3 Feb 2014 11:20]
Laurynas Biveinis
5.6$ bzr log -r 5679
------------------------------------------------------------
revno: 5679
committer: Anil Toshniwal <anil.toshniwal@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-12-11 13:35:55 +0530
message:
Bug#16936961 INCORRECT TRANSACTION ACTIVE TIME FOR RECOVING TRANSACTION
AFTER CRASH
Problem: The start_time member of trx_t structure is uninitialized in
trx_create(), that is, at the time of transaction object creation.
The start_time was initialized only at the start of transaction.
So after crash, start_time was taking the garbage value and while
rollback is running in background for uncommited trx.
Fixed: Initialized the start_time member in trx_resurrect_*(), when trx
is in either ACTIVE or PREPARED STATE.
Approved by Jimmy (rb#4046).
