microsoft / WSL

Issues found on WSL
https://docs.microsoft.com/windows/wsl
MIT License
17.25k stars 812 forks source link

Go applications intermittently see ENOMEM when invoking execve #3800

Closed bdonlan closed 4 years ago

bdonlan commented 5 years ago

Please use the following bug reporting template to help produce issues which are actionable and reproducible, including all command-line steps necessary to induce the failure condition. Please fill out all the fields! Issues with missing or incomplete issue templates will be closed.

If you have a feature request, please post to the UserVoice.

If this is a console issue (a problem with layout, rendering, colors, etc.), please post to the console issue tracker.

Important: Do not open GitHub issues for Windows crashes (BSODs) or security issues. Please direct all Windows crashes and security issues to secure@microsoft.com. Ideally, please configure your machine to capture minidumps, repro the issue, and send the minidump from "C:\Windows\minidump\".

Please fill out the below information:

When executing the following test program in a loop, intermittently (< 1% frequency), the exec call fails with ENOMEM:

package main

import (
    "io/ioutil"
    "log"
    "os"
    "syscall"
    "fmt"
    "time"
    "runtime"
)

func main() {
    // This GOMAXPROCS call is not strictly required to repro, but seems to increase the reproducibility rate
    runtime.GOMAXPROCS(1)
    log.SetOutput(ioutil.Discard)
    log.Println("Hello world");

    time.Sleep(time.Millisecond * 100)

    err := syscall.Exec("/bin/true", []string{"/bin/true"}, os.Environ());
    fmt.Fprintf(os.Stderr, "Exec failed: (%s)\n", err)
    os.Exit(1)
}

You can build and run this with the following command (after apt install golang):

$ go build main.go ; for i in `seq 1 1000`; do strace -o trace ./main || break; done
Exec failed: (cannot allocate memory)

Additionally, once this fails, it will continue failing for the life of the process.

execve should succeed reliably when the system has sufficient memory (in my case, >5GB of standby memory reported).

