yoku ts.
yoku0****@gmail*****
2013年 8月 29日 (木) 11:16:31 JST
こんにちは、yokuです。 handler::print_errorは`ストレージエンジンから'エラーが返されて クエリーが中断された時だけ作用するので、普通の(?)エラーは拾わないです。 勿論、InnoDBなど他のストレージエンジンからエラーが返されれば拾っちゃいますので、 gdb> condition 1 error= 1 で条件付きブレークにしておけば絞れるかなー感があります(error変数にGot error x from storage engineのxが入る) が、確かに敷居高そうですね。。 失礼しました(;´д`) yoku ts. 2013年8月29日 11:08 Kouhei Sutou <kou****@clear*****>: > 須藤です。 > > In <CAHB5oTOcYFJWd4wqzGiXMnjthjOgxZKKbfs56M=R+d0er=dkfA****@mail*****> > "[groonga-dev,01716] Re: FW: mroonga適用テーブルへの「WHERE IN 多数」クエリでエラー" on Thu, 29 Aug 2013 10:31:14 +0900, > "yoku ts." <yoku0****@gmail*****> wrote: > >> こちら http://sourceforge.jp/projects/groonga/lists/archive/dev/2013-August/001712.html >> で村上さんがなさっているように、 >> バックトレースを取ると少し幸せになったりしますか…? > すとーさん > > 役に立つと思うのですが、敷居が高いなぁというのが気になるとこ > ろなんです。。。村上さんはすでに自分でビルドしているのでデバッ > グビルドにしてもらえませんか?とかgdbで…とか大丈夫そうかなぁ > と思ったのですが、今回はパッケージでインストールしたものなの > で敷居が高いだろうなぁと。。。 > > あと、デバッグビルドじゃなくてもgdbでうまく情報が捕れるかなぁ > というのを心配しています。 > >> `Got error x from storage engine'の発生時にどうやってブレークさせようかとちょっと考えていたのですが、 >> こんな形でいけそうな気がしています。 >> (gdbでアタッチしてから"c"を叩くまではmysqldの処理が止まります) >> >> # gdb -p <mysqldのpid> >> gdb> b handler::print_error >> gdb> c >> Continuing. >> (ここでプロンプトが返ってこなくなる) >> >> ストレージエンジンからエラーが返るとgdbプロンプトが返ってくるので、 >> (ここからquitするまでの間、mysqldは処理が止まります) >> >> gdb> bt full >> .. >> gdb> quit >> >> でバックトレースが取れると思います。 >> いかがでしょう? > > handler::print_errorで違うエラーを捕まえてしまわなければいけ > る気がします!が、捕まえちゃいそうな気がしています。。。 > 大丈夫かしら。。。 > > -- > 須藤 功平 <kou****@clear*****> > 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270) > > groongaサポート: > http://groonga.org/ja/support/ > パッチ採用はじめました: > http://www.clear-code.com/recruitment/ > コミットへのコメントサービスはじめました: > http://www.clear-code.com/services/commit-comment.html > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev