Bug #42751 TRIGGERs cause table locks in Cluster
| Submitted: | 11 Feb 2009 7:49 | Modified: | 15 Feb 2009 20:18 |
|---|---|---|---|
| Reporter: | Johan Andersson | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S3 (Non-critical) |
| Version: | * (all that has triggers) | OS: | Any |
| Assigned to: | Tomas Ulin | CPU Architecture: | Any |
| Tags: | table lock, trigger | ||
[11 Feb 2009 7:49]
Johan Andersson
[11 Feb 2009 7:57]
Bernd Ocklin
probably a duplicate of 42474.
[11 Feb 2009 8:32]
Jonas Oreland
IRC log 2009-02-10 15:54 jonas dlenev: short question regarding triggers, 1) they seem to use table-locks, is this correct? 2) is it possible to avoid it somehow dlenev jonas: InnoDb and others simply downgrade those locks to something else dlenev re correctness it is a tough question jonas dlenev: thx! that means that we (maybe) can too dlenev jonas: I think that for NDB it should be fairly safe... as you don't support SBR anyway dlenev and these locks are there mostly due to SBR jonas dlenev: ahh, thx again/more dlenev jonas: so you could report a bug against runtime area if you like
[11 Feb 2009 14:59]
Tomas Ulin
=== modified file 'sql/ha_ndbcluster.cc'
--- sql/ha_ndbcluster.cc 2009-02-09 13:28:30 +0000
+++ sql/ha_ndbcluster.cc 2009-02-11 14:58:51 +0000
@@ -4386,8 +4386,11 @@ THR_LOCK_DATA **ha_ndbcluster::store_loc
/* Since NDB does not currently have table locks
this is treated as a ordinary lock */
+ const bool in_lock_tables = thd_in_lock_tables(thd);
+ const uint sql_command = thd_sql_command(thd);
if ((lock_type >= TL_WRITE_CONCURRENT_INSERT &&
- lock_type <= TL_WRITE) && !thd->in_lock_tables)
+ lock_type <= TL_WRITE) &&
+ !(in_lock_tables && sql_command == SQLCOM_LOCK_TABLES))
lock_type= TL_WRITE_ALLOW_WRITE;
/* In queries of type INSERT INTO t1 SELECT ... FROM t2 ...
[11 Feb 2009 20:51]
Johan Andersson
Yes! This works very well. Thank you!
[12 Feb 2009 17:08]
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/commits/66064 2817 Tomas Ulin 2009-02-12 bug#42751 : TRIGGERs cause table locks in Cluster
[12 Feb 2009 17:09]
Bugs System
Pushed into 5.1.31-ndb-6.2.17 (revid:tomas.ulin@sun.com-20090212170826-3dsaql7f2esrhtmx) (version source revid:tomas.ulin@sun.com-20090212170826-3dsaql7f2esrhtmx) (merge vers: 5.1.31-ndb-6.2.17) (pib:6)
[12 Feb 2009 17:16]
Bugs System
Pushed into 5.1.31-ndb-6.3.23 (revid:tomas.ulin@sun.com-20090212171522-7f4wksf9hqmyu7nm) (version source revid:tomas.ulin@sun.com-20090212171522-7f4wksf9hqmyu7nm) (merge vers: 5.1.31-ndb-6.3.23) (pib:6)
[12 Feb 2009 17:19]
Bugs System
Pushed into 5.1.31-ndb-6.4.3 (revid:tomas.ulin@sun.com-20090212171733-o0kb9b6bl6scii3j) (version source revid:tomas.ulin@sun.com-20090212171733-o0kb9b6bl6scii3j) (merge vers: 5.1.31-ndb-6.4.3) (pib:6)
[15 Feb 2009 20:18]
Jon Stephens
Documented bugfix in the NDB-6.2.17, 6.3.23, and 6.4.3 changelogs as follows:
Triggers on NDBCLUSTER tables caused such tables to become locked.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.060 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.