Closed clydemcqueen closed 1 year ago
Hello! I had this same exact problem (same version of Ubuntu, and ros).
I tried building from source today, and that does not segfault (so if you wanted a quick fix, that is a viable solution for now).
after figuring that out, I went to experimenting with the apt version (which segfaults) and the source version (which inexplicably does not). I spent a while playing with the xml file and seeing how far in the code the apt version was getting as I did things like removing the plugins, adding/removing data splitters. I believe that I finally tracked down the segfault to this point in the code.:
where the sizes of the data splitter get parsed. I am not a Qt expert but it seems like in the apt version, somehow the sizes field is getting parsed into a vector whose size is not equal to the count specified in the xml file. Maybe this will be helpful to someone more familiar with Qt :sweat_smile: I would be happy to PR a change to fix this but I dont have a way to actually reproduce the bug when building from source :shrug: so this is just speculation...
As for the weirder issue, which is why compiling from source magically fixes the problem, I would guess this is a Qt version issue :thinking: my qt5 deps are all version 5.15.3-1
related thread: https://github.com/PlotJuggler/plotjuggler-ros-plugins/issues/62
as you said, the fact that this issue can not reproduce make it very hard for me to fix it.
I can add some defensive code there, but I don't understand how there could be a mismatch in the size of the splitter.
Potential fix pushed. The only hypothesis I have is that we use string reference, using an object that was potentially temporary.
Fingers crossed
thank you! :crossed_fingers:
Thanks for contributing to PlotJuggler. You are great!
Problem description
When I create a layout with 2 panes but no data, save it, then launch plotjuggler w/ the -l option, I get a segfault.
I'm also getting segfaults launching plotjuggler with just about any layout file, but I narrowed it down to this simple case.
Output:
Steps to reproduce (important)
Here is the two_pane.xml file: