操作
バグ #1501
完了起動直後に block_user?[mastodon, mastodon_account] を評価するとクラッシュする
プラグイン名:
mastodon
クラッシュする:
はい
説明
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の前提条件を評価することができなくなっているようです。
Shibafu Midorino さんが約3年前に更新
- ステータス を 実装待ち から レビュー待ち に変更
- ブランチ を topic/1501-fetch-followings-on-world-loaded にセット
topic/1501-fetch-followings-on-world-loaded
に修正をpushしました。そもそもこの問題がdevelopでしか再現しなくて謎。
操作