* using log directory ‘/data/gannet/ripley/R/packages/tests-gcc-SAN/fastQR.Rcheck’ * using R Under development (unstable) (2025-02-14 r87717) * using platform: x86_64-pc-linux-gnu * R was compiled by gcc-15 (GCC) 15.0.1 20250209 (experimental) GNU Fortran (GCC) 15.0.1 20250209 (experimental) * running under: Fedora Linux 40 (Workstation Edition) * using session charset: UTF-8 * using option ‘--no-stop-on-test-error’ * checking for file ‘fastQR/DESCRIPTION’ ... OK * checking extension type ... Package * this is package ‘fastQR’ version ‘1.0.0’ * package encoding: UTF-8 * checking package dependencies ... OK * checking if this is a source package ... OK * checking if there is a namespace ... OK * checking for hidden files and directories ... OK * checking for portable file names ... OK * checking whether package ‘fastQR’ can be installed ... [727s/415s] OK * used C++ compiler: ‘g++-15 (GCC) 15.0.1 20250209 (experimental)’ * checking package directory ... OK * checking whether the package can be loaded ... OK * checking whether the package can be loaded with stated dependencies ... OK * checking whether the package can be unloaded cleanly ... OK * checking whether the namespace can be loaded with stated dependencies ... OK * checking whether the namespace can be unloaded cleanly ... OK * checking loading without being on the library search path ... OK * checking compiled code ... OK * checking examples ... ERROR Running examples in ‘fastQR-Ex.R’ failed The error most likely occurred in: > ### Name: qrdowndate > ### Title: Fast downdating of the QR factorization > ### Aliases: qrdowndate > > ### ** Examples > > ## Remove one column > ## generate sample data > set.seed(10) > n <- 10 > p <- 6 > X <- matrix(rnorm(n * p, 1), n, p) > > ## get the initial QR factorization > output <- fastQR::qr(X, type = "householder", + nb = NULL, + complete = TRUE) > Q <- output$Q > R <- output$R > > ## select the column to be deleted > ## from X and update X > k <- 2 > X1 <- X[, -k] > > ## downdate the QR decomposition > out <- fastQR::qrdowndate(Q = Q, R = R, + k = k, m = 1, + type = "column", + fast = FALSE, + complete = TRUE) ================================================================= ==989790==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x7c8ce4dc53e0 at pc 0x7b4cd51c1849 bp 0x7fff50c48160 sp 0x7fff50c48158 READ of size 16 at 0x7c8ce4dc53e0 thread T0 #0 0x7b4cd51c1848 in _mm_loadu_pd /usr/local/gcc15/lib/gcc/x86_64-pc-linux-gnu/15.0.1/include/emmintrin.h:135 #1 0x7b4cd51c1848 in double __vector(2) Eigen::internal::ploadu(Eigen::internal::unpacket_traits::type const*) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/arch/SSE/PacketMath.h:746 #2 0x7b4cd51c1848 in double __vector(2) Eigen::internal::ploadt(Eigen::internal::unpacket_traits::type const*) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/GenericPacketMath.h:969 #3 0x7b4cd51c1848 in double __vector(2) Eigen::internal::evaluator > >::packet<0, double __vector(2)>(long, long) const /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/CoreEvaluators.h:238 #4 0x7b4cd51c1848 in void Eigen::internal::generic_dense_assignment_kernel, -1, -1, false> >, Eigen::internal::evaluator >, Eigen::internal::assign_op, 0>::assignPacket<16, 0, double __vector(2)>(long, long) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:675 #5 0x7b4cd51c1848 in void Eigen::internal::generic_dense_assignment_kernel, -1, -1, false> >, Eigen::internal::evaluator >, Eigen::internal::assign_op, 0>::assignPacketByOuterInner<16, 0, double __vector(2)>(long, long) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:689 #6 0x7b4cd51c1848 in Eigen::internal::dense_assignment_loop, -1, -1, false> >, Eigen::internal::evaluator >, Eigen::internal::assign_op, 0>, 4, 0>::run(Eigen::internal::generic_dense_assignment_kernel, -1, -1, false> >, Eigen::internal::evaluator >, Eigen::internal::assign_op, 0>&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:572 #7 0x7b4cd51c1848 in void Eigen::internal::call_dense_assignment_loop, -1, -1, false>, Eigen::Matrix, Eigen::internal::assign_op >(Eigen::Block, -1, -1, false>&, Eigen::Matrix const&, Eigen::internal::assign_op const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:785 #8 0x7b4cd51e81ae in Eigen::internal::Assignment, -1, -1, false>, Eigen::Matrix, Eigen::internal::assign_op, Eigen::internal::Dense2Dense, void>::run(Eigen::Block, -1, -1, false>&, Eigen::Matrix const&, Eigen::internal::assign_op const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:954 #9 0x7b4cd51e81ae in void Eigen::internal::call_assignment_no_alias, -1, -1, false>, Eigen::Matrix, Eigen::internal::assign_op >(Eigen::Block, -1, -1, false>&, Eigen::Matrix const&, Eigen::internal::assign_op const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:890 #10 0x7b4cd51e81ae in void Eigen::internal::call_assignment, -1, -1, false>, Eigen::Matrix, Eigen::internal::assign_op >(Eigen::Block, -1, -1, false>&, Eigen::Matrix const&, Eigen::internal::assign_op const&, Eigen::internal::enable_if, Eigen::internal::evaluator_traits >::Shape>::value, void*>::type) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:858 #11 0x7b4cd51e81ae in void Eigen::internal::call_assignment, -1, -1, false>, Eigen::Matrix >(Eigen::Block, -1, -1, false>&, Eigen::Matrix const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:836 #12 0x7b4cd51e81ae in Eigen::Block, -1, -1, false>& Eigen::MatrixBase, -1, -1, false> >::operator= >(Eigen::DenseBase > const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/Assign.h:66 #13 0x7b4cd51e81ae in qrdowndate(Eigen::Matrix const&, Eigen::Matrix const&, int, Rcpp::Nullable, Rcpp::Nullable, std::allocator > >, Rcpp::Nullable, Rcpp::Nullable) /data/gannet/ripley/R/packages/tests-gcc-SAN/fastQR/src/QR_wrap.cpp:716 #14 0x7b4cd54feff1 in _fastQR_qrdowndate /data/gannet/ripley/R/packages/tests-gcc-SAN/fastQR/src/RcppExports.cpp:188 #15 0x00000074ee08 in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:775 #16 0x0000008dc4b2 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8672 #17 0x0000008b2e22 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7505 #18 0x000000855362 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #19 0x00000086d2fa in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393 #20 0x00000087139a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306 #21 0x000000855a13 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328 #22 0x000000855a13 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280 #23 0x000000885cd6 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3571 #24 0x000000855e36 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232 #25 0x0000009f9813 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:265 #26 0x0000009f9813 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317 #27 0x0000009fe99a in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1219 #28 0x000000a08de2 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1226 #29 0x000000429e2f in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29 #30 0x7f4ce8038087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba) #31 0x7f4ce803814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba) #32 0x00000042a7b4 in _start (/data/gannet/ripley/R/gcc-SAN3/bin/exec/R+0x42a7b4) (BuildId: b2b12e8165094239d53e056e659c690bc06b4102) 0x7c8ce4dc53e0 is located 0 bytes after 416-byte region [0x7c8ce4dc5240,0x7c8ce4dc53e0) allocated by thread T0 here: #0 0x7f4ce97118a0 in malloc ../../../../latest/libsanitizer/asan/asan_malloc_linux.cpp:67 #1 0x7b4cd5138ad8 in Eigen::internal::handmade_aligned_malloc(unsigned long, unsigned long) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/util/Memory.h:105 #2 0x7b4cd5138ad8 in Eigen::internal::aligned_malloc(unsigned long) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/util/Memory.h:188 #3 0x7b4cd5182481 in void* Eigen::internal::conditional_aligned_malloc(unsigned long) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/util/Memory.h:241 #4 0x7b4cd5182481 in double* Eigen::internal::conditional_aligned_new_auto(unsigned long) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/util/Memory.h:404 #5 0x7b4cd5182481 in Eigen::DenseStorage::resize(long, long, long) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/DenseStorage.h:486 #6 0x7b4cd5182481 in Eigen::PlainObjectBase >::resize(long, long) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/PlainObjectBase.h:285 #7 0x7b4cd51828ce in void Eigen::PlainObjectBase >::_init2(long, long, Eigen::internal::enable_if::type*) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/PlainObjectBase.h:810 #8 0x7b4cd51828ce in Eigen::Matrix::Matrix(int const&, int const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/Matrix.h:340 #9 0x7b4cd518f713 in Rcpp::traits::MatrixExporterForEigen, double>::get() /data/gannet/ripley/R/test-dev/RcppEigen/include/RcppEigenWrap.h:157 #10 0x7b4cd518f713 in Eigen::Matrix Rcpp::internal::as >(SEXPREC*, Rcpp::traits::r_type_generic_tag) /data/gannet/ripley/R/test-dev/Rcpp/include/Rcpp/as.h:89 #11 0x7b4cd518f713 in Eigen::Matrix Rcpp::as >(SEXPREC*) /data/gannet/ripley/R/test-dev/Rcpp/include/Rcpp/as.h:152 #12 0x7b4cd518fe98 in Rcpp::internal::generic_name_proxy<19, Rcpp::PreserveStorage>::operator Eigen::Matrix >() const /data/gannet/ripley/R/test-dev/Rcpp/include/Rcpp/vector/proxy.h:174 #13 0x7b4cd51e7e32 in qrdowndate(Eigen::Matrix const&, Eigen::Matrix const&, int, Rcpp::Nullable, Rcpp::Nullable, std::allocator > >, Rcpp::Nullable, Rcpp::Nullable) /data/gannet/ripley/R/packages/tests-gcc-SAN/fastQR/src/QR_wrap.cpp:712 #14 0x7b4cd54feff1 in _fastQR_qrdowndate /data/gannet/ripley/R/packages/tests-gcc-SAN/fastQR/src/RcppExports.cpp:188 #15 0x00000074ee08 in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:775 #16 0x0000008dc4b2 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8672 #17 0x0000008b2e22 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7505 #18 0x000000855362 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #19 0x00000086d2fa in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393 #20 0x00000087139a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306 #21 0x000000855a13 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328 #22 0x000000855a13 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280 #23 0x000000885cd6 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3571 #24 0x000000855e36 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232 #25 0x0000009f9813 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:265 #26 0x0000009f9813 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317 #27 0x0000009fe99a in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1219 #28 0x000000a08de2 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1226 #29 0x000000429e2f in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29 #30 0x7f4ce8038087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba) #31 0x7f4ce803814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba) #32 0x00000042a7b4 in _start (/data/gannet/ripley/R/gcc-SAN3/bin/exec/R+0x42a7b4) (BuildId: b2b12e8165094239d53e056e659c690bc06b4102) SUMMARY: AddressSanitizer: heap-buffer-overflow /usr/local/gcc15/lib/gcc/x86_64-pc-linux-gnu/15.0.1/include/emmintrin.h:135 in _mm_loadu_pd Shadow bytes around the buggy address: 0x7c8ce4dc5100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7c8ce4dc5180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7c8ce4dc5200: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 0x7c8ce4dc5280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7c8ce4dc5300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =>0x7c8ce4dc5380: 00 00 00 00 00 00 00 00 00 00 00 00[fa]fa fa fa 0x7c8ce4dc5400: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 0x7c8ce4dc5480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7c8ce4dc5500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7c8ce4dc5580: 00 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa 0x7c8ce4dc5600: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==989790==ABORTING * DONE Status: 1 ERROR