Closed sorgoz closed 3 years ago
Hi Sergey,
This is due to our BlockCompression library that is compiled in C++. In the past, illegal instruction referred to our use of AVX instructions in the library. For now, we have backed away from that and are targeting older CPU instructions (-march=ivybridge -mtune=haswell
).
The second reason why this sometimes happens is because of old versions of the Linux kernel / glibc library. In the past we even distributed a separate library for older CentOS 6 machines: https://github.com/MichaelStromberg-Illumina/DotNetMisc/tree/master/lib_centos6
You can drop the CentOS 6 library into your Nirvana directory to see if it helps. Otherwise, you can try to compile your own BlockCompression library using that repo: https://github.com/Illumina/BlockCompression
Let me know if that works for you.
Thanks for the quick response Michael.
I tried using the precompiled lib for centos6 as you suggested - the error changed to another one (something about not seeing the actual data after decompression), so I went further and compiled BlockCompression from the source.
This new build caused exactly the same initial error - Illegal Instruction.
Then I changed MARCH
variable in the Makefile to native
, rebuilt the lib and that solved the problem.
Brilliant! I'm glad everything worked out!
Hi,
I'm trying to run Nirvana on a NAS device that has Ubuntu 18.04.5 LTS. Arch = x86_64.
When I start annotation, it outputs the header with names and the beginning of the table, but soon the process terminates with "Illegal instruction" message.
How can I get more info what is wrong exactly?
Dotnet version 5.0.201 (also tried earlier versions - couldn't even build the release with 2.1).