致命的 #1133
完了既にあるアカウントでログインすると落ちる
バックトレース
ArgumentError account twitter4165620434 already exists.
/usr/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
{MIKUTTER_DIR}/core/plugin/world/keep.rb:63:in `account_register'
{MIKUTTER_DIR}/core/plugin/world/world.rb:109:in `register_world'
{MIKUTTER_DIR}/core/plugin/world/world.rb:52:in `block (2 levels) in <top (required)>'
/var/lib/gems/2.3.0/gems/pluggaloid-1.1.1/lib/pluggaloid/listener.rb:25:in `call'
/var/lib/gems/2.3.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:97:in `block (2 levels) in call_all_listeners'
/var/lib/gems/2.3.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:96:in `each'
/var/lib/gems/2.3.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:96:in `block in call_all_listeners'
/var/lib/gems/2.3.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:95:in `catch'
/var/lib/gems/2.3.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:95:in `call_all_listeners'
/var/lib/gems/2.3.0/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:39:in `block in call'
/var/lib/gems/2.3.0/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `run'
/var/lib/gems/2.3.0/gems/delayer-0.0.2/lib/delayer/extend.rb:58:in `run_once'
/var/lib/gems/2.3.0/gems/delayer-0.0.2/lib/delayer/extend.rb:30:in `run'
/var/lib/gems/2.3.0/gems/delayer-0.0.2/lib/delayer.rb:43:in `method_missing'
{MIKUTTER_DIR}/core/plugin/gtk/delayer.rb:10:in `block in boot'
{MIKUTTER_DIR}/core/plugin/gtk/mainloop.rb:10:in `main'
{MIKUTTER_DIR}/core/plugin/gtk/mainloop.rb:10:in `mainloop'
{MIKUTTER_DIR}/mikutter.rb:68:in `boot!'
{MIKUTTER_DIR}/mikutter.rb:104:in `<main>'
再現手順
既にあるアカウントでログインする
関連するチケット
toshi_a 初音 さんがほぼ7年前に更新
- 関連している バグ #1127: 3.5環境の~/.mikutter/を3.6が読み込むとチュートリアルが進行不能になるバグ を追加
toshi_a 初音 さんがほぼ7年前に更新
- ステータス を 新規 から レビュー待ち に変更
- 担当者 を moko 256 にセット
ブランチ topic/1133-login-with-duplicate-account で修正しました。確認してもらって、修正されていることを確認できたら、このチケットのトラッカーを「解決」にしておいてください。
重複登録は不可能なので何らかのエラーが発生すること自体は正当です。
そして、このエラーが起こる時というのは(Worldが正しく実装されていれば)例えば同じTwitterアカウントが二度登録された場合など非常に稀なケースです。
このエラーを検出できるのは、現在の実装ではWorldの登録画面を閉じたあとなのと、早くエラーを検出できたところで、今のWorld登録画面は前に戻ることができないことから、このために作りを見直すのではなく、Activityにエラーを通知するようにしました。