ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

Official docker images outdated, resulting in segfaults

Hi all,

The ros:kinetic-ros-base image is currently outdated, which results in segfaults when trying to just install another release package from the official apt repo on top and run it.

In my case it was the outdated rostime which caused a segfault: the image has 0.6.9, while 0.6.11 is the latest (and which the packages in the apt repo are built against).

@ruffsl could you please build a new set of kinetic images?

How the images are built in general and how often they get update was already discussed before: Announcing ROS Docker Images for ARM and Debian

I would propose to at least update the core and base packages when a new sync is done.
Would also be happy to help here.

Cheers, Felix

Hi Felix,

If I understand correctly the official ros images can be rebuilt only by changing the dockerfile - like adding RUN echo "rebuild this please" to the top. While it would make this crash go away in the short term, long term I don’t think this solves the problem.

If images were manually edited every sync there would always be a significant delay between the sync and the rebuild. During that time many images could be built that are affected by an ABI breakage. In this case the ABI breakage causes a segfault quickly. Next sync a more subtle ABI breakage might corrupt data and go unnoticed. I think it would be safer for downstream dockerfiles to always upgrade their packages when installing additional ros-<distro>-* packages.

RUN apt-get update && apt-get upgrade && apt-get install -y \
    ros-kinetic-diagnostic-aggregator \
&& rm -rf /var/lib/apt/lists/*

Here’s a link to a ticket where @ruffsl asked the docker maintainers to trigger a rebuild of the ros images, and they replied saying they don’t have a way to do so.

This ticket is about automatically changing the version numbers in the dockerfile every sync, and has more info about why it is more difficult than it sounds.

This may just me not appreciating the real world discrepancies between ideal Semantic Versioning vs reality, but shouldn’t the PATCH version at least be incremented when fixes to ABI breakages are pushed upstream? Then, even with the current scaffolding, our CIs would pickup on the change and PR for all distros and architectures.