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