Jun Nishikawa
topaz****@m0n0m*****
2012年 6月 5日 (火) 00:44:58 JST
西川です。 すいません。再現手順に漏れがあったみたいです。 query cache が 有効な状態で、 start transaction; の直後に select max(id) from test for update; を発行すると発症するようです。 その状態に陥ると drop table しても mysql を再起動しても同じ症状になるようです。 試しに『query_cache_size=0』にしてみて mysql を再起動してみたら症状が出なくなりました。 よろしくお願いします。 2012年6月4日 19:47 Kouhei Sutou <kou****@clear*****>: > 須藤です。 > > In <CABp+****@mail*****> > "[groonga-dev,00916] select count(*) で正しい件数がとれない" on Sun, 3 Jun 2012 13:59:39 +0900, > Jun Nishikawa <topaz****@m0n0m*****> wrote: > >> mroonga 導入の為検証をしているのですが、 >> 特定の条件で select count(*) の値が必ずずれます。 >> >> この現象は下記チケットが close すれば治るという理解でよろしいでしょうか? >> http://redmine.groonga.org/issues/1318 > > あ、いえ、このチケットの問題は修正済みです。 > (私が変更の詳細をまだ確認していないのでcloseになっていない > だけです。) > >> 環境は以下の通りです。 >> $ facter lsbdistdescription >> Ubuntu 12.04 LTS >> $ aptitude show mysql-server-mroonga mysql-server | grep Version >> Version: 2.03-1 >> Version: 5.5.22-0ubuntu1 >> 以下、再現手順です。 > > ありがとうございます! > chroot環境下ですが、試してみました! > が、再現しませんでした。。。 > > # facter lsbdistdescription > Ubuntu 12.04 LTS > # LANG=C aptitude show mysql-server-mroonga mysql-server | grep Version > Version: 2.03-1 > Version: 5.5.22-0ubuntu1 > > terminal 1: > > mysql> CREATE TABLE `test` ( `id` int(11) NOT NULL, `culture` varchar(7) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `description` text COLLATE utf8_unicode_ci, `tags` text COLLATE utf8_unicode_ci, PRIMARY KEY (`id`,`culture`) USING BTREE, FULLTEXT KEY `name_description` (`name`,`description`), FULLTEXT KEY `tags` (`tags`) ) ENGINE=mroonga DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='engine "innodb"'; > Query OK, 0 rows affected, 2 warnings (0.43 sec) > > mysql> insert into test values (1, 'ja', 'ワンピース', '1巻', 'ワンピース'); > Query OK, 1 row affected (0.06 sec) > > mysql> insert into test values (1, 'en', 'One Piece', 'Volume 1', 'Manga'); > Query OK, 1 row affected (0.05 sec) > > terminal 2: > > mysql> start transaction; > Query OK, 0 rows affected (0.00 sec) > > mysql> insert into test values (2, 'ja', 'ワンピース', '2巻', 'ワンピース'); > Query OK, 1 row affected (0.00 sec) > > terminal 1: > > mysql> select count(*) from test WHERE culture='ja' AND MATCH (test.TAGS) AGAINST ('+ワンピース' IN BOOLEAN MODE) AND MATCH (test.NAME, test.DESCRIPTION) AGAINST ('+ ワンピース' IN BOOLEAN MODE); > +----------+ > | count(*) | > +----------+ > | 1 | > +----------+ > 1 row in set (0.02 sec) > > terminal 2: > > mysql> commit; > Query OK, 0 rows affected (0.04 sec) > > terminal 1: > > mysql> select count(*) from test WHERE culture='ja' AND MATCH (test.TAGS) AGAINST ('+ワンピース' IN BOOLEAN MODE) AND MATCH (test.NAME, test.DESCRIPTION) AGAINST ('+ワンピース' IN BOOLEAN MODE); > +----------+ > | count(*) | > +----------+ > | 2 | > +----------+ > 1 row in set (0.00 sec) > > mysql> select * from test; > +----+---------+-----------------+-------------+-----------------+ > | id | culture | name | description | tags | > +----+---------+-----------------+-------------+-----------------+ > | 1 | en | One Piece | Volume 1 | Manga | > | 1 | ja | ワンピース | 1巻 | ワンピース | > | 2 | ja | ワンピース | 2巻 | ワンピース | > +----+---------+-----------------+-------------+-----------------+ > 3 rows in set (0.00 sec) > > > うーん、何が違うんですかねぇ。。。 > 念のため、MySQLを再起動してみてもらえますか? > > > -- > 須藤 功平 <kou****@clear*****> > 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270) > > groongaサポート: > http://groonga.org/ja/support/ > プログラミングが好きなソフトウェア開発者を募集中: > http://www.clear-code.com/recruitment/ > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev -- --------------------------------------------------------------------- Jun Nishikawa, CEO Monomono Co., Ltd. 西川 潤, CEO 合同会社モノモノ Tel: 090-6155-4271 Mail: topaz****@m0n0m***** Skype: topaz2.3333 Y!J Messenger: submarine_motor Twitter: http://twitter.com/topaz2_3333 Corporate Site: http://m0n0m0n0.com/ ----------------------------------------------------------------------