Форум

Star Stable Online fails to start after it did a self-update

Error: EINVAL: invalid argument, uv_pipe_open

Автор Replies
bernhardu Thursday 19 August 2021 at 18:18
bernharduAnonymous

This was found with a Debian 10 Buster system, running PlayOnLinux 4.3.4-1.

This used to work from the logfile until 08/06/21 20:50:03, there running wine-6.3-staging.

[08/19/21 15:23:43] - Running wine-6.15-staging Star Stable Online.exe (Working directory : /home/user/.PlayOnLinux/wineprefix/starstable/drive_c/Program Files/Star Stable Online)
002c:fixme:winediag:LdrInitializeThunk wine-staging 6.15 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
00f4:fixme:heap:RtlSetHeapInformation 00000000 1 00000000 0 stub

00f4:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 07C85C48, 16) stub
00f4:fixme:nls:RtlGetThreadPreferredUILanguages 00000038, 0710FC2C, 00000000 0710FC28
00f4:fixme:nls:get_dummy_preferred_ui_language (0x38 0710FC2C 00000000 0710FC28) returning a dummy value (current locale)
00f4:fixme:nls:RtlGetThreadPreferredUILanguages 00000038, 0710FC2C, 07C89FF8 0710FC28
00f4:fixme:nls:get_dummy_preferred_ui_language (0x38 0710FC2C 07C89FF8 0710FC28) returning a dummy value (current locale)
00f4:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0114:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFA, 0B7CFEF8
net.js:329
      err = this._handle.open(fd);
                         ^

Error: EINVAL: invalid argument, uv_pipe_open
    at new Socket (net.js:329:26)
    at createWritableStdioStream (internal/bootstrap/switches/is_main_thread.js:67:18)
    at process.getStdout [as stdout] (internal/bootstrap/switches/is_main_thread.js:122:12)
    at Object.<anonymous> (electron/js2c/browser_init.js:185:793)
    at Object../lib/browser/init.ts (electron/js2c/browser_init.js:185:3714)
    at __webpack_require__ (electron/js2c/browser_init.js:1:128)
    at electron/js2c/browser_init.js:1:1200
    at electron/js2c/browser_init.js:1:1267
    at NativeModule.compileForInternalLoader (internal/bootstrap/loaders.js:277:7)
    at NativeModule.compileForPublicLoader (internal/bootstrap/loaders.js:219:10) {
  errno: -4071,
  code: 'EINVAL',
  syscall: 'uv_pipe_open'
}
00f4:fixme:kernelbase:AppPolicyGetProcessTerminationMethod FFFFFFFA, 0710F0F0

 

This seems to affect other Electon/Node applications too, when I search the forum for "uv_pipe_open".

 

Workaround 1:

Run the application from the PlayOnLinux shell or wineconsole.

Workaround 2:

I put a cmd file in place that calls the final executable within a wineconsole:

/home/user/.PlayOnLinux/shortcuts/Star Stable Online
-POL_Wine 'Star Stable Online.exe' "$@"
+POL_Wine 'Star Stable Online.cmd' "$@"

/home/user/.PlayOnLinux/wineprefix/starstable/drive_c/Program\ Files/Star\ Stable\ Online/Star\ Stable\ Online.cmd
cd /d "c:\Program Files\Star Stable Online"
cd
start /min wineconsole "Star Stable Online.exe"

 

This could also be reproduced on a different machine,

with a plain electron/node simple example,

without playonlinux but with regular wine (wine-6.15-81-g5e2acff5734):

# https://nodejs.org/en/download/
wget https://nodejs.org/dist/v14.17.5/node-v14.17.5-win-x64.zip
unzip node-v14.17.5-win-x64.zip

git clone https://github.com/electron/simple-samples
cd simple-samples/activity-monitor

export NODE_SKIP_PLATFORM_CHECK=1
wine c:/node-v14.17.5-win-x64/npm.cmd install --scripts-prepend-node-path
wine c:/node-v14.17.5-win-x64/npm.cmd start   --scripts-prepend-node-path





true | (setsid wine c:/node-v14.17.5-win-x64/npm.cmd start   --scripts-prepend-node-path) 2>&1 | cat

or 

wine c:/node-v14.17.5-win-x64/npm.cmd start   --scripts-prepend-node-path | tee -a logfile

 

Because I currently know no way to reproduce this on windows and it looks to depend on the way how the wine process got started, I am reporting this issue here.

At least in native windows following does not show the issue, with the same binaries:

c:\node-v14.17.5-win-x64\npm.cmd start   --scripts-prepend-node-path | more

 

But still, unsure if this should be investigated at wine side or PlayOnLinux maybe changes the wine invocation to be more like an interactive shell, using "script" maybe?

script -c "wine c:/node-v14.17.5-win-x64/npm.cmd start   --scripts-prepend-node-path" -a /dev/stdout | tee -a logfile

 

tester345 Monday 4 October 2021 at 7:23
tester345Anonymous

thank you!

your solution works for another software, also electron-based

net.js:329

      err = this._handle.open(fd);

                         ^


Error: EINVAL: invalid argument, uv_pipe_open

    at new Socket (net.js:329:26)
fixed by creating .cmd file for wine:
cd /d "c:\Program Files\<APP dir>"
cd
start /min wineconsole "APLICATION.exe"