プロジェクト

全般

プロフィール

バグ #1067

3.5.11にアップグレード後 Gdk-CRITICALが大量にコンソールに出力されて少し重くなる

kagura1050 てお3ヶ月前に追加. 21日前に更新.

ステータス:
新規
優先度:
通常
担当者:
-
対象バージョン:
プラグイン名:

説明

3.5.9(git)を使っていて3.5.11をgit pullしました(bundler installは実行済み)
するとTLが描画(更新?)されるとき(数十個ぐらい)大量に

Gdk-CRITICAL **: gdk_window_invalidate_rect_full: assertion 'GDK_IS_WINDOW (window)' failed
from /home/kagura1050/mikutter/core/plugin/gtk/mainloop.rb:10:in `mainloop'
from mikutter/mikutter.rb:67:in `boot!'
from mikutter+/mikutter.rb:96:in `<main>'

のメッセージが出力されます
重くなる内容はTLのアイコン表示が極端に遅くなる(LOADING表示の時間が長い)感じです。
3.5.9では確認できませんでした。

log20171029-024131.txt (414 KB) log20171029-024131.txt cob odo, 2017-10-29 16:34

履歴

#1 toshi_a 初音2ヶ月前に更新

ぱっとみた感じこちらでは再現しませんでしたが、

TLが描画(更新?)されるとき

というのは、ツイートを受信するたびってことですよね

#2 kagura1050 てお約2ヶ月前に更新

返信遅れてすみません
どうやらLTEテザリング/学内ネットの劣悪な環境がごくたまにこれを招いていたらしく、今はこちらでも再現しない感じです
家でも確認するべきでした。

#3 cob odo23日前に更新

うちの環境では(以前からずっと)出ています。環境はWSL上のUbuntu16.04で、rubyはrbenvで入れた2.4.2です。mikutterバージョンは(3.5.13が出た後の)masterブランチ・developブランチ両方です。
外部プラグインなしの状態でも出ます。

関係があるのかわかりませんが、Gtk-CRITICALも出ます。そちらはactivityプラグインがクラッシュする不具合 #1068 と関連しているのか、activity.rbの191行目でGtk-CRITICALが出る状態がしばらく続き、最終的にsegvで落ちます。落ちるまでは、UI上は一見問題なく動くのですが……

$ ruby ./mikutter.rb 2>&1 | tee log.txt

と似たような方法で(実際はオプション含めてシェルスクリプトにしてあるので……)採取したログを添付します。
必要であれば --debug オプションを付けて再度取ることもできると思います。クラッシュはほとんどの場合1日以内に再現できます。G[dt]k-CRITICAL自体は定常的に(数秒おきくらい?)ずっと出続けます。

#4 Izumi Tsutsui23日前に更新

情報のみですが

Gtk-CRITICAL **: gtk_box_pack: assertion 'child->parent == NULL' failed

この警告ですが、こちらの NetBSD/i386 7.1 + pkgsrc の mikutter 3.5.13 の環境では出ていません。

むりやり delayer-deferred 2.0.0 を使うパッチを当てていたりするので条件異なるかもしれませんが、
関係ありそうなものを適当に拾うと以下のような感じです。

  • glib 2.52.3
  • gtk2+ 2.24.31
  • gdk-pixbuf2 2.36.11
  • cairo 1.14.10

cairo が 1.15 系だと絵文字云々で結構変わってたりしますかね。
cairo 1.15.8 が 2017-8-27 で mikutter 3.5.11 が 2017-09-03 なので何かあるのかも?
https://www.cairographics.org/news/
https://www.cairographics.org/news/cairo-1.15.8/

あとは、 3.5.11 で変わったのは
#1064 (mikutter 3.5.10へのバージョンアップ後、起動中にクラッシュする)
の対策としての起動時のプラグインの依存関係追加 69429b47 だけだと思うので、
プラグインの読み込み順序で何かが変わっているのかも?

Gdk-CRITICAL **: IA__gdk_pixbuf_get_from_drawable: assertion 'src_x + width <= src_width && src_y + height <= src_height' failed

こちらの警告はかなり前から出ています。

こちらの条件はある程度わかっていて、以下の条件で出ているように見えます。
  • 引用・リプライのあるツイートを TLに描画する時、
    当該ツイートの表示が TLのウインドウの一番下にあり、
    リプライ元の表示の subparts を描画するときに
    描画領域が mikutter のウインドウの範囲外になる時
手順として以下で再現できると思います。
  • タイムラインをマウスホイールで下の方にスクロールする
    • TL一番下に新たに現れたツイートが引用・リプライ付きのツイート、
      かつツイート全体が mikutter のウインドウに入りきっていない場合に
      Gdk-CRITICAL が出る

状況的に出てもやむなしなのかなと思っていましたが、意図しないメッセージであるならば別チケットを起こすべきかも。

#5 cob odo21日前に更新

情報ありがとうございます。
G[td]k-CRITICALのメッセージ本体を見ると、いくつかバリエーションがあるんですね。気づいていませんでした。

このチケットとは関係なさそうなので、改めて別チケットを起こすことにします。

他の形式にエクスポート: Atom PDF