Project

General

Profile

Actions

バグ #1501

closed

起動直後に block_user?[mastodon, mastodon_account] を評価するとクラッシュする

Added by Shibafu Midorino 8 months ago. Updated 8 months ago.

Status:
終了
Priority:
通常
Assignee:
-
Target version:
プラグイン名:
mastodon
ブランチ:
topic/1501-fetch-followings-on-world-loaded
クラッシュする:
Yes

Description

mikutterを起動した直後に Spell block_user?[mastodon, mastodon_account] を評価すると、必ずクラッシュしてしまいます。
私の環境では mikutter_block プラグインによってこの問題を引き、以下のようなバックトレースが得られています。

Traceback (most recent call last):
        43: from mikutter.rb:116:in `<main>'
        42: from mikutter.rb:80:in `boot!'
        41: from /home/shibafu/git/mikutter/plugin/gtk/mainloop.rb:10:in `mainloop'
        40: from /home/shibafu/git/mikutter/plugin/gtk/mainloop.rb:10:in `catch'
        39: from /home/shibafu/git/mikutter/plugin/gtk/mainloop.rb:12:in `block in mainloop'
        38: from /home/shibafu/git/mikutter/plugin/gtk/mainloop.rb:12:in `loop'
        37: from /home/shibafu/git/mikutter/plugin/gtk/mainloop.rb:23:in `block (2 levels) in mainloop'
        36: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/delayer-1.1.2/lib/delayer.rb:38:in `method_missing'
        35: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/delayer-1.1.2/lib/delayer/extend.rb:109:in `run_once'
        34: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/delayer-1.1.2/lib/delayer/extend.rb:117:in `run_once_without_pop_reserve'
        33: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/delayer-1.1.2/lib/delayer/procedure.rb:26:in `run'
        32: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:62:in `block in call'
        31: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:239:in `call_all_listeners'
        30: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:239:in `catch'
        29: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:240:in `block in call_all_listeners'
        28: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:240:in `each'
        27: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:241:in `block (2 levels) in call_all_listeners'
        26: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/listener.rb:25:in `call'
        25: from /home/shibafu/git/mikutter/plugin/gtk/gtk.rb:329:in `block (2 levels) in <top (required)>'
        24: from /home/shibafu/git/mikutter/core/mui/gtk_contextmenu.rb:59:in `popup'
        23: from /home/shibafu/git/mikutter/core/mui/gtk_contextmenu.rb:38:in `build!'
        22: from /home/shibafu/git/mikutter/core/mui/gtk_contextmenu.rb:38:in `each'
        21: from /home/shibafu/git/mikutter/core/mui/gtk_contextmenu.rb:40:in `block in build!'
        20: from /home/shibafu/git/mikutter/plugin/gui/command.rb:26:in `block (2 levels) in get_menu_items'
        19: from /home/shibafu/.mikutter/plugin/block/block.rb:38:in `block (2 levels) in <top (required)>'
        18: from /home/shibafu/git/mikutter/plugin/spell/spell.rb:18:in `block (3 levels) in <top (required)>'
        17: from /home/shibafu/git/mikutter/plugin/spell/spell.rb:43:in `block (2 levels) in <top (required)>'
        16: from /home/shibafu/git/mikutter/plugin/spell/spell.rb:43:in `first'
        15: from /home/shibafu/git/mikutter/plugin/spell/spell.rb:43:in `each'
        14: from /home/shibafu/git/mikutter/plugin/spell/spell.rb:43:in `each'
        13: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:212:in `block in collect'
        12: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:80:in `filtering'
        11: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:80:in `catch'
        10: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:81:in `block in filtering'
         9: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:81:in `reduce'
         8: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:81:in `each'
         7: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/event.rb:82:in `block (2 levels) in filtering'
         6: from /home/shibafu/git/mikutter/vendor/bundle/ruby/2.7.0/gems/pluggaloid-1.5.0/lib/pluggaloid/filter.rb:33:in `filtering'
         5: from /home/shibafu/git/mikutter/plugin/spell/spell.rb:22:in `block (3 levels) in <top (required)>'
         4: from /home/shibafu/git/mikutter/plugin/spell/struct.rb:7:in `match'
         3: from /home/shibafu/git/mikutter/plugin/spell/struct.rb:16:in `condition?'
         2: from /home/shibafu/git/mikutter/plugin/spell/struct.rb:51:in `call_spell_block'
         1: from /home/shibafu/git/mikutter/plugin/mastodon/spell.rb:436:in `block (2 levels) in <top (required)>'
/home/shibafu/git/mikutter/plugin/mastodon/model/world.rb:192:in `block?': undefined method `any?' for nil:NilClass (NoMethodError)

Plugin::Mastodon::Worldのクラス変数 @@blocks は mastodon.rb L67 あたりにある followings_updater によってセットされそうですが、起動直後にはWorldが1つも得られずに空振りしているようです。
ここから、起動後26分経過するまでこのSpellの前提条件を評価することができなくなっているようです。

Actions #1

Updated by Shibafu Midorino 8 months ago

  • Status changed from 分類待ち to 実装待ち
Actions #2

Updated by Shibafu Midorino 8 months ago

  • Status changed from 実装待ち to レビュー待ち
  • ブランチ set to topic/1501-fetch-followings-on-world-loaded

topic/1501-fetch-followings-on-world-loaded に修正をpushしました。そもそもこの問題がdevelopでしか再現しなくて謎。

Actions #3

Updated by toshi_a 初音 8 months ago

  • Status changed from レビュー待ち to 終了

merged.

Actions

Also available in: Atom PDF