[MXS-3750] 6.1.1 CentOS7 x86_64 RPMs fail on older CPUs without avx2 extension Created: 2021-08-31 Updated: 2021-10-06 Resolved: 2021-09-22 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | Core |
| Affects Version/s: | 6.1.1 |
| Fix Version/s: | 6.1.2 |
| Type: | Bug | Priority: | Major |
| Reporter: | Hartmut Holzgraefe | Assignee: | Niclas Antti |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
CentOS7, Xeon(R) CPU E5-2660 v2 model (first released 2013) |
||
| Issue Links: |
|
||||||||||||||||
| Description |
|
This fails with an invalid opcode exception when running on a Xeon(R) CPU E5-2660 v2 model (first released 2013), but works on a slightly more recent Xeon(R) CPU E5-2676 v3 from 2014. One of the difference between the two models is that both support avx, but only the newer model also supports avx2 extensions. Crashes already when trying to run "maxscale --version" Backtrace:
|
| Comments |
| Comment by markus makela [ 2021-08-31 ] | ||||||
|
This seems to be caused by static code being initialized regardless of the CPU type. Moving this code into a separate initialization routine that is called on startup should solve it. | ||||||
| Comment by Niclas Antti [ 2021-09-01 ] | ||||||
|
At runtime the OS is apparently is reporting avx2 in /proc/cpuinfo. The E5-2660 cpu was a short-lived single core single thread xeon version that did not have avx2 although avx2 support started in 2011 for xeon processors. My guess is that the OS is reporting an incorrect flag. Since we rely on the OS to report the correct flags, there is not much we can do, apart from a config flag turning simd off. Another solution is for the customer to upgrade the hardware. | ||||||
| Comment by Edward Stoever [ 2021-09-25 ] | ||||||
|
On Debian 10 Buster, I was getting this error in /var/log/messages:
When I use debian 9 Stretch, the error does not appear. My processor does not support avx2.
|