From: 初音とし <tos...@gm...> - 2014-10-25 18:12:22
|
浅井と申します。いつもRuby-GNOME2にお世話になってます。 2.2.0 から 2.2.2 にアップデートしたところ、自分の書いたコードが意図しない動作をするようになりました。どんな変更がされたのかとコードを追っていたのですが、私では詰まってしまいました。 2.2.0 では期待通り動作して、2.2.2では「...」という初期表示のままでカウントが開始されず、CPU使用率がずっと100%になってしまう、というコードです。 https://gist.github.com/toshia/05d5ee302f49677e9d34 ウィンドウ内に意味のないボタンを設置していますが、 2.2.2 ではこれを押すと、しばらくの間タイマーが動作し続けます。 シグナルハンドラが登録されたイベントが発生すると、しばらく動作するようです。signal_connectを消せばクリックしても反応はなくなります。 別のスレッドから操作するのはあまり良くないかなと思ったりもしたんですが、単に他のスレッドが生きているだけでCPU使用率が100%になる状態です。 というところまでは分かったのですが、最初に書いたとおり私では手に追えないので、まずは困っていることの共有と、そもそもこれはバグなのか、というところを質問させていただきたいと思った次第です。 |
From: Kouhei S. <ko...@co...> - 2014-10-26 03:17:41
|
須藤です。 In <CAN...@ma...> "[ruby-gnome2-devel-ja] メインスレッド以外のスレッドが生きている時の挙動について" on Sun, 26 Oct 2014 03:12:15 +0900, 初音とし <tos...@gm...> wrote: > 2.2.0 では期待通り動作して、2.2.2では「...」という初期表示のままでカウントが開始されず、CPU使用率がずっと100%になってしまう、というコードです。 > > https://gist.github.com/toshia/05d5ee302f49677e9d34 おぉ!再現スクリプト!ありがとうございます! たしかに手元でも再現しました。もう少し小さくして↓でも再現す ることを確認しました。 require 'gtk2' window = Gtk::Window.new window.show_all Thread.new do sleep end Gtk.main で、git bisectしてみたのですが、 https://github.com/ruby-gnome2/ruby-gnome2/commit/c92a046cfe266cedbd59a40b31cfc9ea6e8ab300 が原因でした。 このコミットはRuby 2.2対応をしていて、Ruby 2.2からはスレッド まわりのAPIが変わってごにょごにょみたいな感じなのをいい感じ にしようとしたやつなんですが、使うAPIを間違えていました。 > というところまでは分かったのですが、最初に書いたとおり私では手に追えないので、まずは困っていることの共有と、そもそもこれはバグなのか、というところを質問させていただきたいと思った次第です。 バグだったのでmasterで直しておきました。 Ruby 2.0だと問題が起きずにRuby 2.1だと問題が起こるケースなの で、バグフィックス版をリリースします。少々お待ちください。 |
From: Masafumi Y. <my...@gm...> - 2014-10-26 04:34:38
|
横山です。 2014年10月26日 13:16 Kouhei Sutou <ko...@co...>: >> バグだったのでmasterで直しておきました。 >> >> Ruby 2.0だと問題が起きずにRuby 2.1だと問題が起こるケースなの >> で、バグフィックス版をリリースします。少々お待ちください。 > > (リリースアナウンスは出している余裕がなくてだしていませんが) > 2.2.3をリリースしたので試してみてもらえませんか? アナウンスは私の方で出しておこうと思います。 |
From: Kouhei S. <ko...@co...> - 2014-10-26 06:07:22
|
須藤です。 In <CAE...@ma...> "Re: [ruby-gnome2-devel-ja] メインスレッド以外のスレッドが生きている時の挙動について" on Sun, 26 Oct 2014 13:34:31 +0900, Masafumi Yokoyama <my...@gm...> wrote: >> (リリースアナウンスは出している余裕がなくてだしていませんが) >> 2.2.3をリリースしたので試してみてもらえませんか? > > アナウンスは私の方で出しておこうと思います。 うわぁ!それはとても助かります! ありがとうございます! |
From: toshi.alternative <tos...@gm...> - 2014-10-26 04:16:18
|
曖昧な報告だったにもかかわらず迅速にありがとうございます! 最初この問題を発見した私のソフトでもHEADをビルドして試したところ、問題は再現しなくなりました。 2014/10/26 12:17、Kouhei Sutou <ko...@co...> のメッセージ: > 須藤です。 > > In <CAN...@ma...> > "[ruby-gnome2-devel-ja] メインスレッド以外のスレッドが生きている時の挙動について" on Sun, 26 Oct 2014 03:12:15 +0900, > 初音とし <tos...@gm...> wrote: > >> 2.2.0 では期待通り動作して、2.2.2では「...」という初期表示のままでカウントが開始されず、CPU使用率がずっと100%になってしまう、というコードです。 >> >> https://gist.github.com/toshia/05d5ee302f49677e9d34 > > おぉ!再現スクリプト!ありがとうございます! > > たしかに手元でも再現しました。もう少し小さくして↓でも再現す > ることを確認しました。 > > require 'gtk2' > > window = Gtk::Window.new > window.show_all > > Thread.new do > sleep > end > > Gtk.main > > で、git bisectしてみたのですが、 > > https://github.com/ruby-gnome2/ruby-gnome2/commit/c92a046cfe266cedbd59a40b31cfc9ea6e8ab300 > > が原因でした。 > > このコミットはRuby 2.2対応をしていて、Ruby 2.2からはスレッド > まわりのAPIが変わってごにょごにょみたいな感じなのをいい感じ > にしようとしたやつなんですが、使うAPIを間違えていました。 > >> というところまでは分かったのですが、最初に書いたとおり私では手に追えないので、まずは困っていることの共有と、そもそもこれはバグなのか、というところを質問させていただきたいと思った次第です。 > > バグだったのでmasterで直しておきました。 > > Ruby 2.0だと問題が起きずにRuby 2.1だと問題が起こるケースなの > で、バグフィックス版をリリースします。少々お待ちください。 > > > ------------------------------------------------------------------------------ > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja |
From: Kouhei S. <ko...@co...> - 2014-10-26 04:20:22
|
須藤です。 In <D86...@gm...> "Re: [ruby-gnome2-devel-ja] メインスレッド以外のスレッドが生きている時の挙動について" on Sun, 26 Oct 2014 13:16:09 +0900, "toshi.alternative" <tos...@gm...> wrote: > 曖昧な報告だったにもかかわらず迅速にありがとうございます! > > 最初この問題を発見した私のソフトでもHEADをビルドして試したところ、問題は再現しなくなりました。 確認ありがとうございます! 問題が解決したようでよかったです。 報告ありがとうございました! |
From: Kouhei S. <ko...@co...> - 2014-10-26 04:16:45
|
須藤です。 In <201...@co...> "Re: [ruby-gnome2-devel-ja] メインスレッド以外のスレッドが生きている時の挙動について" on Sun, 26 Oct 2014 12:17:08 +0900 (JST), Kouhei Sutou <ko...@co...> wrote: > バグだったのでmasterで直しておきました。 > > Ruby 2.0だと問題が起きずにRuby 2.1だと問題が起こるケースなの > で、バグフィックス版をリリースします。少々お待ちください。 (リリースアナウンスは出している余裕がなくてだしていませんが) 2.2.3をリリースしたので試してみてもらえませんか? |
From: Masafumi Y. <my...@gm...> - 2014-10-26 08:07:33
|
横山です。 2014年10月26日 12:17 Kouhei Sutou <ko...@co...>: > Ruby 2.0だと問題が起きずにRuby 2.1だと問題が起こるケースなの > で、バグフィックス版をリリースします。少々お待ちください。 手元の環境では、Ruby 2.0とRuby-GNOME2 2.2.1の組み合わせでも再現しました。 Ruby 1.9では再現しませんでした。 以下のコミットが入っているかどうかだと思うのですが、どうでしょうか? * thread.c (rb_thread_call_without_gvl2): added. · e9a91d2 · ruby/ruby https://github.com/ruby/ruby/commit/e9a91d2c95dfe22ad0487952f7a1053ef9a5fd16 |
From: Masafumi Y. <my...@gm...> - 2014-10-26 08:15:42
|
横山です。 2014年10月26日 17:12 Kouhei Sutou <ko...@co...>: >> 以下のコミットが入っているかどうかだと思うのですが、どうでしょうか? >> >> * thread.c (rb_thread_call_without_gvl2): added. · e9a91d2 · ruby/ruby >> https://github.com/ruby/ruby/commit/e9a91d2c95dfe22ad0487952f7a1053ef9a5fd16 > > そうだと思います! 確認ありがとうございます! NEWSにRuby2.1以降に影響があると書いてあるところがあったので、2.0以降に直しておきます。 |
From: Kouhei S. <ko...@co...> - 2014-10-26 09:44:10
|
須藤です。 In <CAET2rA8t25=amA...@ma...> "Re: [ruby-gnome2-devel-ja] メインスレッド以外のスレッドが生きている時の挙動について" on Sun, 26 Oct 2014 17:15:35 +0900, Masafumi Yokoyama <my...@gm...> wrote: > NEWSにRuby2.1以降に影響があると書いてあるところがあったので、2.0以降に直しておきます。 ありがとうございます! |
From: Kouhei S. <ko...@co...> - 2014-10-26 08:13:04
|
須藤です。 In <CAE...@ma...> "Re: [ruby-gnome2-devel-ja] メインスレッド以外のスレッドが生きている時の挙動について" on Sun, 26 Oct 2014 17:07:25 +0900, Masafumi Yokoyama <my...@gm...> wrote: >> Ruby 2.0だと問題が起きずにRuby 2.1だと問題が起こるケースなの >> で、バグフィックス版をリリースします。少々お待ちください。 > > 手元の環境では、Ruby 2.0とRuby-GNOME2 2.2.1の組み合わせでも再現しました。 > Ruby 1.9では再現しませんでした。 > > 以下のコミットが入っているかどうかだと思うのですが、どうでしょうか? > > * thread.c (rb_thread_call_without_gvl2): added. · e9a91d2 · ruby/ruby > https://github.com/ruby/ruby/commit/e9a91d2c95dfe22ad0487952f7a1053ef9a5fd16 そうだと思います! |