-
Notifications
You must be signed in to change notification settings - Fork 346
Closed
Description
不具合の内容
題のとおりです。
PIDの探索コマンドの実行に失敗しているみたいです。
voicevox/src/background/portManager.ts
Lines 124 to 126 in 9990a19
| const stdout = execFileSync(exec.cmd, exec.args, { | |
| shell: true, | |
| }).toString(); |
何回か試していると、Error: spawnSync /bin/sh ENOBUFSというエラーが発生しているみたいです。
execFileSyncが適切にエラーハンドリングされていないために発生しているという点と、execFileSyncはバッファサイズに制限があるためにこのようなエラーが発生するようで、spwanSyncを利用することで回避できるようです。(そもそもプロセスIDしか返してこないはずがバッファオーバーフローしているのと、空文字列を返してきているはずなのにこのエラーが出ているという点において色々おかしいのですが...)
https://stackoverflow.com/questions/63796633/spawnsync-bin-sh-enobufs
https://neos21.net/blog/2019/10/18-01.html#child_processspawnsync
ちなみに、どうやら単体でこのコマンドを実行し、プロセスが存在しなかった場合はエラーを返すようです。(左端にバツ印がついている)

再現手順
Windows以外(私はMacで発生しました、lsofの仕様が一緒であればlinuxでも発生するはず)で最新mainブランチにおいてnpm run electron:serveする
期待動作
問題なく起動する
VOICEVOXのバージョン
main
OSの種類/ディストリ/バージョン
- Windows
- macOS
- Linux
wappon28dev