The test extract_coarse_mapping_int is currently failing due to a segmentation fault on ARM architecture.
Investigating a little further and comparing the behavior, to AMD64 here is the output of gdb in the investigation:
(gdb) break 'rocalution::HostVector<int>::ExtractCoarseMapping'
Breakpoint 1 at 0x7ffff7947e40: file /usr/src/rocalution-7.1.0-0ubuntu1/src/base/host/host_vector.cpp, line 1644.
(gdb) run --gtest_filter=local_vector_test.extract_coarse_mapping_int
...
Breakpoint 1, rocalution::HostVector<int>::ExtractCoarseMapping (this=0x555555cf5320,
start=0, end=5, index=0x7fffffffdb98, nc=3, size=0x7fffffffdb6c, map=0x7fffffffdba4)
at /usr/src/rocalution-7.1.0-0ubuntu1/src/base/host/host_vector.cpp:1644
In the above snippet, the test correctly runs and there is no errors detected, as expected.
However, if the same gdb procedure is performed on the ARM build after it fails:
(gdb) run --gtest_filter=local_vector_test.extract_coarse_mapping_int
...
Program received signal SIGSEGV, Segmentation fault.
0x0000fffff7ad25cc in rocalution::HostVector<int>::ExtractCoarseMapping (this=0xaaaaab2214b0,
start=0, end=5, index=0xffffffffead0, nc=3, size=0xffffffffea9c, map=0xffffffffeac0)
at /usr/src/rocalution-7.1.0-0ubuntu1/src/base/host/host_vector.cpp:1666
(gdb) bt
#0 0x0000fffff7ad25cc in rocalution::HostVector<int>::ExtractCoarseMapping (...) at ...:1666
#1 0x0000fffff7988de4 [PAC] in rocalution::LocalVector<int>::ExtractCoarseMapping (...) at ...:1225
While the addresses of the variables on the ARM build (e.g., 0xffffffffead0) are within the valid AArch64 user-space stack range, the SIGSEGV occurs consistently at line 1666. This may point to a memory alignment issue or an architectural difference in how HostVector handles memory indexing on ARM64 compared to AMD64.
For additional information on ARM architecture memory mappings, this link details the sections of memory addresses dedicated to each use.
The test
extract_coarse_mapping_intis currently failing due to a segmentation fault on ARM architecture.Investigating a little further and comparing the behavior, to AMD64 here is the output of
gdbin the investigation:(gdb) break 'rocalution::HostVector<int>::ExtractCoarseMapping' Breakpoint 1 at 0x7ffff7947e40: file /usr/src/rocalution-7.1.0-0ubuntu1/src/base/host/host_vector.cpp, line 1644. (gdb) run --gtest_filter=local_vector_test.extract_coarse_mapping_int ... Breakpoint 1, rocalution::HostVector<int>::ExtractCoarseMapping (this=0x555555cf5320, start=0, end=5, index=0x7fffffffdb98, nc=3, size=0x7fffffffdb6c, map=0x7fffffffdba4) at /usr/src/rocalution-7.1.0-0ubuntu1/src/base/host/host_vector.cpp:1644In the above snippet, the test correctly runs and there is no errors detected, as expected.
However, if the same
gdbprocedure is performed on the ARM build after it fails:(gdb) run --gtest_filter=local_vector_test.extract_coarse_mapping_int ... Program received signal SIGSEGV, Segmentation fault. 0x0000fffff7ad25cc in rocalution::HostVector<int>::ExtractCoarseMapping (this=0xaaaaab2214b0, start=0, end=5, index=0xffffffffead0, nc=3, size=0xffffffffea9c, map=0xffffffffeac0) at /usr/src/rocalution-7.1.0-0ubuntu1/src/base/host/host_vector.cpp:1666 (gdb) bt #0 0x0000fffff7ad25cc in rocalution::HostVector<int>::ExtractCoarseMapping (...) at ...:1666 #1 0x0000fffff7988de4 [PAC] in rocalution::LocalVector<int>::ExtractCoarseMapping (...) at ...:1225While the addresses of the variables on the ARM build (e.g., 0xffffffffead0) are within the valid AArch64 user-space stack range, the SIGSEGV occurs consistently at line 1666. This may point to a memory alignment issue or an architectural difference in how HostVector handles memory indexing on ARM64 compared to AMD64.
For additional information on ARM architecture memory mappings, this link details the sections of memory addresses dedicated to each use.