致命的 #1175
完了Worldonのアカウントしか登録していない状態でWorldonプラグインを抜くと起動時にエラーで落ちる
0%
バックトレース
Traceback (most recent call last):
53: from ./mikutter.rb:45:in `<main>'
52: from /home/cobodo/repos/worldon/mikutter/core/plugin/world/service.rb:39:in `primary'
51: from /home/cobodo/repos/worldon/mikutter/vendor/gems/ruby/2.5.0/gems/pluggaloid-1.1.1/lib/pluggaloid/plugin.rb:63:in `filtering'
50: from /home/cobodo/repos/worldon/mikutter/vendor/gems/ruby/2.5.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:57:in `filtering'
49: from /home/cobodo/repos/worldon/mikutter/vendor/gems/ruby/2.5.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:57:in `catch'
48: from /home/cobodo/repos/worldon/mikutter/vendor/gems/ruby/2.5.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:58:in `block in filtering'
47: from /home/cobodo/repos/worldon/mikutter/vendor/gems/ruby/2.5.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:58:in `reduce'
46: from /home/cobodo/repos/worldon/mikutter/vendor/gems/ruby/2.5.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:58:in `each'
45: from /home/cobodo/repos/worldon/mikutter/vendor/gems/ruby/2.5.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:59:in `block (2 levels) in filtering'
44: from /home/cobodo/repos/worldon/mikutter/vendor/gems/ruby/2.5.0/gems/pluggaloid-1.1.1/lib/pluggaloid/filter.rb:28:in `filtering'
43: from /home/cobodo/repos/worldon/mikutter/core/plugin/world/world.rb:34:in `block (2 levels) in <top (required)>'
42: from /home/cobodo/repos/worldon/mikutter/core/plugin/world/world.rb:86:in `current_world'
41: from /home/cobodo/repos/worldon/mikutter/core/plugin/world/world.rb:74:in `worlds'
40: from /home/cobodo/repos/worldon/mikutter/core/utils.rb:278:in `atomic'
39: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
38: from /home/cobodo/repos/worldon/mikutter/core/utils.rb:278:in `block in atomic'
37: from /home/cobodo/repos/worldon/mikutter/core/plugin/world/world.rb:75:in `block in worlds'
36: from /home/cobodo/repos/worldon/mikutter/core/plugin/world/world.rb:135:in `load_world_ifn'
35: from /home/cobodo/repos/worldon/mikutter/core/plugin/world/keep.rb:33:in `accounts'
34: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
33: from /home/cobodo/repos/worldon/mikutter/core/plugin/world/keep.rb:35:in `block in accounts'
32: from /home/cobodo/repos/worldon/mikutter/core/plugin/world/keep.rb:35:in `open'
31: from /home/cobodo/repos/worldon/mikutter/core/plugin/world/keep.rb:36:in `block (2 levels) in accounts'
30: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych.rb:264:in `load'
29: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/nodes/node.rb:50:in `to_ruby'
28: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:32:in `accept'
27: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/visitor.rb:6:in `accept'
26: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/visitor.rb:16:in `visit'
25: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:311:in `visit_Psych_Nodes_Document'
24: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:32:in `accept'
23: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/visitor.rb:6:in `accept'
22: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/visitor.rb:16:in `visit'
21: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:162:in `visit_Psych_Nodes_Mapping'
20: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:336:in `revive_hash'
19: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:336:in `each_slice'
18: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:336:in `each'
17: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:338:in `block in revive_hash'
16: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:32:in `accept'
15: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/visitor.rb:6:in `accept'
14: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/visitor.rb:16:in `visit'
13: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:162:in `visit_Psych_Nodes_Mapping'
12: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:336:in `revive_hash'
11: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:336:in `each_slice'
10: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:336:in `each'
9: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:338:in `block in revive_hash'
8: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:32:in `accept'
7: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/visitor.rb:6:in `accept'
6: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/visitor.rb:16:in `visit'
5: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:208:in `visit_Psych_Nodes_Mapping'
4: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb:391:in `resolve_class'
3: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/class_loader.rb:28:in `load'
2: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/class_loader.rb:46:in `find'
1: from /home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/class_loader.rb:54:in `resolve'
/home/cobodo/.rbenv/versions/2.5.0/lib/ruby/2.5.0/psych/class_loader.rb:54:in `path2class': undefined class/module Plugin::Worldon:: (ArgumentError)
再現手順
mv $MIKUTTER_CONFROOT/plugin/worldon $MIKUTTER_CONFROOT/
ruby mikutter.rb
toshi_a 初音 さんがほぼ7年前に更新
Worldが保存される時にJSONに変換していますが、その時にJSONに変換できていないクラスが含まれてしまっているんですかね。
toshi_a 初音 さんがほぼ7年前に更新
- ステータス を 実装待ち から レビュー待ち に変更
- 担当者 を toshi_a 初音 から cob odo に変更
origin/topic/1175-world-savedata-format-fix ブランチに修正したものをpushしました。問題なさそうであればステータスを「解決」にしておいてください。
Divaはその内容をJSON形式でダンプすることが出来るためその機能を使っているつもりでしたが、アカウント情報がYAMLで書き出されていたためこの機能が使われず、標準のYAMLライブラリがシリアライズしていました。
今回の修正で想定していた方法で保存されるようになったため、 #1125 で言及しているような挙動になると思います。