grin: Grin node 5.1.0 won't launch on Linux
Describe the bug Grin node v5.1.0 will not launch on Debian Buster, returning “Illegal instruction” to stdout.
To Reproduce
$ grin
Illegal instruction
$ echo $?
132
$ ps aux |grep -E '[g]rin'
$
Relevant Information
20210506 16:53:04.446 INFO grin_util::logger - log4rs is initialized, file level: Debug, stdout level: Warn, min. level: Debug
20210506 16:53:04.447 INFO grin - Using configuration file at /home/$USER/.grin/main/grin-server.toml
20210506 16:53:04.447 INFO grin - This is Grin version 5.1.0 (git v5.1.0), built for x86_64-unknown-linux-gnu by rustc 1.51.0 (2fd73fabe 2021-03-23).
20210506 16:53:04.448 DEBUG grin - Built with profile "release", features "".
20210506 16:53:04.448 INFO grin - Chain: Mainnet
20210506 16:53:04.448 INFO grin - Accept Fee Base: 500000
20210506 16:53:04.449 INFO grin - Future Time Limit: 300
20210506 16:53:04.449 INFO grin - Feature: NRD kernel enabled: false
20210506 16:53:04.449 WARN grin::cmd::server - Starting GRIN in UI mode...
20210506 16:53:04.450 INFO grin_servers::grin::server - Starting server, genesis block: 40adad0aec27
20210506 16:53:04.451 DEBUG grin_store::lmdb - DB Mapsize for /home/$USER/.grin/main/chain_data/lmdb is 549755813888
Desktop (please complete the following information):
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 25 (18 by maintainers)
Good catch @antiochp. This is now fixed by #3644. This binary should run fine on linux https://github.com/quentinlesceller/grin/releases/tag/v5.1.0-test3.
Can confirm the binary isn’t working on my i7 running Debian 10.9 in docker. But compiling from source works. I suspect a croaring issue.
Ideally, a binary would check if avx2 support is present before using those instructions. But if croaring is lacking the smarts to do that, then we should avoid avx2 altogether. There’s still a significant number of CPUs without avx2 that I think we should support.
so we have an avx512 instruction? https://en.wikipedia.org/wiki/AVX-512 Legacy instructions upgraded with EVEX encoded versions
Okay, prepending
config_file_version = 2to the top of my grin-server.toml sorted the issue.