見出し画像

シン・TWSNMP(twsnmp fk)をリリースしようとしたらWindows版が例外で停止する問題に遭遇した

昨日は、助手の猫さんが食卓の私の椅子で一日中寝ていました。悪い予感がしました。かみさんが風呂に入るころに活動を開始したようです。案の定、12時半ぐらいに騒ぎ始めました。仕方なく私が起きて、ご飯を上げました。食べるのを待っている間、TVをつけたら「ブレイキン」を放送していました。助手の猫さんと似た名前の高校生が登場していました。これを観せたかったのかもしれません。かみさんが好きらしいいので録画しました。

今朝は、4時半に自力でおきました。シン・TWSNMPのv1.12.0をリリースすることにしました。1時間ぐらいで終わる予定でしたがリリースするWindows版をインストールしてテストしてみると、データストアのフォルダーを選択するところで、例外(Exception)が発生してプログラムが停止してしまいます。致命的な問題です。このままリリースするわけにはいきません。心配になって、前のバージョンv1.11.0でも同じことが起こっていないか、ダウンロードして確認してみました。これは大丈夫なようです。今回のバージョンは、前のバージョンから、さほど変更していないのに不思議でした。Mac版も問題はありません。
デバッグ用のログがでるバージョンを作って試してみると

Exception 0xc0000005 0x8 0xc0001ea998 0xc0001ea998
PC=0xc0001ea998

runtime.cgocall(0xb801e0, 0x4993b88)
        /usr/local/Cellar/go/1.23.1/libexec/src/runtime/cgocall.go:167 +0x3e fp=0xc0001ea980 sp=0xc0001ea918 pc=0xb7015e
syscall.SyscallN(0x4?, {0xc0001ea9c8?, 0x0?, 0x0?})
        /usr/local/Cellar/go/1.23.1/libexec/src/runtime/syscall_windows.go:519 +0x5d fp=0xc0001ea9a8 sp=0xc0001ea980 pc=0xb7a8fd
syscall.Syscall(0xc00000af20?, 0xc?, 0x4993860?, 0xc0001eaa30?, 0xb7a8fd?)
        /usr/local/Cellar/go/1.23.1/libexec/src/runtime/syscall_windows.go:458 +0x2f fp=0xc0001ea9f0 sp=0xc0001ea9a8 pc=0xb7a4cf
github.com/wailsapp/wails/v2/internal/go-common-file-dialog/cfd.(*iFileDialogVtbl).setFolder(0x7ffa0efb41b8, 0x1e9fe287a30, {0xc00000af20, 0xc})
        /Users/ymimacmini/go/pkg/mod/github.com/wailsapp/wails/v2@v2.8.2/internal/go-common-file-dialog/cfd/vtblCommonFunc.go:139 +0x239 fp=0xc0001eab30 sp=0xc0001ea9f0 pc=0x17ce6b9

のようなログがでて停止しました。どうやらWindowsのsystem callで問題が発生しているようです。ログの中でgo/1.23.1が気になりました。そういえば、最近brew upgradeで更新GO言語のバージョンを更新したことを思い出しました。
試しにGO言語のバージョンを戻してビルドしてみました。

brew uninstall go
brew install go@1.22

でできました。
go v1.22.7でビルドしたものは、問題が発生しません。
wailsのリリースノート

を確認しました特に、このWindows問題に関連した修正は見つかりませんでした。
とりあえず、今回のバージョンは、go v1.22.7でビルドしてリリースしようと思います。
GO言語のアップデートで、このような問題が発生したのは初めての経験かもしれません。他のソフトの更新で痛い目にあったことが多いですがGO言語にしては珍しいことだと思います。

明日に続く

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。