pjrambo / VINS-Fusion-gpu

This repository is a version of VINS-Fusion with gpu acceleration. It can run on the Nvidia TX2 in realtime
GNU General Public License v3.0
515 stars 137 forks source link

Erroneous use of sensor_msgs::ImageConstPtr leads to extravagant memory overflow #7

Open zx1239856 opened 5 years ago

zx1239856 commented 5 years ago

In our experiment with Nvidia Jetson TX2, memory utilization of vins-gpu could go up to 85% (as mentioned in #2 ) and would eventually escalate sigkill. After we examined the main entry of ROS node rosNodeTest.cpp, we found you have used queue<sensor_msgs::ImageConstPtr> in line 29,30, which may bring about miserable results such as failure of memory deallocation of sensor_msgs::Image, thus causing memory panic. After making some minor changes, i.e. using queue<cv::Mat> and convert msgs just in time, this problem can be addressed. Note: extra care should be taken since cv::Mat wouldn't save extra info such as timestamp, which means you have to store it somewhere else manually. Hope this helps

mmp52 commented 4 years ago

@zx1239856 I have also noticed a memory leakage, after running vins in nvidia xavier. Have you explicitly modified the code and solved the problem ?

Thanks, Metin