致命的 #805
完了.mikutter の無い初回起動時に設定ボタンを押すと落ちる?
0%
説明
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 はどうすべきか迷ってます。すいません。
ファイル
Izumi Tsutsui さんがほぼ9年前に更新
もぐのさんがこんなの書いてました
https://twitter.com/moguno/status/681606575983702017
mikutter 3.3.Xで設定画面を開くと落ちる問題を回避するプラグイン書きました https://t.co/3MZMWxPv38
手っ取り早く回避したい方はこちら?
Osamu Koga さんがほぼ9年前に更新
%記法の使い方が間違ってますね。 http://docs.ruby-lang.org/ja/2.0.0/doc/spec=2fliteral.html#percent
とりあえず今pushした 850104c2 で直っていると思います。
toshi_a 初音 さんがほぼ9年前に更新
- ステータス を 実装待ち から レビュー待ち に変更
- 担当者 を Izumi Tsutsui にセット
これで、一度3.3で起動してしまった人でも大丈夫でした。一応確認してもらえますか。
Izumi Tsutsui さんがほぼ9年前に更新
- ステータス を レビュー待ち から 解決 に変更
- 担当者 を Izumi Tsutsui から 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 で起動
- 設定ボタンを押す
- → 設定画面が正常に出る
失った信頼が戻ってこないように、対策コードも永遠に残ってしまうのですね……。