Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows 11 22H2より、サクラエディタ起動時の挙動が変わった件 #1868

Closed
hiroki-oogakiuchi opened this issue Oct 21, 2022 · 17 comments

Comments

@hiroki-oogakiuchi
Copy link
Contributor

hiroki-oogakiuchi commented Oct 21, 2022

問題内容

 サクラエディタの1回目の起動時はプロセスに常駐するのみで、画面は表示されない。その状態で2回目の起動をすると、画面が表示される。

再現手順

 スタート、タスクバー、エクスプローラーで右クリック、実行ファイルの直接実行、いずれでも再現する。

再現頻度

 Windows 11が22H2に上がってから、100%。

問題のカテゴリ

  • プログラムの動作上の問題
    • 正式リリース版
    • ローカルビルド版

環境情報

  • Windows 11 Pro 22H2
  • サクラエディタ v2.4.1.2849 32bit (tag v2.4.1) (設定の「タスクトレイを使う」「タスクトレイの常駐」は、いずれも未使用)

自分で調査したこと

  • 実行ファイルと同じフォルダーにsakura.exe.iniが存在する(つまり、デフォルト状態)と、問題が発生。消すと、1回目で画面が表示される。
  • 2.4.1のソースをデバッグ実行すると、上記と同じ。ただし、ブレークポイントを置いて止めながらデバッグ実行すると再現しない。
  • 最新のmasterのソースで、リリースビルドの実行ファイルを作って実行すると再現しない。

自分の推測

  • Mutex周りの処理で22H2で変わった部分があり、タイミングによって、CControlProcessに行くかCNormalProcessに行くかの判定が、上手くいっていない。(これ以上、追いかけきれてないです)
  • もしくは、ini周りの処理で22H2で変わった部分がある(?)。

要望

  • 皆さんのWindows 11 22H2環境では、同じ問題が発生していますか?
  • 最新ソースでは発生していないので、もし明示的に直してあるとしたら、その部分だけでも次期バージョンのリリースを急いだほうが良いと思います。

よろしくお願いします。

@TaikiBessho
Copy link

当方もWindows11 22H2 (OSビルド:22621.675)にしてから同じ問題が発生しています.

@k-takata
Copy link
Member

関連してそうなのは #1385 でしょうか?

@hiroki-oogakiuchi
Copy link
Contributor Author

#1385 を読みながら、いろいろ試してみました。

結論だけ言うと、2.4.1のソースから、

  • CProcessFactory::StartControlProcess
  • CProcessFactory::WaitForInitializedControlProcess

の2関数をmasterのソースに入れ替えると、22H2でも1回目で起動しました。

#1385 がmasterにマージされてから丸2年以上が経過していますが、この修正を含めて次期バージョンのリリース予定は無いのでしょうか?
関係者の皆さん、ご検討をお願いします。

@berryzplus
Copy link
Contributor

hotfixリリースしますか? @KENCHjp さん @m-tmatma さん

@m-tmatma
Copy link
Member

m-tmatma commented Nov 2, 2022

@berryzplus @KENCHjp
ご無沙汰してます。

最近ウォッチしてないので状況よくわかってないのですが、

master が十分安定しているのであれば、 master からリリースすればいいと思います。
master からリリースするのが中途半端な状態であれば、 2.4.1 からの Hotfix リリース
するのがいいかと思います。

