Bug #3594 | Mysql fails to drop database if one of the table is named 'pricing' | ||
---|---|---|---|
Submitted: | 28 Apr 2004 21:42 | Modified: | 10 May 2004 12:45 |
Reporter: | Andrey Lebedev | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 4.0.18 | OS: | Linux (Debian Linux) |
Assigned to: | CPU Architecture: | Any |
[28 Apr 2004 21:42]
Andrey Lebedev
[29 Apr 2004 12:40]
Alexander Keremidarski
Not enough information was provided for us to be able to handle this bug. Please re-read the instructions at http://bugs.mysql.com/how-to-report.php If you can provide more information, feel free to add it to this bug and change the status back to 'Open'. Thank you for your interest in MySQL. Additional info: mysql> DROP DATABASE accounting; Query OK, 1 row affected (0.09 sec)
[29 Apr 2004 20:53]
Andrey Lebedev
OK, another try: can you repeat this transcript: ~$ mysql -u accounting -paccounting Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 to server version: 4.0.18-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE accounting; Query OK, 1 row affected (0.00 sec) mysql> USE accounting; Database changed mysql> CREATE TABLE `pricing` (`id` int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (`id`)) TYPE=MyISAM COMMENT='pricing policies' AUTO_INCREMENT=1 ; Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE `test` (`id` int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (`id`)) TYPE=MyISAM COMMENT='pricing policies' AUTO_INCREMENT=1 ; Query OK, 0 rows affected (0.00 sec) mysql> SHOW TABLES; +----------------------+ | Tables_in_accounting | +----------------------+ | pricing | | test | +----------------------+ 2 rows in set (0.00 sec) mysql> DROP DATABASE accounting; Query OK, 0 rows affected (0.00 sec) mysql> SHOW TABLES; +----------------------+ | Tables_in_accounting | +----------------------+ | pricing | +----------------------+ 1 row in set (0.00 sec) mysql> DROP TABLE pricing; Query OK, 0 rows affected (0.00 sec) mysql> SHOW TABLES; Empty set (0.00 sec) mysql> exit Bye
[7 May 2004 23:13]
mysql spam
Duplicate of this bug http://bugs.mysql.com/bug.php?id=3147 ...which is also marked as "Can't repeat", quite interesting indeed. PostgreSQL anyone? Oh yeah I forgot, I'm forced to use MySQL. Damn it. Here's a workaround: Drop all tables before doing DROP DATABASE. :P Oh and get used to doing that, cause this bug ain't getting fixed.
[8 May 2004 13:05]
Guilhem Bichot
Sorry, still can't repeat : Your MySQL connection id is 1 to server version: 4.0.19-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. SLAVE> CREATE DATABASE accounting; Query OK, 1 row affected (0.14 sec) SLAVE> SLAVE> USE accounting; Database changed SLAVE> CREATE TABLE `pricing` (`id` int(10) unsigned NOT NULL -> auto_increment, PRIMARY KEY (`id`)) TYPE=MyISAM COMMENT='pricing policies' AUTO_INCREMENT=1 ; Query OK, 0 rows affected (0.18 sec) SLAVE> CREATE TABLE `test` (`id` int(10) unsigned NOT NULL -> auto_increment, PRIMARY KEY (`id`)) TYPE=MyISAM COMMENT='pricing policies' AUTO_INCREMENT=1 ; Query OK, 0 rows affected (0.01 sec) SLAVE> show tables; +----------------------+ | Tables_in_accounting | +----------------------+ | pricing | | test | +----------------------+ 2 rows in set (0.00 sec) SLAVE> DROP DATABASE accounting; Query OK, 0 rows affected (0.01 sec) SLAVE> show tables; ERROR 12 (00000): Can't read dir of './accounting/' (Errcode: 2) Which is normal, the 'accounting' database dir was indeed deleted. (Linux Mandrake 9.2 on x86).
[8 May 2004 13:14]
Guilhem Bichot
When you successfully repeat the bug (using MyISAM tables), can you please take a look at the error log of your mysqld, and see if there are no complaints from InnoDB. That may be the problem: maybe there are "orphan" tables into InnoDB (tables which exist in InnoDB but not in MyISAM, because of weird things which happened before, maybe long ago) and so things screw up. In other words, please tell me if you can repeat the bug when you run your mysqld with --skip-innodb.
[8 May 2004 16:14]
Andrey Lebedev
Unfortunately there is absolutely nothing printed to error log during the test... More, I've removed mysql completely from my system, deleted /var/lib/mysql dir and then reinstalled it again and still experiensing this problem (inno-db is not enabled in debian by default). However I must admit I can reproduce this bug only with my home machine. At my job database was dropped fine everytime (database dropping is needed for unit testing, so it was dropped really lot of times at job). At home vice versa - it is 100% reproducable here. There are the same versions of mysql on both machines and both running debian. The only difference - I'm using debian unstable version at home and testing branch at job. Here is system information (home box), that debian's reportbug script produces: =========================================================================== Package: mysql-server Version: 4.0.18-8 Severity: normal Tags: sid -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.5-1-k7 Locale: LANG=C, LC_CTYPE=en_US.UTF-8 Versions of packages mysql-server depends on: ii adduser 3.52 Add and remove users and groups ii debconf 1.4.25 Debian configuration management sy ii libc6 2.3.2.ds1-12 GNU C Library: Shared libraries an ii libdbi-perl 1.41-1 The Perl5 Database Interface by Ti ii libgcc1 1:3.3.3-7 GCC support library ii libmysqlclient12 4.0.18-8 mysql database client library ii libssl0.9.7 0.9.7d-1 SSL shared libraries ii libstdc++5 1:3.3.3-7 The GNU Standard C++ Library v3 ii mysql-client 4.0.18-8 mysql database client binaries ii passwd 1:4.0.3-28 Change and administer password and ii perl 5.8.4-1 Larry Wall's Practical Extraction ii psmisc 21.4-1 Utilities that use the proc filesy ii zlib1g 1:1.2.1-5 compression library - runtime -- debconf information: * mysql-server/start_on_boot: true * mysql-server/mysql_install_db_notes: mysql-server/nis_warning: * mysql-server/postrm_remove_database: true =========================================================================== And here is system info on a debian box where i can't reporduce the bug: =========================================================================== Package: mysql-server Version: 4.0.18-5 Severity: normal -- System Information: Debian Release: testing/unstable APT prefers testing APT policy: (600, 'testing') Architecture: i386 (i686) Kernel: Linux 2.4.24-1-686 Locale: LANG=C, LC_CTYPE=C Versions of packages mysql-server depends on: ii adduser 3.52 Add and remove users and groups ii debconf 1.4.22 Debian configuration management sy ii libc6 2.3.2.ds1-11 GNU C Library: Shared libraries an ii libdbi-perl 1.41-1 The Perl5 Database Interface by Ti ii libgcc1 1:3.3.3-6 GCC support library ii libmysqlclient12 4.0.18-5 mysql database client library ii libssl0.9.7 0.9.7d-1 SSL shared libraries ii libstdc++5 1:3.3.3-6 The GNU Standard C++ Library v3 ii libwrap0 7.6.dbs-2 Wietse Venema's TCP wrappers libra ii mysql-client 4.0.18-5 mysql database client binaries ii passwd 1:4.0.3-26 Change and administer password and ii perl 5.8.3-3 Larry Wall's Practical Extraction ii psmisc 21.4-1 Utilities that use the proc filesy ii zlib1g 1:1.2.1-5 compression library - runtime -- debconf information: mysql-server/nis_warning: mysql-server/skip_networking: false mysql-server/want_chroot: false * mysql-server/start_on_boot: true * mysql-server/postrm_remove_database: false mysql-server/fix_privileges_warning: * mysql-server/mysql_install_db_notes:
[8 May 2004 17:40]
Sergei Golubchik
And what filesystem the datadir resides on ? (trying to check whether http://lists.mysql.com/internals/13765 and the trhead therein can be of any relevance)
[9 May 2004 22:42]
Andrey Lebedev
ext3 in both cases. Thanks for that link, now I guess I see where is the problem (if mysql still assumes that . and .. entries goes first in directory listing): root@kedhome:/var/lib/mysql/accounting# ls -Ua ./ pricing.frm pricing.MYI test.MYD ../ pricing.MYD test.MYI test.frm and after DROP DATABASE accounting: root@kedhome:/var/lib/mysql/accounting# ls -Ua ./ pricing.frm pricing.MYI ../ pricing.MYD That assumption is false for my home system and true for my job system (where i can't reproduce the bug).
[10 May 2004 12:45]
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: thanks for confirming. Then, it's fixed in the source tree already. Fix should be in 4.0.19