Project

General

Profile

Actions

環境対応 #1260

closed

gtk2 3.2.7を利用する

Added by Akira Ouchi almost 7 years ago. Updated over 6 years ago.

Status:
却下
Priority:
通常
Assignee:
-
Target version:
Start date:
2018-06-06
Due date:
% Done:

0%

プラグイン名:

Description

#1221-5 の修正を含むruby-gnome2 3.2.6/3.2.7がリリースされたので、3.2.7が利用できるか検証して適用する。

3.2.6 NEWS
https://github.com/ruby-gnome2/ruby-gnome2/blob/3.2.6/NEWS

3.2.7 NEWS
https://github.com/ruby-gnome2/ruby-gnome2/blob/3.2.7/NEWS


Files


Related issues 2 (0 open2 closed)

Related to 環境対応 #1211: 「設定」のスキンを選択すると Ruby が core を吐いて落ちる終了

Actions
Related to 提案 #1292: gtk2 3.2.9を利用する終了Akira OuchiActions
Actions #1

Updated by Akira Ouchi almost 7 years ago

core/plugin/gtk2/Gemfileを書き換えたあと、bundleを実行したところgtk2のGem以外がインストールされませんでした。

$ bundle
Your Gemfile lists the gem httpclient (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Fetching gem metadata from https://rubygems.org/................
Resolving dependencies...
Using rake 10.5.0
Using public_suffix 3.0.2
Using addressable 2.5.2
Using bundler 1.16.1
Using safe_yaml 1.0.4
Using crack 0.4.3
Using delayer 0.0.2
Using delayer-deferred 2.0.0
Using diva 0.3.2
Using egison 1.0.0
Using eventmachine 1.2.7
Using multipart-post 2.0.0
Using faraday 0.15.1
Using faraday_middleware 0.10.1
Using websocket-extensions 0.1.3
Using websocket-driver 0.7.0
Using faye-websocket 0.10.7
Using locale 2.1.2
Using text 1.3.1
Using gettext 3.0.9
Fetching gtk2 3.2.6 (was 3.2.1)
Installing gtk2 3.2.6 (was 3.2.1) with native extensions
Using hashdiff 0.3.7
Using httpclient 2.8.3
Using idn-ruby 0.1.0
Using instance_storage 1.0.0
Using json_pure 1.8.6
Using matsuya 0.1.1
Using memoist 0.16.0
Using metaclass 0.0.4
Using mini_portile2 2.3.0
Using mocha 0.14.0
Using moneta 1.0.0
Using multi_json 1.13.1
Using nokogiri 1.8.2
Using oauth 0.5.4
Using pluggaloid 1.1.1
Using power_assert 1.1.1
Using ruby-hmac 0.4.0
Using ruby-prof 0.17.0
Using slack-api 1.6.0
Using terminal-notifier 2.0.0
Using test-unit 3.2.8
Using totoridipjp 0.1.0
Using unf_ext 0.0.7.5
Using unf 0.1.4
Using twitter-text 2.1.0
Using typed-array 0.1.2
Using watch 0.1.0
Using webmock 1.24.6
Bundle complete! 27 Gemfile dependencies, 49 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

この状態で起動しても、glib2がないと言われて起動に失敗します。

akkie@172-16-5-168 ~/mikutter (master)$ ruby mikutter.rb --debug

notice: {MIKUTTER_DIR}/core/miquire_plugin.rb:155:in `block in load': plugin loaded: {MIKUTTER_DIR}/core/plugin/gtk/gtk.rb
Traceback (most recent call last):
    40: from mikutter.rb:42:in `<main>'
    39: from /Users/akkie/mikutter/core/miquire.rb:18:in `miquire'
    38: from /Users/akkie/mikutter/core/miquire.rb:75:in `miquire'
    37: from /Users/akkie/mikutter/core/miquire.rb:75:in `each'
    36: from /Users/akkie/mikutter/core/miquire.rb:76:in `block in miquire'
    35: from /Users/akkie/mikutter/core/miquire.rb:95:in `file_or_directory_require'
    34: from /Users/akkie/mikutter/core/miquire.rb:98:in `miquire_original_require'
    33: from /Users/akkie/mikutter/core/miquire.rb:98:in `require'
    32: from /Users/akkie/mikutter/core/boot/load_plugin.rb:10:in `<top (required)>'
    31: from /Users/akkie/mikutter/core/miquire_plugin.rb:96:in `load_all'
    30: from /Users/akkie/mikutter/core/miquire_plugin.rb:36:in `each_spec'
    29: from /Users/akkie/mikutter/core/miquire_plugin.rb:33:in `each'
    28: from /Users/akkie/mikutter/core/miquire_plugin.rb:33:in `each'
    27: from /Users/akkie/mikutter/core/miquire_plugin.rb:38:in `block in each_spec'
    26: from /Users/akkie/mikutter/core/miquire_plugin.rb:98:in `block in load_all'
    25: from /Users/akkie/mikutter/core/miquire_plugin.rb:146:in `load'
    24: from /Users/akkie/mikutter/core/utils.rb:278:in `atomic'
    23: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    22: from /Users/akkie/mikutter/core/utils.rb:278:in `block in atomic'
    21: from /Users/akkie/mikutter/core/miquire_plugin.rb:147:in `block in load'
    20: from /Users/akkie/mikutter/core/miquire_plugin.rb:147:in `each'
    19: from /Users/akkie/mikutter/core/miquire_plugin.rb:149:in `block (2 levels) in load'
    18: from /Users/akkie/mikutter/core/miquire_plugin.rb:146:in `load'
    17: from /Users/akkie/mikutter/core/utils.rb:278:in `atomic'
    16: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    15: from /Users/akkie/mikutter/core/utils.rb:278:in `block in atomic'
    14: from /Users/akkie/mikutter/core/miquire_plugin.rb:147:in `block in load'
    13: from /Users/akkie/mikutter/core/miquire_plugin.rb:147:in `each'
    12: from /Users/akkie/mikutter/core/miquire_plugin.rb:149:in `block (2 levels) in load'
    11: from /Users/akkie/mikutter/core/miquire_plugin.rb:146:in `load'
    10: from /Users/akkie/mikutter/core/utils.rb:278:in `atomic'
     9: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
     8: from /Users/akkie/mikutter/core/utils.rb:278:in `block in atomic'
     7: from /Users/akkie/mikutter/core/miquire_plugin.rb:158:in `block in load'
     6: from /Users/akkie/mikutter/core/miquire_plugin.rb:158:in `load'
     5: from /Users/akkie/mikutter/core/plugin/gtk/gtk.rb:5:in `<top (required)>'
     4: from /Users/akkie/mikutter/core/plugin/gtk/gtk.rb:5:in `require'
     3: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gtk2-3.2.6/lib/gtk2.rb:11:in `<top (required)>'
     2: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gtk2-3.2.6/lib/gtk2.rb:11:in `require'
     1: from /Users/akkie/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gtk2-3.2.6/lib/gtk2/base.rb:12:in `<top (required)>'
/Users/akkie/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/gtk2-3.2.6/lib/gtk2/base.rb:12:in `require': cannot load such file -- glib2 (LoadError)

他の方もそうなるようであればruby-gnome側の問題かなと思います。
よくわかってないけど、gemspec周りがいじられているようです。。

(またなのか…?)

Actions #2

Updated by Akira Ouchi almost 7 years ago

core/plugin/gtk2/Gemfileを以下の通り書きこんでbundleした結果動作しました。3.2.5の問題も解消されているようです。以下の通り書くべきなのかどうかが問題っぽい気がしますが。

source 'https://rubygems.org'

gem 'atk', '3.2.6'
gem 'cairo'
gem 'cairo-gobject', '3.2.6'
gem 'gdk_pixbuf2', '3.2.6'
gem 'gio2', '3.2.6'
gem 'glib2', '3.2.6'
gem 'gobject-introspection', '3.2.6'
gem 'gtk2', '3.2.6'
gem 'pango', '3.2.6'
Actions #3

Updated by toshi_a 初音 almost 7 years ago

前も同様の問題がありましたが、程なく次のリリースがあったため特に対応はしませんでした。
今回も上流のアップデートを待っても良いですが、直近のバージョンは相次いでmikutterでは問題が発生していて依然3.2.1を使っている状態なので、これだけでアップデートできるならやってしまってもいいかもしれません。

Actions #4

Updated by Izumi Tsutsui almost 7 years ago

https://rubygems.org/ の表示でも Runtime Dependencies の表示が消えているので
明示的に upstream でバグっていますね……

https://rubygems.org/gems/gtk2/versions/3.2.5
https://rubygems.org/gems/gtk2/versions/3.2.6

以下の変更っぽいですが。
https://github.com/ruby-gnome2/ruby-gnome2/commit/54ad9751c34a19e1748ccd8cab424e4c83b2e8a4

Actions #5

Updated by Akira Ouchi almost 7 years ago

  • Subject changed from gtk2 3.2.6を利用する to gtk2 3.2.7を利用する
  • Description updated (diff)

新しくチケット作るのあれだったのでタイトルかえました

Actions #6

Updated by Akira Ouchi almost 7 years ago

3.2.7よさげ。

Actions #7

Updated by Izumi Tsutsui almost 7 years ago

pkgsrc も ruby-gnome2 3.2.7 にして、それで mikutter 3.7.1 は特に問題なく動いているようです
http://mail-index.netbsd.org/pkgsrc-changes/2018/06/09/msg176947.html

Actions #8

Updated by Izumi Tsutsui almost 7 years ago

Izumi Tsutsui さんは書きました:

pkgsrc も ruby-gnome2 3.2.7 にして、それで mikutter 3.7.1 は特に問題なく動いているようです
http://mail-index.netbsd.org/pkgsrc-changes/2018/06/09/msg176947.html

ruby-gnome2 3.2.7 にすると 3.2.5 と比べて mikutter のメモリ消費量がかなり増えるような気がする、
という話があります。


https://social.mikutter.hachune.net/@tsutsuii/100181781857287528

Izumi Tsutsui
@tsutsuii

mikutter 3.7.2 ではまだ検証していないのですが、 ruby-gnome2 3.2.5 と 3.2.7 とで mikutter を動かしてみると、 3.2.7 のほうが明らかにメモリ消費量の増え方が激しいですね……(起動後2時間でのなんとなくの比較)
2018年6月11日 2:44 · mikutter Worldon


https://social.mikutter.hachune.net/@tsutsuii/100181799514917663

Izumi Tsutsui
@tsutsuii

@toshi_a 初音 感覚的な数字だけでちゃんと条件をそろえた記録ができていませんが
・3.2.5: 600MB くらいから始まって 4,5日経ってようやく 1GB 超えるかどうか(昔と比べるとかなり優秀)
・3.2.7: 起動して6時間で 2GBに迫っている(えっ、どういうこと)
みたいな印象
2018年6月11日 2:49 · mikutter Worldon


とりあえず ておくれ Live Image で
mikutter 3.7.2 + ruby-gnome2 3.2.5 の VM
mikutter 3.7.2 + ruby-gnome2 3.2.7 の VM
を作ってみたので同時実行でメモリ消費量を調べてみます。

開始早々差があるような気も……

なお、上記 pkgsrc の 3.2.5 の ruby-gnome2 には #1221#note-5 の修正も含まれています。
http://mail-index.netbsd.org/pkgsrc-changes/2018/05/26/msg176376.html

Actions #9

Updated by Izumi Tsutsui almost 7 years ago

3時間経過後

差は開く一方ですが、どう報告したもんですかね……
(しかし、 3.2.5 の場合はほとんどリークしていないということなんですかね)

Updated by Izumi Tsutsui almost 7 years ago

24時間後

3.2.7 だとツイート一つ表示するたびに 24〜36KB 増える感じですが
3.2.5 だと何かしらのイベント的なものが発生したときだけ増える感じですね。

Actions #11

Updated by Izumi Tsutsui almost 7 years ago

  • Related to 環境対応 #1211: 「設定」のスキンを選択すると Ruby が core を吐いて落ちる added
Actions #12

Updated by Izumi Tsutsui almost 7 years ago

寝れないのでメモ

3.2.7 + 上記前者の 438be7c の pango の変更(ファイル削除)を戻すと
メモリ消費について 3.2.5 と同様に戻るっぽいので、
各パッケージシステムで個別に暫定対処するならこれ?
https://social.mikutter.hachune.net/@tsutsuii/100300621463258235

ruby-gnome2 3.2.7 に対して https://github.com/ruby-gnome2/ruby-gnome2/commit/438be7c505f1f4f5a7e19235bc6d00f1b6d045f6 だけ元に戻す(≒再度追加する)だけでも解決する感じですが、ログとの相関がまったくなくて、中の人じゃないとさっぱり原理がわからない感じ

Actions #13

Updated by Izumi Tsutsui almost 7 years ago

経過メモ

上記の報告に対する修正が以下
https://github.com/ruby-gnome2/ruby-gnome2/commit/8816bbd86de838a7de18df8649847fb6586ddb4d

が、上記を当てると mikutter で TL 表示した途端に ruby 自体が assertion で落ちるという現象になり
新たに issue 報告
https://github.com/ruby-gnome2/ruby-gnome2/issues/1231

更に上記の assertion の修正が以下
https://github.com/ruby-gnome2/ruby-gnome2/commit/ec4160b4f4c5432c6ff8a9e962e7ffeacfd48869

これで直っているというか、「mikutter のメモリ使用量が増加だけでなく減少もする」という事象も
観測されている感じ
https://social.mikutter.hachune.net/@tsutsuii/100316761415213526

Izumi Tsutsui
@tsutsuii
https://github.com/ruby-gnome2/ruby-gnome2/commit/ec4160b4f4c5432c6ff8a9e962e7ffeacfd48869
足りない気合を振り絞って ruby-gnome2 修正のテスト。メモリ使用量が増えたり減ったりして判定が難しいけれど、1分とかの単位で減るということは正しくGCされるようになったと考えるべきか


このままの状態で 3.2.8 が出れば今度こそ平和に適用できますかね……

Actions #14

Updated by Izumi Tsutsui almost 7 years ago

3.2.8 出ましたが
https://github.com/ruby-gnome2/ruby-gnome2/releases/tag/3.2.8
gem がバグっているようなので 3.2.9 待ちということになりそうです。
https://github.com/ruby-gnome2/ruby-gnome2/issues/1236

3.2.6 からこのチケットを引っ張っていますが、
新しいチケットを起こすのは 3.2.9 が出てからですかね……

Actions #15

Updated by Akira Ouchi over 6 years ago

  • Status changed from 新規 to 却下

そして #1292 へ…

Actions #16

Updated by Akira Ouchi over 6 years ago

Actions

Also available in: Atom PDF