同机开着两个根目录时,关机后 netsimd.exe 可能久久不退,挡住 modavd update

オープン
#22 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
android, go
領域
cli, devtools

調査の方向性

Start by reproducing the report on Windows: run modavd start in two separate root directories, stop the instance in one, and check whether that root's netsimd.exe exits within about 15 seconds. The issue lists the steps but says the cause is not yet confirmed, so the first deliverable is evidence, not a patch. Done means the reproduction is recorded and the fix either isolates each root's emulator temp directory or documents why it is not needed, with modavd update no longer blocked by a netsimd.exe that belongs to another root.

索引モデルが issue の本文から書いたものです。

説明

bug P3 platform:windows

现象

0.36.0 的包升级回归里有一次:modavd stop 关掉实例以后,根目录下的 netsimd.exe 过了 90 秒还在,升级那一项因此判失败,重跑通过。平时关机后十几秒它就自己退了。

对用户的影响:modavd update(以及 AUTO-MAS 换包)发现 sdk\emulator 下还有进程在跑,就什么都不动、报「还有程序在用模拟器或管理器的文件:netsimd.exe(pid …)」。这时实例都关了,用户不知道该关什么。

当时的判断(没坐实)

证据只留了一部分。推测是:同一台电脑上同时跑着几个根目录的模拟器(回归时有测试根目录和生产根目录),它们共用同一个 netsim 发现目录(在 %TEMP% 下),别的根目录的模拟器连上了这个根目录的 netsimd.exe,它就一直不退。

回归脚本那边已经给自己起的模拟器单设了 TMPDIR,之后没再碰到。产品里还没处理:同机开着两个 ModAVD 根目录(或者开发用的 SDK)时就可能碰上。

要做的

  1. 先坐实:两个根目录 A、B,各开一台实例,关掉 A 的实例,看 A 的 netsimd.exe 退不退、B 的模拟器连的是哪个 netsimd.exe。
  2. 坐实了就让每个根目录的模拟器只连自己的 netsimd.exe,比如 modavd start 给模拟器进程单设一个本根目录下的临时目录。改之前确认蓝牙、Wi-Fi 和别的用到临时目录的地方不受影响。
  3. modavd update 碰到只剩本根目录的 netsimd.exe、而本根目录没有实例在跑时,先等它退出一会儿(比如 60 秒)再报错;报错时说清楚是哪个根目录的模拟器还连着它。

验收

  • 两个根目录同时各开一台实例,关掉其中一个根目录的实例后,它的 netsimd.exe 照常十几秒内退出;
  • 这时对它执行 modavd update,不再因为 netsimd.exe 被拦下;
  • 只开一个根目录时,开关机和网络行为不变。
主要言語
Go
スター
0
フォーク
1
平均マージ
2時間 42分
マージ済み PR(30日)
13

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ModAVD/ModAVDManager のほかの issue

ModAVD/ModAVDManager の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。