https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92567
Bug ID: 92567 Summary: libgo regression in syscall test on ppc64le resulting in timeout due to hang in read Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: go Assignee: ian at airs dot com Reporter: boger at gcc dot gnu.org CC: cmang at google dot com, seurer at us dot ibm.com Target Milestone: --- Timeouts occur in the libgo syscall test when running the libgo tests. This is a regression that started sometime after r276416. It consistently fails after r276455 but we have been unable to narrow it down further because the failures in between have been inconsistent. The timeout happens because a hang occurs in this code in libcalls.go on the call to c_read. The function readlen is called from forkExec in sys_unix.go. When using gdb, it does not return from the syscall. // Automatically generated wrapper for readlen/read func readlen(fd int, p *byte, np int) (n int, err error) { Entersyscall() _r := c_read(_C_int(fd), p, Size_t(np)) n = (int)(_r) var errno Errno setErrno := false if _r < 0 { errno = GetErrno() setErrno = true } Exitsyscall() if setErrno { err = errno } return } Since this works on golang I stopped at the syscall in both cases and the arguments in the registers looked ok. I believe the address that is being passed to read is on the stack.