uname -aLinux labsw4 4.1.0-cl-7-iproc #1 SMP Debian 4.1.33-1+cl3u17 (2018-10-31) armv7l GNU/Linux
node_exporter --version
0.16.0, armv7 - releases packages
n/a
no
Hi, when trying to start node_exporter, it crashes - even when only doing a --version
teichhorn@labsw4:mgmt-vrf:~$ node_exporter --version
Illegal instruction (core dumped)
Giving the version
SIGILL
cat /proc/cpuinfo
`processor : 0
model name : ARMv7 Processor rev 0 (v7l)
BogoMIPS : 1980.41
Features : half thumb fastmult edsp tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0
processor : 1
model name : ARMv7 Processor rev 0 (v7l)
BogoMIPS : 1990.65
Features : half thumb fastmult edsp tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0
Hardware : BRCM XGS iProc
Revision : 0000
Serial : 0000000000000000`
strace:
execve("/usr/local/sbin/node_exporter", ["node_exporter"], [/* 24 vars */]) = 0
uname({sys="Linux", node="labsw4", ...}) = 0
brk(0) = 0xb67000
brk(0xb67d10) = 0xb67d10
set_tls(0xb674c0, 0x804f7c, 0, 0x80d334, 0x804f68) = 0
set_tid_address(0xb67068) = 17192
set_robust_list(0xb67070, 12) = 0
rt_sigaction(SIGRTMIN, {0x416b65, [], SA_RESTORER|SA_SIGINFO, 0x41c4a1}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x416c05, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x41c4a1}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
readlink("/proc/self/exe", "/usr/local/sbin/node_exporter", 4096) = 29
brk(0xb88d10) = 0xb88d10
brk(0xb89000) = 0xb89000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
--- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPC, si_addr=0x446b7e} ---
+++ killed by SIGILL (core dumped) +++
Illegal instruction (core dumped)
According to file the ELF-binary is for :
/usr/local/sbin/node_exporter: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=6c366a084c849b54381b591e2a3ca68d9d43d3be, not stripped
which is correct and matches other binaries on the unit.
I am a bit lost here and any help is appreciated,
Tom
That's very odd. We just released 0.17.0, which uses a newer Go compiler and eliminates the CGO dependency. Can you try it out and see if it helps?
Oh hi @sirtux! Interesting.. You could try building it from source and see if that works and what kind of binary it creates.
Just took a look at one of those cumulus arm boxes:
root@DE-ES-001-03-04-23:mgmt-vrf:~# dpkg --get-selections libc6
libc6:armel install
Go documentation says "ARM on Linux. You must run an EABI kernel. These are generally known as armel for softfloat (compatible with ARMv5) or armhf for hardware floating point (ARMv6 and above)."
So I tried node_exporter armv5 build, et voila:
root@DE-ES-001-03-04-23:mgmt-vrf:~# node_exporter-0.17.0.linux-armv5/node_exporter --version
node_exporter, version 0.17.0 (branch: HEAD, revision: f6f6194a436b9a63d0439abc585c76b19a206b21)
build user: root@322511e06ced
build date: 20181130-15:52:14
go version: go1.11.2
As @wrayan found out, the armv5 build worked, so this can be closed now and seen as documentation if someone else hits the issue.
Thanks,
Tom
Most helpful comment
Just took a look at one of those cumulus arm boxes:
root@DE-ES-001-03-04-23:mgmt-vrf:~# dpkg --get-selections libc6
libc6:armel install
Go documentation says "ARM on Linux. You must run an EABI kernel. These are generally known as armel for softfloat (compatible with ARMv5) or armhf for hardware floating point (ARMv6 and above)."
So I tried node_exporter armv5 build, et voila:
root@DE-ES-001-03-04-23:mgmt-vrf:~# node_exporter-0.17.0.linux-armv5/node_exporter --version
node_exporter, version 0.17.0 (branch: HEAD, revision: f6f6194a436b9a63d0439abc585c76b19a206b21)
build user: root@322511e06ced
build date: 20181130-15:52:14
go version: go1.11.2