致命的 #805
closed.mikutter の無い初回起動時に設定ボタンを押すと落ちる?
0%
Description
NetBSD/i386 7.0 + pkgsrc-2015Q4 の「とか環境」で mikutter 3.3.1 のパッケージ作成検証中
という中途半端な環境ですが、以下の現象が起きたのでとりあえずチケット書きます。
現象¶
~/.mikutter が存在しない新規の状態で mikutter を起動したあと、
チュートリアルの途中でネギレンチの設定ボタンを押すと以下のようなログを吐いて
mikutterが落ちます。
/usr/pkg/share/mikutter/core/utils.rb:108:in `where_should_insert_it': undefined method `include?' for #<Symbol:0x2cdbf0e> from /usr/pkg/share/mikutter/core/plugin/activity/activity.rb:286:in `block (3 levels) in <top (required)>' from /usr/pkg/share/mikutter/core/plugin/activity/activity.rb:284:in `each' from /usr/pkg/share/mikutter/core/plugin/activity/activity.rb:284:in `block (2 levels) in <top (required)>' from /usr/pkg/share/mikutter/core/plugin/settings/settings.rb:35:in `instance_eval' from /usr/pkg/share/mikutter/core/plugin/settings/settings.rb:35:in `block in setting_window' from /usr/pkg/share/mikutter/core/plugin/settings/settings.rb:30:in `each' from /usr/pkg/share/mikutter/core/plugin/settings/settings.rb:30:in `setting_window' from /usr/pkg/share/mikutter/core/plugin/settings/settings.rb:18:in `block (2 levels) in <top (required)>'
状況¶
activity.rb
で where_should_insert_it
を呼んでるのは以下i = where_should_insert_it(kind, activity_kind_order, UserConfig[:activity_kind_order])
で、
UserConfig[:activity_kind_order]
で何かあるのかなとログを見るとリビジョン 3c04005e で以下の変更が入っています。
ratelimit
streaming_status
の追加%s[]
の書式変更
ここで添付 mikutter-3.3.1.patch のように後者の書式だけ元に戻すと落ちなくなるようなのですが、
そもそも環境的に何かのインストールが足りていないだけかもしれません。
- ruby 2.0.0p648
- mikutter-3.3.1
- addressable-2.3.8
- delayer-0.0.2
- delayer-deferred-1.0.3
- gettext-3.1.6
- hmac-0.4.0
- httpclient-2.6.0.1
- instance_storage-1.0.0
- json-1.8.3
- locale-2.1.1
- memoist-0.14.0
- moneta-0.8.0
- nokogiri-1.6.6.4
- oauth-0.4.7
- pluggaloid-1.0.2
- text-1.3.1
- twitter-text-1.13.0
- typed-array-0.1.2
- unf-0.1.4
- unf_ext-0.0.7.1
totorijp はどうすべきか迷ってます。すいません。
Files
Updated by Izumi Tsutsui almost 9 years ago
もぐのさんがこんなの書いてました
https://twitter.com/moguno/status/681606575983702017
mikutter 3.3.Xで設定画面を開くと落ちる問題を回避するプラグイン書きました https://t.co/3MZMWxPv38
手っ取り早く回避したい方はこちら?
Updated by Osamu Koga almost 9 years ago
%記法の使い方が間違ってますね。 http://docs.ruby-lang.org/ja/2.0.0/doc/spec=2fliteral.html#percent
とりあえず今pushした 850104c2 で直っていると思います。
Updated by toshi_a 初音 almost 9 years ago
- Status changed from 新規 to 実装待ち
これみたいですね。既に3.3系を起動してしまった人がアップデートで直るようにしたいので、少し手を加えます。
Updated by toshi_a 初音 almost 9 years ago
- Status changed from 実装待ち to レビュー待ち
- Assignee set to Izumi Tsutsui
これで、一度3.3で起動してしまった人でも大丈夫でした。一応確認してもらえますか。
Updated by Izumi Tsutsui almost 9 years ago
- Status changed from レビュー待ち to 解決
- Assignee changed from Izumi Tsutsui to toshi_a 初音
toshi_a 初音 さんは書きました:
これで、一度3.3で起動してしまった人でも大丈夫でした。一応確認してもらえますか。
以下で確認してみました。OKと思います。
- 非公式 pkgsrc でmikutter 3.3.1 をインストール
- ~/.mikutter を削除
- core/plugin/activity/activity.rb を 3c04005e にする
- mikutter --debug で起動
- 設定ボタンを押す
- → undefined method `include?' for ... で落ちる
- mikutter --debug で起動
- 設定ボタンを押す
- → undefined method `include?' for ... で落ちる
- core/plugin/activity/activity.rb を 850104c2 にする
- mikutter --debug で起動
- 設定ボタンを押す
- → undefined method `include?' for ... で落ちる
- mikutter --debug で起動
- 設定ボタンを押す
- → undefined method `include?' for ... で落ちる
- core/plugin/activity/activity.rb を b574cb05 にする
- mikutter --debug で起動
- 設定ボタンを押す
- → 設定画面が正常に出る
- ~/.mikutter を削除
- core/plugin/activity/activity.rb を 850104c2 にする
- mikutter --debug で起動
- 設定ボタンを押す
- → 設定画面が正常に出る
失った信頼が戻ってこないように、対策コードも永遠に残ってしまうのですね……。