Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C++ interface example outputs "double free or corruption (out)" #138

Open
victor-kowalski-m opened this issue Apr 17, 2024 · 0 comments
Open

Comments

@victor-kowalski-m
Copy link

victor-kowalski-m commented Apr 17, 2024

Hello,

I tried to execute the provided C++ interface example code and it outputs:

double free or corruption (out)
Aborted (core dumped)

I recompiled the code with the flag -fsanitize=address and re-executed it, it outputs:

=================================================================
==31743==ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed: 0x631000014820 in thread T0
    #0 0x7fe5b26dbdb8 in __interceptor_free (/usr/lib64/libasan.so.4+0xdbdb8)
    #1 0x7fe5b3774616 in Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >::factorize(Eigen::SparseMatrix<double, 0, int> const&) (/home/kowa_vi/Downloads/splinter-3.0/build/libsplinter-3-0.so+0x55616)
    #2 0x7fe5b3778f05 in SPLINTER::SparseLU<Eigen::Matrix<double, -1, 1, 0, -1, 1> >::doSolve(Eigen::SparseMatrix<double, 0, int> const&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, Eigen::Matrix<double, -1, 1, 0, -1, 1>&) const (/home/kowa_vi/Downloads/splinter-3.0/build/libsplinter-3-0.so+0x59f05)
    #3 0x7fe5b375fd35 in SPLINTER::BSpline::Builder::computeCoefficients(SPLINTER::BSpline const&) const (/home/kowa_vi/Downloads/splinter-3.0/build/libsplinter-3-0.so+0x40d35)
    #4 0x7fe5b3760e8c in SPLINTER::BSpline::Builder::build() const (/home/kowa_vi/Downloads/splinter-3.0/build/libsplinter-3-0.so+0x41e8c)
    #5 0x40af8c in main /home/kowa_vi/trajectory_optimization/src/tests/test_splinter.cpp:44
    #6 0x7fe5b21d524c in __libc_start_main (/lib64/libc.so.6+0x3524c)
    #7 0x40a5a9 in _start ../sysdeps/x86_64/start.S:120

0x631000014820 is located 32 bytes inside of 67616-byte region [0x631000014800,0x631000025020)
allocated by thread T0 here:
    #0 0x7fe5b26dc110 in malloc (/usr/lib64/libasan.so.4+0xdc110)
    #1 0x40bcdf in Eigen::internal::handmade_aligned_malloc(unsigned long, unsigned long) /usr/include/eigen3/Eigen/src/Core/util/Memory.h:105
    #2 0x40bdb4 in Eigen::internal::aligned_malloc(unsigned long) /usr/include/eigen3/Eigen/src/Core/util/Memory.h:188
    #3 0x4100eb in void* Eigen::internal::conditional_aligned_malloc<true>(unsigned long) /usr/include/eigen3/Eigen/src/Core/util/Memory.h:241
    #4 0x40f94d in double* Eigen::internal::conditional_aligned_new_auto<double, true>(unsigned long) /usr/include/eigen3/Eigen/src/Core/util/Memory.h:404
    #5 0x7fe5b3773a3d in Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >::factorize(Eigen::SparseMatrix<double, 0, int> const&) (/home/kowa_vi/Downloads/splinter-3.0/build/libsplinter-3-0.so+0x54a3d)
    #6 0x7fe5b3778f05 in SPLINTER::SparseLU<Eigen::Matrix<double, -1, 1, 0, -1, 1> >::doSolve(Eigen::SparseMatrix<double, 0, int> const&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, Eigen::Matrix<double, -1, 1, 0, -1, 1>&) const (/home/kowa_vi/Downloads/splinter-3.0/build/libsplinter-3-0.so+0x59f05)
    #7 0x7fe5b375fd35 in SPLINTER::BSpline::Builder::computeCoefficients(SPLINTER::BSpline const&) const (/home/kowa_vi/Downloads/splinter-3.0/build/libsplinter-3-0.so+0x40d35)

SUMMARY: AddressSanitizer: bad-free (/usr/lib64/libasan.so.4+0xdbdb8) in __interceptor_free
==31743==ABORTING

The basic C interface example works, but if I create a variable such as an Eigen::Matrix inside the code, the same error occurs.

I am running it on an openSUSE 5.14.21 system, using gcc as the compiler.

Is there some sort of memory issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant