しおみん
11 posts


@shiomin Javaで書けばもうすこし良いエラーハンドリングになりそうですが、Rubyで書いたフィルタプラグインの場合はプラグインな内で例外を起こすと、Detected double releaseがでるっぽいですね。
日本語

@hiroysato embulkはfilterでの入力チェックを想定していないでしょうしね。今回、入力ファイルのデータチェックを要求されてqiita.com/taka10257/item…を参考にやってみたのでした。
日本語

@shiomin すいません。DataErrorとかがいいかもと言ったのは忘れてください。普通の例外でも変わらないですね。
エラーはこの辺です。
github.com/embulk/embulk/…
procの中で例外を発生させるというのは、あんまりみたことがないのでどうするのがベストプラクティスなのかわからないです。
日本語

@hiroysato ConfigErrorってOpenSSLですかね...
DataErrorはZlib?
CSVの入力チェックに使うにはいずれも出自に違和感が...
Gistを見ると結局「org.embulk.deps.buffer.PooledBufferAllocatorImpl$BufferDoubleReleasedException: A Buffer detected double release() calls.」は発生するのでしょうかね...
日本語

@shiomin ちょっと私勘違いしてて、こう書けば良いかもしれません。
gist.github.com/hiroyuki-sato/…
ConfigError\.new よりDataError\.new "xx"の方がよいかも
日本語

@shiomin あぁなるほど、プラグインでraiseしてもその例外を拾って、Embulkが終了するということはないかもしれないですね。
raise DataErrorとかすればうまくいく..のかな?とおもったけどダメですね。
日本語

@hiroysato @cobot_1 embulk-input-jdbcは使ってません、すみません。
LEAK: ByteBuf.release()がでたあとの動作は、(1) Embulkが終了する、です。
2つあったruby_procのうち、エラー発生してない方だけを復活させると正常終了、エラー発生してる方だけを復活させるとエラー、(続く)
日本語

@hiroysato @cobot_1 #issuecomment-586336178" target="_blank" rel="nofollow noopener">github.com/embulk/embulk/…
この対応版とかあれば400万にruby_proc入れて試してみましょうか?
日本語

@hiroysato @cobot_1 filterが8個あるんですが、そのうちruby_procな2個を消したらエラー起きなくなりました。
このファイルは最大400万件なのですが、ruby_procは念の為の入力チェックなので、まぁ最悪ruby_procなしで動けば良いのです。
別のファイルで4000万件をこれから試します。そっちもruby_procあったかも。
日本語

@hiroysato @cobot_1 400万件のロードをしていて自分も同じメッセージのエラーになりました。
自分はfilterのruby_procの辺りっぽいスタックトレースでした。
日本語
