-
Notifications
You must be signed in to change notification settings - Fork 134
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
RobustPGO Teardown #22
Comments
As an update, it seems to be an issue with RobustPGO somewhere. The problem is only related to the In VIO I have a class member of type std::unique_ptr<RobustPGO::RobustSolver> pgo_; Which is initialized in the constructor like so: RobustPGO::RobustSolverParams pgo_params;
pgo_params.setPcmSimple3DParams(lcd_params_.pgo_trans_threshold_,
lcd_params_.pgo_rot_threshold_, RobustPGO::Verbosity::VERBOSE);
pgo_ = VIO::make_unique<RobustPGO::RobustSolver>(pgo_params); Inside of std::unique_ptr<LoopClosureDetector> lcd_detector_; Which is initialized in the fixture like so: LoopClosureDetectorParams params;
params.parseYAML(lcd_FLAGS_test_data_path_+"/testLCDParameters.yaml");
lcd_detector_ = VIO::make_unique<LoopClosureDetector>(params, false); Not a lot to go wrong there. I've added a destructor to virtual ~GenericSolver() = default; And a destructor to ~RobustSolver() = default; And I've added the None of these changes have solved the original problem, which still pops up when I run LoopClosureDetector tests only but not when I run the entire Spark VIO testing suite. @yunzc I'm pretty stumped here so any thoughts you have on why unique_ptrs in RobustPGO would be misbehaving during tear down at the end of runtime would be appreciated. |
Fixed by getting rid of c++14 dependency and defining make_unique in RobustPGO |
Reopening because the problem is not yet solved it seems. I still get the same segfault in VIO sometimes.
Basically this shows that it is the fault of the |
While running a unit test from Spark VIO I have a strange issue. It could be a problem in gtests, or in VIO, or here. But the issue popped up with RobustPGO so I'll put it here for now.
When I run the full test executable everything is fine. But if I just run a series of tests that have the PGO stuff (or even just the loop closure detector tests) then I a segfault. Running with gdb shows this to be the cause:
So it looks like there is some problem with the teardown of RobustPGO class members. Again this could be a problem with the way I set them up in VIO or even just the test suite. Looking into it today, but @yunzc if you have any thoughts they'd be appreciated.
The text was updated successfully, but these errors were encountered: