| Bug #13305 | multi-table update crashes slave if involves function | ||
|---|---|---|---|
| Submitted: | 18 Sep 2005 10:54 | Modified: | 6 Oct 2005 20:50 |
| Reporter: | Guilhem Bichot | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: Replication | Severity: | S3 (Non-critical) |
| Version: | 5.0 | OS: | Linux (linux) |
| Assigned to: | Assigned Account | CPU Architecture: | Any |
[18 Sep 2005 10:54]
Guilhem Bichot
[18 Sep 2005 11:52]
Guilhem Bichot
I would suggest this bug goes to Antony, as the code is his:
acurtis 1.271.1.149 if (lex->sql_command == SQLCOM_UPDATE_MULTI)
acurtis 1.218.43.1 {
acurtis 1.218.43.1 DBUG_PRINT("info",("need faked locked tables"));
acurtis 1.218.43.1
acurtis 1.393.2.4 if (check_multi_update_lock(thd))
acurtis 1.218.43.1 goto error;
acurtis 1.218.43.1
acurtis 1.218.43.1 /* Fix for replication, the tables are opened and locked,
acurtis 1.218.43.1 now we pretend that we have performed a LOCK TABLES action */
acurtis 1.218.43.1
acurtis 1.218.43.1 fake_prev_lock= thd->locked_tables;
acurtis 1.218.43.1 if (thd->lock)
acurtis 1.218.43.1 thd->locked_tables= thd->lock;
acurtis 1.218.43.1 thd->lock= 0;
acurtis 1.218.43.1 slave_fake_lock= 1;
acurtis 1.218.43.1 }
[18 Sep 2005 19:19]
Sergei Golubchik
The fix for the BUG#7011 is no longer correct for 5.0. It tries to do prelocking which worked in 4.0 and 4.1 but in 5.0 SP and triggers do the same trick. Thus BUG#7011 should be re-fixed in 5.0, one possible solution - for multi-updates perform all_tables_not_ok() test later when all locks are known.
[19 Sep 2005 13:29]
Guilhem Bichot
does not happen with multi-DELETE (could not repeat using a similar testcase).
[6 Oct 2005 0:29]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/30738
[6 Oct 2005 20:50]
Sergei Golubchik
a duplicate of bug#12618
