バグ #1328
完了チュートリアルで Twitterの認証待ちのあと認証が完了してもチュートリアルが進行しない
説明
題名のとおりですが、 mikutter 3.8.6 でチュートリアルに従って Twitter 認証を実施して
Twitter TL が表示されるところまで進んでも、みくったーさんのチュートリアルが進行しません。
どの時点から起きるようになったのかが記録が残っていませんが、3.8から?
ファイル
再現手順
新規に mikutter をインストールした環境で
twitter_api_keys を設定した上で
mikutterを開始して Twitter 認証する
Izumi Tsutsui さんが5年以上前に更新
調査メモ その2¶
mikutter 3.8.4 (ておくれ Live Image 20190103版) でも
このチケットの問題(チュートリアルで Twitterの認証待ちのあと認証が完了してもチュートリアルが進行しない)
は再現する。
Izumi Tsutsui さんが5年以上前に更新
調査メモ その3¶
https://social.mikutter.hachune.net/@tsutsuii/102019181186673967
ておくれ Live Image 20180422版 の mikutter 3.6.6 + #1208 修正版だと Twitter認証完了後 TLタブも出た上でチュートリアルも進む
本題と関係ありませんが、
チケット絵文字(というかユニコード絵文字?)をチケットに貼ると
Redmineが落ちて入力内容が虚空に消える問題って
Redmine更新(というか SQL更新?)で直ったりしてませんかね
Izumi Tsutsui さんが5年以上前に更新
調査メモ その4¶
https://social.mikutter.hachune.net/@tsutsuii/102019258421585378
mikutter 3.7.3 の ておくれ Live Image 20180722版でも
このチケットの問題(チュートリアルで Twitterの認証待ちのあと認証が完了してもチュートリアルが進行しない)
は再現する。
つまり
◯ 3.6.6
× 3.7.3
の bisect が必要ですが、 3.7 での変更ですかねえ
toshi_a 初音 さんが5年以上前に更新
以下のようなイベントリスナがあった場合、これが呼び出されたあと、以降のイベントリスナが呼び出されません。
@account_observer ||= on_world_after_created do |_new_world|
start
@account_observer.detach
@account_observer = nil
end
これはrestプラグインですが、 Plugin::Listener.detach
を呼び出すと、リスナの配列が破壊的に変更されてしまいます。リスナの配列のeachメソッドを使ってリスナを呼び出しているので、ループ中の配列の破壊的変更となります。
配列走査中に破壊的変更をすると良くなかったと思うのと(という記事などがパッと見見つからない)、どう考えても期待通りに行くと思えないので、このような操作を想定した改修をPluggaloidに入れて検証してみます
Izumi Tsutsui さんが5年以上前に更新
調査メモ その5¶
Izumi Tsutsui さんは書きました:
https://social.mikutter.hachune.net/@tsutsuii/102019258421585378
mikutter 3.7.3 の ておくれ Live Image 20180722版でも
このチケットの問題(チュートリアルで Twitterの認証待ちのあと認証が完了してもチュートリアルが進行しない)
は再現する。
上記トゥートの添付画像だとチュートリアルの先頭のスクロールの隠れたところに次のメッセージが出ているように見えますが、
もう一度試したらチュートリアル進まない状態になり、じゃあさっきはなんで進んだように見えたのか、という問題が……
https://social.mikutter.hachune.net/@tsutsuii/102019310276534838
いきました(やっぱり認証完了直後にはチュートリアル進んでいない)
https://social.mikutter.hachune.net/system/media_attachments/files/000/804/988/original/a3c1cf0b0fd06abf.jpg?1556691135
https://social.mikutter.hachune.net/@tsutsuii/102019326688644222
register_account の実績は解除した扱いにはなっている。コンフィグの書き込みが行われていないとか?
https://social.mikutter.hachune.net/system/media_attachments/files/000/804/995/original/f9041c02f1018c6a.jpg?1556691385
Izumi Tsutsui さんが5年以上前に更新
調査メモ その6¶
#1328-6 と関係あるようなないようなという感じですが、
チュートリアル開始時から Twitter認証完了時までに
「設定」のウインドウを開いていると動きが変わり
「設定ウインドウを開いているTwitter認証完了後にチュートリアルが進行する」
というようにも見えます
(ただし試行回数=2 なのでタイミング依存の可能性も否定できない)
https://social.mikutter.hachune.net/@tsutsuii/102019415225704163
~/.mikutter/plugin 以外を全部消して再度試しても Twitter認証完了後にチュートリアルが進まないのは変わらず。
が、ふと思いついて mikutterの「設定」画面を開いた状態で World追加から認証まで完了させたらチュートリアル進んだ。
ただ、試行回数=1 なので設定は関係なくタイミングの問題という可能性も否定できない
https://social.mikutter.hachune.net/system/media_attachments/files/000/805/024/original/0b9a1dbb5696df90.jpg?1556692736
https://social.mikutter.hachune.net/@tsutsuii/102019455045341387
とりあえず試行回数=2で
・mikutter起動→「設定」を開く→チュートリアルを進める→World追加→Twitter認証 とすると「お疲れ様!登録できたよ。」にチュートリアルが進む
・mikutter起動→チュートリアルを進める→World追加→Twitter認証 とするとチュートリアル進まない
というところは確認
https://social.mikutter.hachune.net/system/media_attachments/files/000/805/034/original/b05733bea745cca7.jpg?1556693344
Izumi Tsutsui さんが5年以上前に更新
「mikutter 3.7.0 ではみくったーさんが表示されないバグがある」
というツイートを自分でしていて、 #1229 に言及しているのですが、
詳細がさっぱり思い出せないという罠
https://twitter.com/tsutsuii/status/993529105051078657
@ebijun 3.7.0 はいろいろ検証中です(チュートリアルみくったーさんが表示されないというバグがある https://dev.mikutter.hachune.net/issues/1229 )
Izumi Tsutsui さんが5年以上前に更新
調査メモ その7¶
mikutter 3.8.6 でも同様。とりあえず調査はここまで。
https://social.mikutter.hachune.net/@tsutsuii/102019731470150690
ておくれ Live Image 20190407版 の mikutter 3.8.6 でも
・mikutter初回起動でチュートリアルを勧めてTwitter認証すると完了後もチュートリアルが進まない
・mikutter初回起動直後に「設定」を開いてあとでチュートリアルを進めてTwitter認証すると認証完了後のチュートリアルも進む
を確認。(試行回数は各2回)
https://social.mikutter.hachune.net/system/media_attachments/files/000/805/160/original/1ff5ebec4c109e68.jpg?1556697561
toshi_a 初音 さんが5年以上前に更新
- ステータス を 分類待ち から 実装待ち に変更
- 担当者 を toshi_a 初音 にセット
- 対象バージョン を 3.8 にセット
ありがとうございます。
報告を参考に調査を進めた結果、Pluggaloidにバグがあって、それが原因であることが分かったため、 Pluggaloid 1.1.2 をリリースしました。
現在これを使うようにしたものでテスト中です。3.8で対応しようと思います。
toshi_a 初音 さんが5年以上前に更新
- ステータス を 実装待ち から レビュー待ち に変更
- 担当者 を toshi_a 初音 から Izumi Tsutsui に変更
- ブランチ を topic/1328-pluggaloid-1.1.2 にセット
とはいってもテストは簡単でした。このブランチでチュートリアルを流して進行できるか確認してもらえますか。
Izumi Tsutsui さんが5年以上前に更新
- ステータス を レビュー待ち から マージ待ち に変更
いつもありがとうございます。
pkgsrc 的には Gemfile はメンテナが参照する情報という位置づけだけなので
以下のとおり手動で入れ替えて確認しました。OKと思います。
- 手元の NetBSD/i386 8.0 のメインマシンの mikutter を pkgsrc 最新の 3.8.7 にする
- 同様に pkgsrc で plugaloid 1.1.1 を入れた状態で
mikutter --confroot ~/.mikutter-1328
として新規の状態(plugin/twitter_api_keys のみ追加)で認証- ⇒ Twitter認証完了後もチュートリアルが進行しない
- 手元で pkgsrc の plugaloid を 1.1.2 に更新してそれを入れた状態で
mikutter --confroot ~/.mikutter-1328-2
として新規の状態(plugin/twitter_api_keys のみ追加)で認証- ⇒ Twitter認証完了後、チュートリアルが進行する