I am guessing - because it is close to 30 secs (which sounds a lot like a 
timeout value) - that there is some problem in hand-off with the file 
descriptors and the descriptor is getting locked, causing some sort of timeout.

If it was "any exe" I'm sure someone would of reported it before. It should be 
trivial to write a test. I'll be back...




-----Original Message-----
>From: Ian Lance Taylor <i...@golang.org>
>Sent: Nov 19, 2019 10:28 AM
>To: miha.vrhov...@gmail.com
>Cc: golang-nuts <golang-nuts@googlegroups.com>
>Subject: Re: [go-nuts] ultra slow os.Exec
>
>On Tue, Nov 19, 2019 at 7:29 AM <miha.vrhov...@gmail.com> wrote:
>>
>> Robert is right, all 3 examples are the same (they execute the same command 
>> with wine being set up and then teared down again). wine itself is not an 
>> issue. It's go's exec that does something extremely funny.
>
>Sorry, I misread the original note.  But if I'm reading it correctly
>now, I find these results pretty hard to believe.  Can anybody else
>replicate them?
>
>Ian
>
>
>> On Tuesday, November 19, 2019 at 4:22:47 PM UTC+1, Robert Engels wrote:
>>>
>>>
>>> I think the point the OP is making is that when he runs the command from 
>>> the Linux command line it completes in 2 sec - so the Wine startup time 
>>> should not be the issue.
>>>
>>>
>>> -----Original Message-----
>>> >From: Ian Lance Taylor <ia...@golang.org>
>>> >Sent: Nov 19, 2019 9:15 AM
>>> >To: miha.v...@gmail.com
>>> >Cc: golang-nuts <golan...@googlegroups.com>
>>> >Subject: Re: [go-nuts] ultra slow os.Exec
>>> >
>>> >On Tue, Nov 19, 2019 at 6:52 AM <miha.v...@gmail.com> wrote:
>>> >>
>>> >> I'm running windows cli exe on linux via wine using os.Exec command.. 
>>> >> this takes 28s to complete.
>>> >> If I run the same command via linux cli it takes 2s to complete, if I 
>>> >> run the same command via php's exec it also takes about 2 seconds to 
>>> >> complete.
>>> >>
>>> >> == linux cli ==
>>> >>
>>> >> time WINEDEBUG=err-all,fixme-all WINEARCH=win32 
>>> >> /opt/wine-staging/bin/wine cmd.exe /c help
>>> >> ....
>>> >> real    0m1,366s
>>> >> user    0m0,002s
>>> >> sys    0m0,225s
>>> >>
>>> >> == php ==
>>> >> cat t.php
>>> >> <?php
>>> >> $out=array();
>>> >>
>>> >> exec('WINEDEBUG=err-all,fixme-all WINEARCH=win32 
>>> >> /opt/wine-staging/bin/wine cmd.exe /c help', $out);
>>> >>
>>> >> var_dump($out);
>>> >>
>>> >> .....
>>> >>
>>> >> real    0m1,427s
>>> >> user    0m0,035s
>>> >> sys    0m0,216s
>>> >>
>>> >>
>>> >> ==go exec==
>>> >>
>>> >> func main() {
>>> >>     now := time.Now()
>>> >>     ctx, cancel := context.WithTimeout(context.Background(), 
>>> >> 120*time.Second)
>>> >>     defer cancel()
>>> >>     cmd := exec.CommandContext(ctx, "/opt/wine-staging/bin/wine", "cmd", 
>>> >> "/c", "help")
>>> >>     cmd.Env = []string{"WINEDEBUG=err-all,fixme-all", "WINEARCH=win32"}
>>> >>     output, err := cmd.CombinedOutput()
>>> >>     if err != nil {
>>> >>         fmt.Println(err)
>>> >>     }
>>> >>     fmt.Println(string(output))
>>> >>     fmt.Println(time.Now().Sub(now))
>>> >> }
>>> >>
>>> >> time bin/osexec
>>> >>
>>> >> real    0m39,915s
>>> >> user    0m17,062s
>>> >> sys    0m0,195s
>>> >>
>>> >>
>>> >> * I have tried to set stdin and std out directly to the one from os (no 
>>> >> difference)
>>> >> * I have replaced cmd.CombinedOutput with cmd.Run() (no difference)
>>> >>
>>> >> go version
>>> >> go version go1.13.3 linux/amd64
>>> >> I'm totally clueless on what's going on.
>>> >
>>> >How long does it take to just run the wine command from the shell?
>>> >
>>> >My first guess would certainly be that the problem is in wine, not in
>>> >Go's os/exec package.  Starting up a Windows emulator has to take a
>>> >certain amount of time.
>>> >
>>> >Ian
>>> >
>>> >--
>>> >You received this message because you are subscribed to the Google Groups 
>>> >"golang-nuts" group.
>>> >To unsubscribe from this group and stop receiving emails from it, send an 
>>> >email to golan...@googlegroups.com.
>>> >To view this discussion on the web visit 
>>> >https://groups.google.com/d/msgid/golang-nuts/CAOyqgcXJZy61dX_UetsKY0r%3DNMcoBcE4sCuFZVzvvPme%3DjTTDg%40mail.gmail.com.
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/037e16e2-158a-4cf7-8a5f-8b940d55e64a%40googlegroups.com.
>
>-- 
>You received this message because you are subscribed to the Google Groups 
>"golang-nuts" group.
>To unsubscribe from this group and stop receiving emails from it, send an 
>email to golang-nuts+unsubscr...@googlegroups.com.
>To view this discussion on the web visit 
>https://groups.google.com/d/msgid/golang-nuts/CAOyqgcXR3ADH6J28wmY7vneHVnNRpGf0yia8aAyUdSrB62qwQg%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/847534479.3807.1574182478713%40wamui-cheeto.atl.sa.earthlink.net.

Reply via email to