Giter VIP home page Giter VIP logo

Comments (7)

jack-oquin avatar jack-oquin commented on July 20, 2024

I don't think we were aware of any ABI problem with release 1.11.5. We would not have released it to Hydro or Indigo, had we known of one. I agree that changing ABI merits a minor number bump (assuming the source API is compatible).

Which ROS distro are you on?

You have image_common 1.11.15, but older versions of other components depending on it?

from image_common.

marc-hanheide avatar marc-hanheide commented on July 20, 2024

We are on indigo, and we are using image_transport quite extensively in our project. We updated our whole system last week, when the change from 1.11.4 to 1.11.5 got deployed to our robots. Since this date we are experiencing many segmentation faults in components that publish images via image_transport.

I'm by no means an expert in C++ ABI, but reading KDE's Binary Compatibility Issues With C++ - The Do's and Don'ts and looking at the change set form 1.11.4 -> 1.11.5 it contains some changes that are normally not allowed to maintain ABI compatibility e.g. making a function inline, or adding a virtual function to a base class). As I said, I'm not an expert, but I have seen strange behaviour like symbols not being found or segfaults due to such cases before. And if only the patch number is increased, then AFAIK, neither Debian packages nor ld can figure this out.

Actually, re-compiling our packages solved the issue (in most cases, there is some other odd cases, that need further investigation), but obviously this does not work for packages released. We just did a full apt-get upgrade on our indigo installation (without our own packages installed) and tested roslaunch openni_launch openni.launch which was working perfectly find before and is not working since the update.

from image_common.

jack-oquin avatar jack-oquin commented on July 20, 2024

Sounds like we screwed up.

Not sure what to do about it at this point, I'll ask for advice on the ros-releases mailing list.

from image_common.

vrabaud avatar vrabaud commented on July 20, 2024

Yes, that was my mistake, I indeed broke the ABI by adding a member function (to provide an API to speed up certain cases). We cannot do anything at this point as it's gone public.
Thx for reporting though, for next time: you should be on shadow-fixed and whenever there is an issue, just mention it and we will block the sync to public. http://wiki.ros.org/ShadowRepository

from image_common.

tfoote avatar tfoote commented on July 20, 2024

@marc-hanheide Released packages should be fine. They all get rebuilt whenever a dependency is rebuilt.

from image_common.

marc-hanheide avatar marc-hanheide commented on July 20, 2024

@tfoote. Yes, agreed. Problem is we have our own build farm and that obviously missed that change. Maybe that could be better configured. I now triggered a rebuild of all our own packages. As i say, still seemed to gave a few problems but can't say for sure yet where they come from. But that could then solely be my own problem. I just wanted confirmation that the bugs we are seeing are indeed caused by the image_transport ABI change. Thanks.

from image_common.

jack-oquin avatar jack-oquin commented on July 20, 2024

@marc-hanheide: we thank you for reporting this problem, and apologize for the inconvenience it caused you.

from image_common.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.