Project

General

Profile

Actions

致命的 #1064

closed

mikutter 3.5.10へのバージョンアップ後、起動中にクラッシュする

Added by Shibafu Midorino over 7 years ago. Updated over 7 years ago.

Status:
終了
Priority:
通常
Target version:
Start date:
2017-08-26
Due date:
% Done:

0%

プラグイン名:

Description

mikutter 3.5.9から3.5.10へのバージョンアップを行い、アプリケーションを起動した際にクラッシュしてしまいました。

この現象については私以外にも、@tsutsuii氏や@dai_lxr氏が言及していることを確認しています。
https://twitter.com/dai_lxr/status/901390298437140480
https://twitter.com/tsutsuii/status/901391512864346113

以下は予想となりますが……
UserConfigのオブザーバー周りの仕様変更(#1061)に伴いPluginクラスへの依存が発生したものの
設定のバージョンアップ処理のタイミングではcore/plugin.rbがmiquireされていないためではないでしょうか。


バックトレース

/home/shibafu/git/mikutter/core/userconfig.rb:178:in `[]=': uninitialized constant UserConfig::Plugin (NameError)
from /home/shibafu/git/mikutter/core/userconfig.rb:216:in `setup'
from /home/shibafu/git/mikutter/core/userconfig.rb:251:in `<class:UserConfig>'
from /home/shibafu/git/mikutter/core/userconfig.rb:13:in `<top (required)>'
from /home/shibafu/git/mikutter/core/miquire.rb:98:in `require'
from /home/shibafu/git/mikutter/core/miquire.rb:98:in `miquire_original_require'
from /home/shibafu/git/mikutter/core/miquire.rb:95:in `file_or_directory_require'
from /home/shibafu/git/mikutter/core/miquire.rb:76:in `block in miquire'
from /home/shibafu/git/mikutter/core/miquire.rb:75:in `each'
from /home/shibafu/git/mikutter/core/miquire.rb:75:in `miquire'
from /home/shibafu/git/mikutter/core/miquire.rb:18:in `miquire'
from /home/shibafu/git/mikutter/core/service.rb:5:in `<top (required)>'
from /home/shibafu/git/mikutter/core/miquire.rb:98:in `require'
from /home/shibafu/git/mikutter/core/miquire.rb:98:in `miquire_original_require'
from /home/shibafu/git/mikutter/core/miquire.rb:95:in `file_or_directory_require'
from /home/shibafu/git/mikutter/core/miquire.rb:76:in `block in miquire'
from /home/shibafu/git/mikutter/core/miquire.rb:75:in `each'
from /home/shibafu/git/mikutter/core/miquire.rb:75:in `miquire'
from /home/shibafu/git/mikutter/core/miquire.rb:18:in `miquire'
from mikutter.rb:39:in `<main>'

Actions #1

Updated by Izumi Tsutsui over 7 years ago

とりあえずで core/userconfig.rb の miquire を
miquire :core, 'configloader', 'plugin'
にすると起動します。

Actions #2

Updated by dai lxr over 7 years ago

Debianでも上記の修正で起動することを確認しました。

Actions #3

Updated by Clock Void over 7 years ago

Arch Linuxでも同様のエラーが出ましたが,ご指摘の方法で起動しました.

Actions #4

Updated by toshi_a 初音 over 7 years ago

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

空のプロファイルを作って試したところ再現しました。
プロファイルが初めて作成される時には、ショートカットキーの設定などがUserConfig.#[]=を通して設定されるので、この時にイベントを発生させようとしてクラッシュします。

バックトレースは最後に起動されたバージョンを記録する処理でのクラッシュですが、ダウングレードは記録されない(過去に起動した最新のバージョンが記録される)ので、mikutter 3.6を一度も起動したことがないプロファイルでのみこのバグが発生するようです。

解決策としては #1064-1 の方法は確認しましたが、bootイベントが発生するより前に他のイベントが発生してしまう問題があります。初期化処理に問題が起こる可能性がありますが、相当古いサードパーティプラグインでもないとbootイベントを初期化に使っていないし、そういったプラグインが今回追加された userconfig_modify イベントをlistenしているはずもないので、今回はこの修正方法を採用して様子を見ます。

Actions #5

Updated by toshi_a 初音 over 7 years ago

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

ブランチ topic/1064-boot-dekihin に修正をpushしました。念の為そちらの環境でも大丈夫か確認お願いします

Actions #6

Updated by Shibafu Midorino over 7 years ago

  • Status changed from レビュー待ち to 解決

遅くなってしまいましたが、当方環境においても 69429b4 にて正常に起動することを確認しました。

Actions #7

Updated by toshi_a 初音 over 7 years ago

  • Status changed from 解決 to 終了
Actions

Also available in: Atom PDF