-
Notifications
You must be signed in to change notification settings - Fork 253
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
Introducing Reindexer core #641
Conversation
rosbag2_storage_default_plugins/src/rosbag2_storage_default_plugins/sqlite/sqlite_storage.cpp
Outdated
Show resolved
Hide resolved
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Currently does not build. Has a template error with making a unique pointer around a StorageFactoryInterface Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Project builds again. Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Trying to figure out why we can't open multiple bags in a row... Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
and writing out the metadata file Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
23a0a0a
to
afb7c82
Compare
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
I'm concerned about this OSX test - it seems like it failed both times. Do you have access to an OSX machine to try that out? |
I do not, unfortunately. And the error isn't very descriptive, is it? |
I just found this in the logs:
So it looks like it's trying to open the right file, but something with OSX doesn't like the format? Am I understanding that right? |
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
I found a location that looks like it should have been logging to the error stream, but was actually logging to the debug stream. It seems to be for the case that the storage factory is unable to find a registered class with the passed storage id (In this case, Would you be able to run the OSX tests one more time, and see if that error does show up? And if it does, what would cause |
Based on that analysis (thanks for continuing to dig!) - I noticed that Now that this has been brought to our attention - I am realizing that tests that depend on plugins being installed should be run through |
Sure, I can do that. Glad to be of help! I'm still going to leave that change from my last commit in, though. I think that probably was a bug. |
That's fine - I believe I wrote that one as an error for compression plugins. Probably the plugin factories should get consolidated into a single bit of code at some point, it's duplicated right now. |
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Moved the testing over. I'm noticing that the error "Requested storage id Trying to track down WHY those messages pop up, and WHY it recovers, though... |
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]>
…-reindexer Signed-off-by: Emerson Knapp <[email protected]>
…n some way Signed-off-by: Emerson Knapp <[email protected]>
Hey @jhdcs after testing it on the mackbook, I couldn't quite figure out what was wrong, but the database files in the See #691 at fb8c4a5 for my tweaks. The only important part are the actual I rebased on LMK how you want to proceed - you can resolve it from here, or I'm happy to push changes to this branch, run CI, and get it merged. |
If you're willing to push the changes to the branch, that would be amazing! Please, go ahead! You are correct that the number of files in the bag doesn't really make a difference. I'm only trying to check that the reindexer tallies things properly when dealing with bag splitting. My only concern now is whether or not the other bagfiles I added are corrupt as well... I suppose we at least know what to look for, now. What sort of corruption occurred? In order to create the original bagfile, I just used the talker/listener examples built in with ROS 2, run in a VM running Ubuntu 20.04. Perhaps sometime we should schedule a test where I create a bagfile, record ALL steps I took, and look for this corruption? As well as triple-check it can be run/reindexed on OSX... But that would be on a separate issue. |
I'm really not entirely sure. I was able to open the files with I'll get this through to merge today. |
Gist: https://gist.githubusercontent.com/emersonknapp/64a7282df97ba795d6629acf27242136/raw/18f71a06ca711cf38f35718b361f917f8c1afc91/ros2.repos |
Add a new C++ Reindexer class for reconstructing metadata from bags that are missing it. Distro A, OPSEC #4584 Signed-off-by: Jacob Hassold <[email protected]> Signed-off-by: Emerson Knapp <[email protected]>
Replaces #539
Part of #395
After some discussions with the Tooling Working Group, I decided to do a major refactoring in order to implement all of their changes. This PR is going to be for the core reindexing functionality - it does not contain any Python API. That will come in a future PR, once this is polished up to an acceptable level.
This does not currently have the ability to reindex compressed bags, though I have added in test bags and target files for when such functionality becomes available.