Project

General

Profile

Actions

バグ #1067

open

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

Added by kagura1050 てお about 7 years ago. Updated almost 7 years ago.

Status:
新規
Priority:
通常
Assignee:
-
Target version:
プラグイン名:
ブランチ:
クラッシュする:

Description

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では確認できませんでした。


Files

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

Related issues

Related to バグ #1274: エラーメッセージ Gdk-CRITICAL **: IA__gdk_pixbuf_get_from_drawable: assertion 'src_x + width <= src_width && src_y + height <= src_height' failed が大量に表示される終了ncaq エヌユルActions
Actions #1

Updated by toshi_a 初音 about 7 years ago

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

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

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

Actions #2

Updated by kagura1050 てお about 7 years ago

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

Actions #3

Updated by cob odo almost 7 years ago

うちの環境では(以前からずっと)出ています。環境は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自体は定常的に(数秒おきくらい?)ずっと出続けます。

Actions #4

Updated by Izumi Tsutsui almost 7 years ago

情報のみですが

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 が出る

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

Actions #5

Updated by cob odo almost 7 years ago

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

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

Actions #6

Updated by Izumi Tsutsui about 6 years ago

  • Related to バグ #1274: エラーメッセージ Gdk-CRITICAL **: IA__gdk_pixbuf_get_from_drawable: assertion 'src_x + width <= src_width && src_y + height <= src_height' failed が大量に表示される added
Actions

Also available in: Atom PDF