[groonga-dev,03145] Re: selectの出力のJSONが壊れていることがある

Back to archive index

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はここ数年データベースの互換性が壊れていないので、違
うバージョンで同じデータベースを同時に開いても問題ありません。
なので、↑ということができます。

ただ、面倒だと思うので、ムリのない範囲でできそうなら検討して
もらえると助かります。




groonga-dev メーリングリストの案内
Back to archive index