Bug #3483 | INSERT hangs indefinitely on FULLTEXT table | ||
---|---|---|---|
Submitted: | 16 Apr 2004 11:24 | Modified: | 16 Feb 2005 16:08 |
Reporter: | Don MacAskill | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: MyISAM storage engine | Severity: | S1 (Critical) |
Version: | 4.0.18-max-AMD64 | OS: | Linux (Red Hat Enterprise 3) |
Assigned to: | Sergei Golubchik | CPU Architecture: | Any |
[16 Apr 2004 11:24]
Don MacAskill
[26 Apr 2004 1:25]
Sergei Golubchik
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release. If necessary, you can access the source repository and build the latest available version, including the bugfix, yourself. More information about accessing the source trees is available at http://www.mysql.com/doc/en/Installing_source_tree.html Additional info: It's already fixed in 4.0.19 - try it when it will be released. Changelog comment: * Fixed a bug in `MATCH ... AGAINST()' searches when another thread was doing concurrent inserts into the `MyISAM' table in question. The first -- full-text search -- query could return incorrect results in this case (e.g. "phantom" rows or not all matching rows, even an empty result set). The easiest way to check whether you are affected is to start `mysqld' with `--skip-concurrent-insert' switch and see if it helps.
[26 Apr 2004 8:47]
Don MacAskill
I had seen that fix, however, it didn't appear to match up exactly. I'm seeing the problem on a server on which there are zero SELECT statement, much less any MATCH ... AGAINST statements. (It's a slave that no clients connect to, so it only gets the INSERT, UPDATE, and DELETE statements). It's very possible that this fix does cover this problem, but it didn't sound like the symptoms perfectly align.
[26 Apr 2004 9:16]
Don MacAskill
Re-reading my earlier comment, it wasn't as clear as it could have been. The UPDATE and DELETE statements that are being passed to the slave do not have any MATCH ... AGAINST elements in the WHERE clause. They're simply updating and deleting based on the primary key. So there aren't any SELECT, UPDATE, or DELETEs being used on my slave with MATCH ... AGAINST, but I still see this problem.
[28 Aug 2004 0:56]
Zack Allison
I'm having the same problem on Red Hat Enterprise Linux WS release 3 (Taroon), using 4.0.20-Max on a dual processor AMD64 system. The table is a few short varchars, and one MEDIUMBLOB field. The problem occurs with only inserts, and occurs much more frequently when when selects are being run on the same table. Any word on this?
[5 Oct 2004 19:31]
Sander Hollaar
I run mysql 4.1.5 on an almost idle dual amd64, and also see commands in 'Locked' state. The same happened with 4.1.4. I try the '--skip-concurrent-insert' now and see if that eliminates the problem. Is this a mysql-on-(dual)amd64 problem? OS: Debian 64bit gcc-3.4 kernel: 2.6.8.1-mm4 mysql: 4.1.5 (source) Please let me know if I can provide more info.
[5 Oct 2004 19:33]
Sander Hollaar
Contacting me might be difficult without an email address :-) mysql@humilis.net
[16 Feb 2005 11:58]
Michel Buijsman
This one may have to be reopened, because it's still happening more or less exactly as described by Don. I've tried 4.0.23, 4.1.9, 4.1.10 on two dual opterons with 8 gig ram running Debian 3.1 pure64 gcc3.4. Tried kernels 2.6.11-rc1-mm1 and 2.6.11-rc2. The servers are/were running as a replication master/slave pair. The master (or standalone) server required quite a bit of poking to get it to hang in a test environment, or just a few short hours running as a production server. I haven't been able to narrow it down to one specific thing, but it appears to have something to do with indexes, because it ran fine after dropping all of them. I hacked up a test script that's throwing a random selection of selects and inserts at it at random intervals between 0 and 2 seconds, from 20 concurrent threads. I could trigger it by running a "repair table" on it while the test script was running. The repair thread would wait for its turn, then lock everything else out and do its thing, and when it was done the first insert after that would hang indefinitely. (Left it hanging over the weekend, nothing.) Adding "skip-concurrent-insert" fixes the problem, but cripples the performance so that's not really an option. Then tried to run one of the amd64 boxes as a slave off of a xeon box: Same problem, the replication thread hangs within seconds of starting the server, and again won't budge for anything except kill -9. This is on a server without _any_ other connections except for a processlist.
[16 Feb 2005 16:08]
Sergei Golubchik
Could you submit it as a new bug please ? It looks like REPAIR bug, not the one that was closed.
[16 Feb 2005 19:37]
Michel Buijsman
Ok, I've entered a new one, bug 8555.