Project

General

Profile

致命的 #1175

Worldonのアカウントしか登録していない状態でWorldonプラグインを抜くと起動時にエラーで落ちる

Added by cob odo over 1 year ago. Updated about 1 year ago.

Status:
終了
Priority:
通常
Target version:
Start date:
2018-02-18
Due date:
% Done:

0%

プラグイン名:
https://github.com/cobodo/mikutter-worldon

Description

題名の通り。 #1125 と似ていますが、他のworldアカウントが全くない状態です。
他のworld系プラグインでも起こるかは確認していません。


バックトレース

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

Associated revisions

Revision b46561c2 (diff)
Added by toshi_a 初音 about 1 year ago

world: World Modelをシリアライズするとき、Divaの機能を使うために形式をJSONに変えた refs #1175

History

#1

Updated by toshi_a 初音 about 1 year ago

Worldが保存される時にJSONに変換していますが、その時にJSONに変換できていないクラスが含まれてしまっているんですかね。

#2

Updated by toshi_a 初音 about 1 year ago

  • Status changed from 新規 to 実装待ち
  • Assignee set to toshi_a 初音

原因を完全に理解しました

#3

Updated by toshi_a 初音 about 1 year ago

  • Status changed from 実装待ち to レビュー待ち
  • Assignee changed from toshi_a 初音 to cob odo

origin/topic/1175-world-savedata-format-fix ブランチに修正したものをpushしました。問題なさそうであればステータスを「解決」にしておいてください。

Divaはその内容をJSON形式でダンプすることが出来るためその機能を使っているつもりでしたが、アカウント情報がYAMLで書き出されていたためこの機能が使われず、標準のYAMLライブラリがシリアライズしていました。

今回の修正で想定していた方法で保存されるようになったため、 #1125 で言及しているような挙動になると思います。

#4

Updated by cob odo about 1 year ago

  • Status changed from レビュー待ち to 解決
  • Assignee changed from cob odo to toshi_a 初音

プラグインを抜いても落ちることはなくなり、また読み込めなかったアカウント情報が消えるという #1125 の挙動に準じていることが確認できたので、ステータスを解決にします。ありがとうございます。

#6

Updated by toshi_a 初音 about 1 year ago

  • Status changed from 解決 to 終了

ありがとうございます。masterにmergeしました。

Also available in: Atom PDF