avalanchego: 1.4.10 crashes with `Illegal Instruction`
Describe the bug The docker image for 1.4.10 quits immediately with an “Illegal instruction” error. No such problem in any of the previous versions, including 1.4.9.
To Reproduce Run avalanchego
Expected behavior It should run fine.
Error
/avalanchego/build # ./avalanchego
Illegal instruction (core dumped)
Operating System Linux 3.10.105 x86_64
Additional context /proc/cpuinfo for the container:
/avalanchego/build # cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 76
model name : Intel(R) Pentium(R) CPU N3710 @ 1.60GHz
stepping : 4
microcode : 0x404
cpu MHz : 1601.000
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb invpcid_single tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips : 3199.85
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
By submitting this issue I agree to the Terms and Conditions of the Developer Accelerator Program.
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 1
- Comments: 25 (6 by maintainers)
Commits related to this issue
- Merge pull request #882 from ava-labs/remove-get-liveness-from-client — committed to ava-labs/avalanchego by StephenButtolph 3 years ago
Hi all, we’re looking into this issue and will patch it in the next release. In the mean time, you can continue to use v1.4.9. Sorry for the trouble.
@danlaine the
evm
binary that is being built with the current version of that branch depends on a version ofavalanchego
with the initial version ofrocksdb
(without the build tag switch). So when theevm
binary runs it’s crashing with the same illegal instruction. I think we just need to bump theevm
’s dependency onavalanchego
This should be resolved in v1.4.11
Please re-open if this is still a problem, and thanks for reporting
Just to confirm @StephenButtolph point
but if i manipulate coreth go.mod to my local copy and build
So i think this fix is good and needs to be merged and subsequent to that it’ll need coreth bumping and avalanchego updating to it.
@aphexmunky thanks, that seems to be part of BMI2 instruction set which 1.4.10 also seems to require. My N3710 doesn’t support that instruction set either. In your case, the CPU is able to skip the first AVX instruction because it supports it, but crashes at the BMI2 instruction.
@ssg
@aphexmunky, that’s a different call stack than mine, so that probably means 1.4.10 requires more than just AVX, maybe AVX2 too? Can you disassemble the crash dump location with GDB to find out the breaking instruction? The
disassemble
command starts at the beginning of the function for a given address, the actual instruction is marked with a=>
at the beginning of the line. In your dump, it should be at0x00000000012eb1ff
.I’m having this error only on an older PC i’m using. It’s an AMD FX-8350 and apparently supports AVX
gdb points to this part specifically, full logs below
I have the same error on my Celeron N3160 CPU. Not using docker, I just downloaded and untared the binary and also tried building avalanchego myself on Ubuntu 20.04. 1.4.9 still works fine.