ただ前回リリースから 2年以上経過しているのでどうせなら master からのリリースのほうがいいとは思います。
(前回リリースは 2020年5月ですね。 https://github.com/sakura-editor/sakura/releases/tag/v2.4.1)

@berryzplus
Copy link
Contributor

masterが安定しているか簡単に判断する方法は、現状のところ「存在しない」と思っています。

なのでいったん「hotfixリリースをするかどうか」だけのつもりです。

  • する (明らかになった不都合だけ解消してみる)
  • しない (全体的な安定性を確認できるまでリリースを見送る)

@m-tmatma
Copy link
Member

m-tmatma commented Nov 5, 2022

@berryzplus
Hotfix リリースはしてもいいと思います。

master からのリリースはどういう基準でリリースしますか?
何か大きな機能追加をしたとき? あらかじめ決めた期間を過ぎてから?

何か基準を設けないといつまでたってもリリースできないかと思います。
今回リリースするいい機会なのでリリースしてしまっていいように思いました。

@berryzplus
Copy link
Contributor

master からのリリースはどういう基準でリリースしますか?
何か大きな機能追加をしたとき? あらかじめ決めた期間を過ぎてから?

基準を作ろうとして頓挫した感じなので「基準は存在しない」です。

基準を作ろうとして頓挫した対応

繰り返し自動実行できるスモークテストを整備すれば、最低限の動作保証ができます。
静的解析(SonarCloud)で「明らかにマズい」と言われる指摘を排除すれば、コードに対する安心感を得られます。

#1866 のような新機能をどう扱うかはまた課題になります。

@syuheimurata
Copy link

私も最近Windows11 22H2にアップデートしてから同様の問題が発生し、このページにたどり着きました。
現状常駐を行う事で回避していますが、ちょと使いにくいですね。

@berryzplus
Copy link
Contributor

v2.4.1と同じ基準でリリースしたらいいんじゃない?

と言ってみます。

その方針なら @m-tmatma さんもオッケーみたいなので、
あとは「誰がやる?」だけになります。

@m-tmatma
Copy link
Member

@berryzplus
リリースお願いできますか?

手順的には

  1. release/v2.4.1 から release/v2.4.2 を作って push
  2. 問題の不具合を修正する feature ブランチを作って release/v2.4.2 に対してPR送って merge
  3. 最新の release/v2.4.2 から feature ブランチ作って、バージョン情報を更新するPR送って merge
  4. v2.4.2 のタグを打つ。

ですかね?

リリース手順 wiki に残してくれてますね。
https://github.com/sakura-editor/sakura/wiki/%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E6%99%82%E3%81%AB%E3%82%84%E3%82%8B%E3%81%93%E3%81%A8

参考:
v2.4.1 のリリースのときの PR は #1316 ですね。

@k-takata
Copy link
Member

k-takata commented Dec 1, 2022

あれっ、結局 v2.4.1 に今回の件の修正のみを入れたものをリリースすることになったのでしょうか。

v2.4.1と同じ基準でリリースしたらいいんじゃない?

リリース基準がない → いつでもリリース可能と解釈しました 😄

  1. release/v2.4.1 から release/v2.4.2 を作って push

v2.4.1 と同じ手順でやるなら master から release/v2.4.2 を作ることになりますね。

参考:
v2.4.1 のリリースのときの PR は #1316 ですね。

より正確には #1310 でベータ版を作ってから #1316 で正式リリースとなっていますね。

@takke
Copy link
Member

takke commented Dec 1, 2022

v2.4.1 と同じ手順でやるなら master から release/v2.4.2 を作ることになりますね。

私もこのイメージでした。

@m-tmatma
Copy link
Member

m-tmatma commented Dec 1, 2022

Hotfix リリースという言葉があったので、2.4.1 をベースにするという意味で解釈してました。

私としては、master からリリースした方がいいと思います。

@berryzplus
Copy link
Contributor

タグ release/v2.4.1 をブランチ release/v2.4.2 にpushして
現行 masterをマージするPR を #1872 で出してます。

個別の修正のPRが複数コミットで構成されていてマージしにくいことと
vs2022が入った環境では過去版のビルドが通らないことが理由ですが、
「v2.4.1と同じ基準」なので最新masterをリリースで問題ないと思ってます。

保留中のPRはいったん、リリース作業優先と思ってます。

@m-tmatma
Copy link
Member

m-tmatma commented Dec 2, 2022

タグ release/v2.4.1 をブランチ release/v2.4.2 にpushして
現行 masterをマージするPR を #1872 で出してます。

「v2.4.1と同じ基準」なので最新masterをリリースで問題ないと思ってます。

申し訳ないです。
余計な作業させてしまいました。

master から release/v2.4.2 作ればよかったですね。

@berryzplus
Copy link
Contributor

v2.4.2のリリース(#1870)が完了しました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants