I've been running snapraid-11.3 on my production machine for quite some time on CentOS8, without any issues.
Noticed today that version 11.4 had come out. Downloaded and compiled on my development machine. OS had been updated and machine rebooted before running ./configure and make.
make check also runs without any issues.
So, copied snapraid to my production machine.
Just typing snapraid without any commands or options runs fine, but snapraid status results in a core dump with the message - Illegal instruction (core dumped). Not confident to run any other snapraid command on my production machine after this.
Immediately went back to the development machine and ran snapraid status - no core dump - but correctly complained that there is no /etc/snapraid.conf file. Went back to production and tried the command again with the option -c /etc/snapraid.conf. Same result - core dumped
Both machines have been updated with the latest CentOS updates. The only difference is that production is a minimal CentOS8 build without the development libraries. But snapraid-11.3 runs fine on this machine.
I can supply any files from my development machine. The zipped up development directory is 120MB, so did not want to upload the entire directory.
Thanks.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The default build option is now -march=native, meaning that if you copy the executable to a different machine it may not work if the CPU is an older one.
You can force a generic CPU with:
CFLAGS=-march=x86-64 ./configure
Ciao,
Andrea
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks! Will try it out ASAP.
It's a Network File Server with 12 x 8TB drives - running double parity - and as it's 24/7, I used a low power CPU...
Will post update once I try this.
Thanks again.
The default build option is now -march=native, meaning that if you copy the executable to a different machine it may not work if the CPU is an older one.
May 24th:
Hello Andrea,
No go - same result
It compiled ok, make check was ok
Moved the file on to the file server and
Same result as before
Without any commands, snapraid - executes and outputs the version v11.4 and usage commands and instructions
I tried the commands status & up
snapraid status outputs
Self test...
Illegal instruction (core dumped)
snapraid up outputs
Illegal instruction (core dumped)
Interestingly, the size of the new executable was considerably smaller...
x86-64 build was 672,480 bytes
default build previously was 1,939,432 bytes
Also, I checked architectures of both machines - both belong to the haswell family.
May25th:
I added 4 x SATA drives I had lying around to my Dev machine (which previously had only 1 drive before.
Copied some random files onto these 4 and created a snapraid.conf in /etc
Compiled and made a new snapraid with defaults
It works as expected. No errors, no core dumps.
This got me thinking along these lines -
The machines are both haswell - Dev is an i7 and Prod is a low power Celeron, both running CentOS8 with the same kernel version patched to the latest available.
The difference could be in the additional developmental libraries that the DEV machine has.
The Prod machine is a minimal build - with libraries that have been added as needed.
So how do I identify what libraries I would need additionally on the Prod machine?
Thanks.
Last edit: dvgeek 2020-05-25
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
When a build the package on my own machine and install it in a container, no problem! And no problem with the previous 11.3, even when built by the launchpad worker.
It's the same architecture (amd64), same ubuntu distribution, but not the same kernel and probably not the same libraries.
(sorry, no symbols in the launchpad build, so it does not help too much)
There was no change in this file recently, so I'm puzzled. I suspect it's due to a change in the build process, but I've not tested the suggested flag yet.
Hope this helps,
Sylvain
Last edit: Sylvain Prat 2020-05-25
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Also, I tried to use CFLAGS=-march=x86-64 ./configure, but I don't think it works: I have both the -march=x86-64 and -march=native on the gcc command-line.
I've been running snapraid-11.3 on my production machine for quite some time on CentOS8, without any issues.
Noticed today that version 11.4 had come out. Downloaded and compiled on my development machine. OS had been updated and machine rebooted before running ./configure and make.
make check also runs without any issues.
So, copied snapraid to my production machine.
Just typing snapraid without any commands or options runs fine, but snapraid status results in a core dump with the message - Illegal instruction (core dumped). Not confident to run any other snapraid command on my production machine after this.
Immediately went back to the development machine and ran snapraid status - no core dump - but correctly complained that there is no /etc/snapraid.conf file. Went back to production and tried the command again with the option -c /etc/snapraid.conf. Same result - core dumped
Both machines have been updated with the latest CentOS updates. The only difference is that production is a minimal CentOS8 build without the development libraries. But snapraid-11.3 runs fine on this machine.
I can supply any files from my development machine. The zipped up development directory is 120MB, so did not want to upload the entire directory.
Thanks.
Just want to add that dmesg has the following message - not sure if it helps
traps: snapraid[2561] trap invalid opcode ip:407b3e sp:7ffde2036b40 error:0 in snapraid[400000+74000]
Hi dvgeek,
The default build option is now -march=native, meaning that if you copy the executable to a different machine it may not work if the CPU is an older one.
You can force a generic CPU with:
CFLAGS=-march=x86-64 ./configure
Ciao,
Andrea
Thanks! Will try it out ASAP.
It's a Network File Server with 12 x 8TB drives - running double parity - and as it's 24/7, I used a low power CPU...
Will post update once I try this.
Thanks again.
Hi dvgeek,
The default build option is now -march=native, meaning that if you copy the executable to a different machine it may not work if the CPU is an older one.
You can force a generic CPU with:
CFLAGS=-march=x86-64 ./configure
Ciao,
Andrea
Snapraid 11.4 CentOS8 puzzler
Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/snapraid/discussion/1677233/
To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/
May 24th:
Hello Andrea,
No go - same result
It compiled ok, make check was ok
Moved the file on to the file server and
Same result as before
Without any commands, snapraid - executes and outputs the version v11.4 and usage commands and instructions
I tried the commands status & up
snapraid status outputs
Self test...
Illegal instruction (core dumped)
snapraid up outputs
Illegal instruction (core dumped)
Interestingly, the size of the new executable was considerably smaller...
x86-64 build was 672,480 bytes
default build previously was 1,939,432 bytes
Also, I checked architectures of both machines - both belong to the haswell family.
May25th:
I added 4 x SATA drives I had lying around to my Dev machine (which previously had only 1 drive before.
Copied some random files onto these 4 and created a snapraid.conf in /etc
Compiled and made a new snapraid with defaults
It works as expected. No errors, no core dumps.
This got me thinking along these lines -
The machines are both haswell - Dev is an i7 and Prod is a low power Celeron, both running CentOS8 with the same kernel version patched to the latest available.
The difference could be in the additional developmental libraries that the DEV machine has.
The Prod machine is a minimal build - with libraries that have been added as needed.
So how do I identify what libraries I would need additionally on the Prod machine?
Thanks.
Last edit: dvgeek 2020-05-25
Hi,
I have the same "Illegal instruction" error when trying to use a debian package built by a launchpad worker (https://launchpad.net/~syprat/+archive/ubuntu/test/+build/19350596) in a ubuntu container running on my machine.
When a build the package on my own machine and install it in a container, no problem! And no problem with the previous 11.3, even when built by the launchpad worker.
It's the same architecture (amd64), same ubuntu distribution, but not the same kernel and probably not the same libraries.
I ran gdb and got this:
(sorry, no symbols in the launchpad build, so it does not help too much)
There was no change in this file recently, so I'm puzzled. I suspect it's due to a change in the build process, but I've not tested the suggested flag yet.
Hope this helps,
Sylvain
Last edit: Sylvain Prat 2020-05-25
Also, I tried to use
CFLAGS=-march=x86-64 ./configure
, but I don't think it works: I have both the-march=x86-64
and-march=native
on the gcc command-line.I don't think you can have both "-march=x86-64" and "-march=native" at the same time.
Update May 25th:
I installed gcc, make, kernel-devel and kernel-headers on my prod machine and compiled snapraid.
No errors!
I have no clue on why - so changed my sop to download and compile on prod machine - no dev machine anymore.
Last edit: dvgeek 2020-05-25
Hi dvgeek and others,
Please try with: http://beta.snapraid.it/snapraid-11.5.tar.gz
I removed the -march=native option. if it works, I'll make it official.
Ciao,
Andrea
Last edit: Andrea Mazzoleni 2020-05-26
Hi Andrea,
Happy to report it works!
Compiled on Dev machine and copied the executable to Prod.
Worked with no errors.
Thanks!
Update
Successfully tested recovery of a deleted file
Successfully tested recovery of a disk
Last edit: dvgeek 2020-05-26
I've not tested the new 11.5 release yet but removing the -march=native option solves my problem too.
Everything works fine with the new release, thanks!