9611  execve("./main", ["./main"], 0x7fffeabbafd8 /* 23 vars */) = 0
9611  arch_prctl(ARCH_SET_FS, 0x53d7f0) = 0
9611  sched_getaffinity(0, 8192, [0, 1, 2, 3]) = 64
9611  mmap(0xc000000000, 65536, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc000000000
9611  munmap(0xc000000000, 65536)       = 0
9611  mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f611b9d0000
9611  mmap(0xc420000000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc420000000
9611  mmap(0xc41fff8000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc41fff8000
9611  mmap(0xc000000000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc000000000
9611  mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f611b9c0000
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=394007000}) = 0
9611  mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f611b9b0000
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=394425000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=394576000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=394721000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=394867000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=395025000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=395197000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=395369000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=395542000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=395688000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=395833000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=395979000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=396124000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=396257000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=396416000}) = 0
9611  rt_sigprocmask(SIG_SETMASK, NULL, [], 8) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=396928000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=397102000}) = 0
9611  sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
9611  sigaltstack({ss_sp=0xc420002000, ss_flags=0, ss_size=32768}, NULL) = 0
9611  rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
9611  gettid()                          = 9611
9611  rt_sigaction(SIGHUP, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGHUP, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGINT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGINT, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGQUIT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGQUIT, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGILL, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGILL, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGTRAP, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGTRAP, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGABRT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGABRT, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGBUS, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGBUS, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGFPE, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGFPE, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGUSR1, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGUSR1, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGSEGV, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGSEGV, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGUSR2, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGUSR2, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGPIPE, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGALRM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGALRM, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGTERM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGTERM, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGSTKFLT, NULL, {sa_handler=SIG_DFL, sa_mask=[STKFLT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGSTKFLT, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGCHLD, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f9e24e0ef20}, 8) = 0
9611  rt_sigaction(SIGCHLD, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGURG, NULL, {sa_handler=SIG_DFL, sa_mask=[URG], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGURG, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGXCPU, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGXCPU, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGXFSZ, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGXFSZ, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGVTALRM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGVTALRM, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGPROF, NULL, {sa_handler=SIG_DFL, sa_mask=[PROF], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGPROF, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGWINCH, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGWINCH, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGIO, NULL, {sa_handler=SIG_DFL, sa_mask=[IO], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGIO, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGPWR, NULL, {sa_handler=SIG_DFL, sa_mask=[PWR], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGPWR, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGSYS, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fabfebfef20}, 8) = 0
9611  rt_sigaction(SIGSYS, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRTMIN, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f9e24562890}, 8) = 0
9611  rt_sigaction(SIGRT_1, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f9e24562890}, 8) = 0
9611  rt_sigaction(SIGRT_2, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_2], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_2, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_3, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_3], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_3, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_4, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_4], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_4, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_5, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_5], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_5, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_6, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_6], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_6, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_7, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_7], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_7, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_8, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_8], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_8, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_9, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_9], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_9, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_10, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_10], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_10, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_11, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_11], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_11, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_12, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_12], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_12, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_13, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_13], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_13, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_14, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_14], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_14, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_15, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_15], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_15, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_16, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_16], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_16, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_17, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_17], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_17, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_18, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_18], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_18, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_19, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_19], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_19, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_20, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_20], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_20, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_21, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_21], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_21, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_22, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_22], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_22, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_23, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_23], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_23, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_24, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_24], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_24, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_25, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_25], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_25, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_26, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_26], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_26, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_27, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_27], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_27, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_28, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_28], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_28, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_29, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_29], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_29, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_30, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_30], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_30, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_31, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_31], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_31, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigaction(SIGRT_32, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_32], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fde632bef20}, 8) = 0
9611  rt_sigaction(SIGRT_32, {sa_handler=0x4508d0, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x450a00}, NULL, 8) = 0
9611  rt_sigprocmask(SIG_SETMASK, ~[], [], 8) = 0
9611  clone(child_stack=0xc420044000, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM) = 9612
9612  gettid( <unfinished ...>
9611  rt_sigprocmask(SIG_SETMASK, [],  <unfinished ...>
9612  <... gettid resumed> )            = 9612
9611  <... rt_sigprocmask resumed> NULL, 8) = 0
9612  arch_prctl(ARCH_SET_FS, 0xc420034090 <unfinished ...>
9611  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9612  <... arch_prctl resumed> )        = 0
9611  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=417478000}) = 0
9612  sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
9611  rt_sigprocmask(SIG_SETMASK, ~[],  <unfinished ...>
9612  sigaltstack({ss_sp=0xc420036000, ss_flags=0, ss_size=32768},  <unfinished ...>
9611  <... rt_sigprocmask resumed> [], 8) = 0
9612  <... sigaltstack resumed> NULL)   = 0
9611  clone( <unfinished ...>
9612  rt_sigprocmask(SIG_SETMASK, [],  <unfinished ...>
9611  <... clone resumed> child_stack=0xc420040000, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM) = 9613
9612  <... rt_sigprocmask resumed> NULL, 8) = 0
9611  rt_sigprocmask(SIG_SETMASK, [],  <unfinished ...>
9612  gettid( <unfinished ...>
9611  <... rt_sigprocmask resumed> NULL, 8) = 0
9612  <... gettid resumed> )            = 9612
9611  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9611  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=418595000}) = 0
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=418654000}) = 0
9611  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9611  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=418878000}) = 0
9613  gettid( <unfinished ...>
9611  rt_sigprocmask(SIG_SETMASK, ~[],  <unfinished ...>
9613  <... gettid resumed> )            = 9613
9611  <... rt_sigprocmask resumed> [], 8) = 0
9613  arch_prctl(ARCH_SET_FS, 0xc420034490 <unfinished ...>
9611  clone( <unfinished ...>
9612  <... pselect6 resumed> )          = 0 (Timeout)
9613  <... arch_prctl resumed> )        = 0
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9611  <... clone resumed> child_stack=0xc420042000, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM) = 9614
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=419782000}) = 0
9611  rt_sigprocmask(SIG_SETMASK, [],  <unfinished ...>
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9611  <... rt_sigprocmask resumed> NULL, 8) = 0
9613  sigaltstack(NULL,  <unfinished ...>
9611  futex(0x53d8a8, FUTEX_WAIT, 0, NULL <unfinished ...>
9613  <... sigaltstack resumed> {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
9613  sigaltstack({ss_sp=0xc42004e000, ss_flags=0, ss_size=32768},  <unfinished ...>
9614  gettid( <unfinished ...>
9613  <... sigaltstack resumed> NULL)   = 0
9614  <... gettid resumed> )            = 9614
9612  <... pselect6 resumed> )          = 0 (Timeout)
9613  rt_sigprocmask(SIG_SETMASK, [],  <unfinished ...>
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9613  <... rt_sigprocmask resumed> NULL, 8) = 0
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=420890000}) = 0
9613  gettid( <unfinished ...>
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9613  <... gettid resumed> )            = 9613
9612  <... pselect6 resumed> )          = 0 (Timeout)
9614  arch_prctl(ARCH_SET_FS, 0xc420034890 <unfinished ...>
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9613  rt_sigprocmask(SIG_SETMASK, ~[],  <unfinished ...>
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=421386000}) = 0
9613  <... rt_sigprocmask resumed> [], 8) = 0
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9613  clone( <unfinished ...>
9612  <... pselect6 resumed> )          = 0 (Timeout)
9614  <... arch_prctl resumed> )        = 0
9612  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=421941000}) = 0
9613  <... clone resumed> child_stack=0xc420076000, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM) = 9615
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9613  rt_sigprocmask(SIG_SETMASK, [],  <unfinished ...>
9614  sigaltstack(NULL,  <unfinished ...>
9613  <... rt_sigprocmask resumed> NULL, 8) = 0
9614  <... sigaltstack resumed> {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
9613  futex(0x53d8a8, FUTEX_WAKE, 1 <unfinished ...>
9614  sigaltstack({ss_sp=0xc42005c000, ss_flags=0, ss_size=32768},  <unfinished ...>
9611  <... futex resumed> )             = 0
9613  <... futex resumed> )             = 1
9614  <... sigaltstack resumed> NULL)   = 0
9612  <... pselect6 resumed> )          = 0 (Timeout)
9613  futex(0xc420034548, FUTEX_WAIT, 0, NULL <unfinished ...>
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9611  readlinkat(AT_FDCWD, "/proc/self/exe",  <unfinished ...>
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=422861000}) = 0
9614  rt_sigprocmask(SIG_SETMASK, [],  <unfinished ...>
9611  <... readlinkat resumed> "/tmp/main", 128) = 9
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9611  mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
9614  <... rt_sigprocmask resumed> NULL, 8) = 0
9611  <... mmap resumed> )              = 0x7f611b970000
9614  gettid( <unfinished ...>
9611  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9614  <... gettid resumed> )            = 9614
9611  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=423559000}) = 0
9614  futex(0xc420034948, FUTEX_WAIT, 0, NULL <unfinished ...>
9611  futex(0x53d200, FUTEX_WAIT, 0, {tv_sec=0, tv_nsec=100000} <unfinished ...>
9615  gettid( <unfinished ...>
9612  <... pselect6 resumed> )          = 0 (Timeout)
9615  <... gettid resumed> )            = 9615
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9615  arch_prctl(ARCH_SET_FS, 0xc420064090 <unfinished ...>
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=424004000}) = 0
9615  <... arch_prctl resumed> )        = 0
9612  futex(0x53d210, FUTEX_WAIT, 0, {tv_sec=60, tv_nsec=0} <unfinished ...>
9615  sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
9611  <... futex resumed> )             = -1 ETIMEDOUT (Connection timed out)
9615  sigaltstack({ss_sp=0xc420068000, ss_flags=0, ss_size=32768},  <unfinished ...>
9611  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9615  <... sigaltstack resumed> NULL)   = 0
9611  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=424676000}) = 0
9615  rt_sigprocmask(SIG_SETMASK, [],  <unfinished ...>
9611  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9615  <... rt_sigprocmask resumed> NULL, 8) = 0
9611  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=424916000}) = 0
9615  gettid( <unfinished ...>
9611  futex(0x53d200, FUTEX_WAIT, 0, {tv_sec=0, tv_nsec=100000} <unfinished ...>
9615  <... gettid resumed> )            = 9615
9615  futex(0x53d200, FUTEX_WAKE, 1)    = 1
9611  <... futex resumed> )             = 0
9615  futex(0xc420064148, FUTEX_WAIT, 0, NULL <unfinished ...>
9611  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=425503000}) = 0
9611  futex(0x53d210, FUTEX_WAKE, 1)    = 1
9612  <... futex resumed> )             = 0
9611  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9611  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=425869000}) = 0
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=425910000}) = 0
9611  clock_gettime(CLOCK_REALTIME,  <unfinished ...>
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9611  <... clock_gettime resumed> {tv_sec=1548266054, tv_nsec=145849900}) = 0
9612  <... pselect6 resumed> )          = 0 (Timeout)
9611  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9611  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=426404000}) = 0
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=426459000}) = 0
9611  openat(AT_FDCWD, "/etc//localtime", O_RDONLY <unfinished ...>
9612  futex(0xc420064148, FUTEX_WAKE, 1) = 1
9611  <... openat resumed> )            = 3
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9611  futex(0x53d8a8, FUTEX_WAIT, 0, NULL <unfinished ...>
9615  <... futex resumed> )             = 0
9615  read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\2\0\0\0\0"..., 4096) = 1072
9615  read(3, "", 4096)                 = 0
9612  <... pselect6 resumed> )          = 0 (Timeout)
9615  close(3 <unfinished ...>
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9615  <... close resumed> )             = 0
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=427722000}) = 0
9615  clock_gettime(CLOCK_REALTIME,  <unfinished ...>
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9615  <... clock_gettime resumed> {tv_sec=1548266054, tv_nsec=147653100}) = 0
9615  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=428150000}) = 0
9615  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=428367000}) = 0
9615  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9612  <... pselect6 resumed> )          = 0 (Timeout)
9615  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=428597000}) = 0
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9615  futex(0x53d8a8, FUTEX_WAKE, 1 <unfinished ...>
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=428791000}) = 0
9611  <... futex resumed> )             = 0
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9611  futex(0x53d8a8, FUTEX_WAIT, 0, NULL <unfinished ...>
9615  <... futex resumed> )             = 1
9615  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=429226000}) = 0
9615  futex(0x53fac0, FUTEX_WAIT, 0, {tv_sec=0, tv_nsec=99770000} <unfinished ...>
9612  <... pselect6 resumed> )          = 0 (Timeout)
9612  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=429749000}) = 0
9612  futex(0x53d210, FUTEX_WAIT, 0, {tv_sec=60, tv_nsec=0} <unfinished ...>
9615  <... futex resumed> )             = -1 ETIMEDOUT (Connection timed out)
9615  clock_gettime(CLOCK_MONOTONIC, {tv_sec=169662, tv_nsec=529948000}) = 0
9615  futex(0x53d210, FUTEX_WAKE, 1)    = 1
9612  <... futex resumed> )             = 0
9615  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9615  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=530852000}) = 0
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=530902000}) = 0
9615  execve("/bin/true", ["/bin/true"], 0xc4200940c0 /* 23 vars */ <unfinished ...>
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9615  <... execve resumed> )            = -1 ENOMEM (Cannot allocate memory)
9615  mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f611b930000
9612  <... pselect6 resumed> )          = 0 (Timeout)
9612  clock_gettime(CLOCK_MONOTONIC,  <unfinished ...>
9615  write(2, "Exec failed: (cannot allocate me"..., 38 <unfinished ...>
9612  <... clock_gettime resumed> {tv_sec=169662, tv_nsec=532825000}) = 0
9615  <... write resumed> )             = 38
9612  pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=20000}, NULL <unfinished ...>
9615  exit_group(1 <unfinished ...>
9611  <... futex resumed>)              = ?
9612  <... pselect6 resumed> <unfinished ...>) = ?
9613  <... futex resumed>)              = ?
9614  <... futex resumed>)              = ?
9612  +++ exited with 1 +++
9613  +++ exited with 1 +++
9614  +++ exited with 1 +++
9615  <... exit_group resumed>)         = ?
9615  +++ exited with 1 +++
9611  +++ exited with 1 +++

See our contributing instructions for assistance.

Brian-Perkins commented 5 years ago

WSL currently does not allow exec when the caller is not the threadgroup leader. This is what is causing the ENOMEM (granted that may not be the best error code in this case). I don't know why the exec ends up on a different thread in some circumstances, but this is expected to work in a Linux environment.

therealkenc commented 5 years ago

2959 #3072 are still flapping for what it is worth. Maybe (probably?) unrelated but I don't think they were ever triaged either way. Same symptom though. Plenty of memory to build, but ENOMEM on exec.

benhillis commented 5 years ago

Fixed in 18342.