-
Notifications
You must be signed in to change notification settings - Fork 18k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmd/go: runtime: epollwait on fd 4 failed with 38 (on ancient CentOS 5.11) #24980
Comments
From https://github.com/golang/go/wiki/MinimumRequirements
|
Ok, I see. But I searched from https://golang.org/doc/go1.10#ports down to https://golang.org/doc/go1.3 and I could not find a note on this decision for linux kernel (but there are many notes on unsupported versions of other OSes). I only found kernel 3.19 mentioned in context of syscall package on https://golang.org/doc/go1.5#minor_library_changes |
IIRC, the decision was made in pre-Go 1 releases; in one of weekly-2012-mm-dd releases without explicit notification. |
CentOS 5 has not been updated in over 4 years. CentOS 6 was released 6 1/2 years ago. It doesn't seem like an unreasonable decision. We can't support everything. |
For those who still want to try go1.10.1 on CentOS5, check this commit 1188eb9 errno 38 is: just change epoll_pwait back to epoll_wait will do diff --git a/src/runtime/sys_linux_amd64.s b/src/runtime/sys_linux_amd64.s
index a5db5cba23..8e945add07 100644
--- a/src/runtime/sys_linux_amd64.s
+++ b/src/runtime/sys_linux_amd64.s
@@ -41,6 +41,7 @@
#define SYS_sched_getaffinity 204
#define SYS_epoll_create 213
#define SYS_exit_group 231
+#define SYS_epoll_wait 232
#define SYS_epoll_ctl 233
#define SYS_openat 257
#define SYS_faccessat 269
@@ -664,8 +665,7 @@ TEXT runtime·epollwait(SB),NOSPLIT,$0
MOVQ ev+8(FP), SI
MOVL nev+16(FP), DX
MOVL timeout+20(FP), R10
- MOVQ $0, R8
- MOVL $SYS_epoll_pwait, AX
+ MOVL $SYS_epoll_wait, AX
SYSCALL
MOVL AX, ret+24(FP)
RET |
P.S. i have some antient version of telegraf, so i had try it rhel 5 x86_64:
rhel 5 i686:
so, if you need telegraf on old rhel5 x86_64, you need old version of telegraf ( ~ 1.6.1 ) Unfortunately, I did not find where you can get archive version of telegraf. |
I am trying to compile the latest usql(https://github.com/xo/usql) on RedHat 2.6.18-274.el5 but still I am facing the same error after applying the patch that @darren proposed. |
First of all , centos5 is too old, please upgrade. I have prebuilt go binary for centos5 https://github.com/darren/golang-on-centos5/releases |
@darren , You are a life saver!! You just unblocked me |
Very useful. I experienced the same epollwait issue and fixed it after changing the build environment from go1.13 to go1.9. Thank you. |
What version of Go are you using (
go version
)?go version go1.10.1 linux/amd64
Does this issue reproduce with the latest release?
Yes (on go1.10.1).
But previous go1.10 works without the issue.
What operating system and processor architecture are you using (
go env
)?It is (an ancient) CentOS 5 VM:
From
go env
(~90% runs crashed with no stdout output, longest output below):What did you do?
I run
go version
/go env
(on the Centos5 VM) orgo build hello_world.go
(on the Centos5 VM or on some real machine running Centos5). Wherehello_world.go
comes from https://golang.org/ (almost, I used English word "world").What did you expect to see?
I expect no crash and proper output of
go version
/go env
and successful compilation withgo build
.Or (may be) a note in release notes if such old kernel is not supported but even than I would not expect it to change in a point release (from 1.10 to 1.10.1).
Actually for go1.10 I see what was expected (on both the Centos 5 VM and the real machine running Centos 5).
What did you see instead?
On the real CentOS 5 machine
go version
works fine butgo build
has similar issue as described below.On the CentOS 5 VM:
go version
, 1 of 5 runs displays expected output but almost always crashes as below (with or without proper output).go env
, ~90% runs crashes with no output, ~10% display some output and crashes (similar to below).go build
crashes (similar to below).Example crash of
go version
:The text was updated successfully, but these errors were encountered: