Bug #57357 | RBR breaks on changing user password on 5.1 --> 5.5 (BUG#55452 and WL#4300) | ||
---|---|---|---|
Submitted: | 10 Oct 2010 21:33 | Modified: | 15 Oct 2010 9:03 |
Reporter: | Alfranio Tavares Correia Junior | Email Updates: | |
Status: | Won't fix | Impact on me: | |
Category: | MySQL Server: Security: Privileges | Severity: | S3 (Non-critical) |
Version: | 5.5 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | regression, replication, runtime, WL#4300 |
[10 Oct 2010 21:33]
Alfranio Tavares Correia Junior
[15 Oct 2010 9:03]
Alexander Nozdrin
SET PASSWORD is a DDL statement, so it should be replicated by STMT.
[15 Oct 2010 9:52]
Alfranio Tavares Correia Junior
SET PASSWORD was replicated in STMT and ROW format due to BUG#55452. This fact along with the new field introduced by WL#4300 lead to the bug reported here. The issue happens because, in ROW format, replication expects that either the table's definition in the master and slave matches or any additional field is at the bottom of the table. However, WL#4300 introduced a new field at the middle of the table due to the server's assumption that privileges always appear together. >=5.1.53 SET PASSWORD is a DDL statement and must be replicated in the STMT format. This was fixed in BUG#57098. So replicating from >=5.1.53 will work fine. <5.1.53 This bug BUG#57357 was filed to move the new field introduced by WL#4300 to the bottom of the table and thus enabling replication between <5.1.53 and 5.5. Note this is required because such versions will still send the SET PASSWORD in ROW format. However fixing this requires several changes to the parser and functions that handle changes to the privileges as these functions assume that privileges always appear together in a table.