見出し画像

Blazor Wasmが動かなくて焦った話。

端緒

 ある日の出来事であった。3月の下旬、暖かな陽気の中の昼下がり。ある男は就活に向け、ポートフォリオを開発していた。サマーインターンに間に合えばいいな~などと、ゆったり開発している彼に晴天の霹靂。

「う、動かん。なぜだ!!」

そう昨日まで動いていたアプリが、突然動かなくなっていたのだ!

2023/03/16 事件発生

 まあ、その男が私なのですが。本当にびっくりしました。急に動かなくなったので。
 開発していたのは、.NETのBlazor WebAssembly(以下 Blazor Wasm)というフレームワークを利用したWebアプリでした。事件発生の当日。突如以下のような症状に見舞われました。

Blazor Wasmのデバッグができない…!

開発した部分の動作を確認しようと思い、Visual Studio2022からデバッガ実行をしようとすると

  1. Buildが実行される

  2. Buildが完了し、ローカルホストが立ち上がる

  3. Chromeが立ち上り、読み込みを始める

  4. 読み込み始めてすぐに、Chromeごと落ちる

となってしまったのです。しかもVisual Studio側の出力にはエラーは全くなく、手掛かりが0。途方にくれます。

「俺、なんかしちゃいました?」

 真っ先に思いついたのが、「私が実装のなかでなんかやらかしたのか?」ということ。とりあえずGitの変更内容をStashして再実行….. 再びの沈黙。ノーエラーでのクラッシュで、結果は変わらず。
 思い返すとそんなフレームワークの根幹を改変するような、高等なスキルは持ち合わせていないので、私のコード如きでデバッガーが動かなくなるなんてことありえないのでしょうが。このときは正にパニック!!
 経緯はともかく、これで私のコードに問題ありの路線は消えたので、問題は思ったより深いという結論に。頭を抱える…

情報収集 ~ネットの海をさまよう~

 現代は周知のとおり、たいていのことがインターネットで情報が手に入ります。料理のレシピに、法律、病気、果ては宿題の解き方とか。しかし、Blazor Wasmはそうもいきません。なにせ、日本語の情報が極端に少ない。

 はなから日本語での検索は諦め、英語での調査へ。「Blazor Wasm fatal bug」というアホみたいな文字列を検索窓へ。
 「お願いだ!オラに情報を分けてくれ~」と思いつつ、検索実行。

Blazor Wasm Debugging appears to be broken in Chrome 111.0.5563.65

https://github.com/dotnet/runtime/issues/83452

見つけたぁぁ!!
ネットの海を彷徨うこと1時間程度。意外と簡単に見つかってくれました。ありがたやー。

事件収束へ

 見つけたgithubのissueはなんと、.NETのRuntimeのものでした。この時点で、

「これはめんどくさい匂いしかしないなぁ」

とガックシしたのですが、何はともあれissueを読まなければ始まらない。

ふむふむ、なるほどねぇー…… えっ、Chromiumのバグ!?

人生でこんな日が来ようとは…. どうやらブラウザ側のバグに巻き込まれたみたいです。

Issue 1421661: Missing call frames in instrumentation pause event break CDP consumers

https://bugs.chromium.org/p/chromium/issues/detail?id=1421661

Chromiumがダメならやつしかいない。そうFireFoxだ!ということで、デバッグブラウザをFireFoxで実行。

…. 無事起動することを確認!! よかったぁ。一時は全部作り直さないかと思いましたが、何とか丸くおさまりました。ありがとう、Gecko。

結局プログラムなんだよね

 私の中で、ブラウザやOSといったソフトウェアはどうしても”完成されたもの”というイメージがあったのですが、今回の一件で認識が変わりました。
 結局PCやスマホで動くものは、プログラムで、やっぱりバグはつきものだ。そういうことなんですね。わかっちゃいたけど、改めて身に沁みました。

ちなみに…

 Chromiumのバグ自体はすで修正済みみたいです。Chromeもベータ版なら、デバッグが復活しているみたいです。

っとこんな感じで、ブラウザのバグに巻き込まれるという、奇妙奇天烈なお話でした。

この記事が気に入ったらサポートをしてみませんか?