[mlpack-git] [mlpack/mlpack] using rvalue references to set a given reference tree in FastMKS and DualTreeBoruvka (#799)

Anuraj Kanodia notifications at github.com
Wed Nov 2 09:08:32 EDT 2016


Hi @rcurtin 
I am unable to figure out a fix for the memory leak. The newly added `FastMKS<>::Train(Tree&)` and `FastMKS<>::Train(Tree&&)` functions are causing the trouble.

This is snippet of the Valgrind output for `FastMKSModelLinearTest`: 
```
==7259== 1 bytes in 1 blocks are definitely lost in loss record 1 of 5
==7259==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==7259==    by 0xBF01BB: mlpack::fastmks::FastMKS<mlpack::kernel::LinearKernel, arma::Mat<double>, mlpack::tree::StandardCoverTree>::FastMKS(bool, bool) (in /home/kanodia/mlpack/build/bin/mlpack_test)
==7259==    by 0xBF1BCF: void mlpack::fastmks::FastMKSModel::BuildModel<mlpack::kernel::LinearKernel>(arma::Mat<double> const&, mlpack::kernel::LinearKernel&, bool, bool, double) (in /home/kanodia/mlpack/build/bin/mlpack_test)
==7259==    by 0xBBFBBC: FastMKSTest::FastMKSModelLinearTest::test_method() (in /home/kanodia/mlpack/build/bin/mlpack_test)
==7259==    by 0xBC1B0D: FastMKSTest::FastMKSModelLinearTest_invoker() (in /home/kanodia/mlpack/build/bin/mlpack_test)
==7259==    by 0xA05C56: boost::unit_test::ut_detail::callback0_impl_t<boost::unit_test::ut_detail::unused, void (*)()>::invoke() (in /home/kanodia/mlpack/build/bin/mlpack_test)
==7259==    by 0x58CC520: ??? (in /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0)
==7259==    by 0x58A863D: boost::execution_monitor::catch_signals(boost::unit_test::callback0<int> const&) (in /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0)
==7259==    by 0x58A8F3A: boost::execution_monitor::execute(boost::unit_test::callback0<int> const&) (in /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0)
==7259==    by 0x58CC693: boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::unit_test::test_case const&) (in /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0)
==7259==    by 0x58B7600: boost::unit_test::framework_impl::visit(boost::unit_test::test_case const&) (in /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0)
==7259==    by 0x58E9E82: boost::unit_test::traverse_test_tree(boost::unit_test::test_suite const&, boost::unit_test::test_tree_visitor&) (in /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.55.0)
```

```
==7259== LEAK SUMMARY:
==7259==    definitely lost: 3 bytes in 3 blocks
==7259==    indirectly lost: 0 bytes in 0 blocks
==7259==      possibly lost: 0 bytes in 0 blocks
==7259==    still reachable: 72,712 bytes in 2 blocks
==7259==         suppressed: 0 bytes in 0 blocks
==7259== Reachable blocks (those to which a pointer was found) are not shown.
==7259== To see them, rerun with: --leak-check=full --show-reachable=yes
==7259== 
==7259== For counts of detected and suppressed errors, rerun with: -v
==7259== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 2 from 2)
```
Do take a look whenever you find time.
Thank you

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/mlpack/mlpack/pull/799#issuecomment-257859103
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.cc.gatech.edu/pipermail/mlpack-git/attachments/20161102/cfd11dda/attachment.html>


More information about the mlpack-git mailing list