操作
バグ #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 さんが約4年前に更新
- ステータス を 実装待ち から レビュー待ち に変更
- ブランチ を topic/1501-fetch-followings-on-world-loaded にセット
topic/1501-fetch-followings-on-world-loaded に修正をpushしました。そもそもこの問題がdevelopでしか再現しなくて謎。
操作