LoginSignup
6
5

More than 3 years have passed since last update.

WSLでexpo startして20~30分後にネットワーク不具合が起こる現象について調べたこと

Last updated at Posted at 2019-10-07

前回、WSLでReact Native + Expo環境を作ろうという記事を書き、その末尾にも書いていたのですが、expo startしたときに起こる謎のネットワーク不具合について調べたこと、わかったことを書いておきます。

ネットワーク不具合

起こる問題

WSLでexpo startした後、20~30分後くらいにネットワークが繋がらなくなってしまう。

どこのページにアクセスしようとしても以下のようにエラーが表示され、アクセスできません。
ここに表示されているWindowsネットワーク診断ツールを実行してみても、異常がないといわれます。
network-error.png

CONNECTIONをTunnelにした時も、expo start --offlineとオプションをつけた時も、同様の現象が起きます。

一応、Windows自体を再起動すれば、また繋がるようにはなるのですが、短時間の間に都度都度再起動するのはかなり手間ですし、ストレスにもなります。

対応策

この現象について調べていても、なかなか情報が見つけられませんでしたが、GitHubにほぼ同じ現象が報告されていたIssueを見つけました。

expo-cli/issues - Host remains without network after a while

ここで緩和策として、以下の手順を踏めばいいとありました。

I found a palliative solution not to restart the machine:

1 - WIN+R -> services.msc
2 - Find LxssManager
3 - Right-click -> Restart

This should restart the WSL service, normalizing the network.

  1. Windows + R でファイル名を指定して実行の画面を出し、services.mscと入力してOK
    file-run.png

  2. 一覧からLxssManagerを見つける
    lxss-manager.png

  3. 右クリックを押し、再起動を実行

LxssManager is the service that manages the layer that communicates between Windows and Linux. Restarting it is basically equivalent to restarting Windows regarding everything that happens in WSL.

LxssManagerは、WindowsとLinuxの間で通信するレイヤーを管理するサービスらしく、これを再起動することで、Windowsを再起動したときと同じことがWSL上で起こるそうです。

この手順を踏めば即座にWSLが再起動され、ネットワークが繋がるようになります。

課題

上記の手順でネットワークが復旧する...のですが、そこからまたexpo startしてしばらくすると、またネットワークが繋がらなくなります...。

This is likely an issue with WSL. There is an issue for this at microsoft/WSL#2913.

どうもこの現象はExpo-Cliというより、WSLの問題らしく、Issueが上がっているそうです。

Can confirm that Windows Insider Build 18890 fixes this issue.

Windows 10 Insider Build 18890では、この問題が修正されたとのこと。
調べてみると、このバージョンは2020年前半にリリース予定の大型アップデート「20H1」のプレビュービルドとなるそうです。
もう少しの間我慢になりますが、正式にリリースがくれば解決できそうですね。(Windows Insider Programに参加する度胸はありません...)

Obs: When I run the expo-cli start in CMD and then run on WSL, a network does not fail anymore....

ちなみにこんなことも書いてありましたが、CMDってことはWindows側にExpoを入れるってことなのかな?と思い、あまり入れたくないので試していません。
直接WindowsにExpo(及びNode.js)を入れてもいいという方は、そうされた方がいいのかもしれませんね。

参考

6
5
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5