Kouhei Sutou
kou****@clear*****
2015年 4月 1日 (水) 20:49:22 JST
須藤です。 In <551A6****@doga*****> "[groonga-dev,03142] Re: selectの出力のJSONが壊れていることがある" on Tue, 31 Mar 2015 17:55:59 +0900, Masumi SHOJI <shoji****@doga*****> wrote: >> この余分な値なんですが、"1"以外の値(たとえば"2"とか)になる >> こともありますか?必ず"1"ですか? >> >> また、余分な値が入る場所はいつもその場所ですか? > > 今まで目にしたのは全部 "1" で、場所もそこです。 おぉ、それはなにかヒントになりそうです。 > といっても、それ以外にJSONを壊さないような場所に余分な文字が > 入って出力がおかしいことがあるかどうかまでは分かりませんが、 > 少なくともデコードできないJSONが返るケースは全部その場所です。 たしかにそうですよね。 でも、他にもシンタックスエラーになる可能性のある場所はいろい ろあるので、その場所が怪しそうな気がします。 >> limit値を変えて再現しなくなるのはキャッシュの値(余分な"1"が >> 入っている)を使ったのではなく、実際に検索してその結果を返し >> ているからだと思います。 > > なるほど、ということは、入力パラメータ依存の現象ではなくて、 > パラメータをちょっとずつ変えて繰り返し検索すれば、 > そのうち発生する可能性もあるわけですね。 はい、そうです。 >> もし可能だったらなんですが、4.0.2も試してもらうことはできま >> すか?4.0.3でバッファーの構造を少し変えたのです。もしかした >> らそれが原因なのかも?と思いまして。。。 > > 試してみたくはあるのですが、Groongaを使っている今開発中の > システムがloadをPOSTで行っているので、すぐには入れ替えられなさそうです。 > (POST対応は4.0.3からですよね) なるほど。。。 面倒かと思うのですが、もし可能でしたらこの方法を試してもらえ ると助かります。 * Groonga 4.0.2と新しいGroongaを両方インストールする * ↑をそれぞれ別のポート番号で立ちあげる * loadは新しいGroongaを使う * 検索は4.0.2を使う Groongaはここ数年データベースの互換性が壊れていないので、違 うバージョンで同じデータベースを同時に開いても問題ありません。 なので、↑ということができます。 ただ、面倒だと思うので、ムリのない範囲でできそうなら検討して もらえると助かります。