-
Notifications
You must be signed in to change notification settings - Fork 64
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
regression on kinetic due to #127 #132
Comments
The problem is that you are mixing older and newer Debian packages. After these instructions:
you don't have the latest version of @mikepurvis FYI since you provided the original patch. Once the Docker image is being updated the problem should go away. Until then you can invoke |
Yeah, we don't have a good story for expressing a reverse dependency like this— like, everything that builds against pkg X needs to then have a >= run-depend on that version of pkg X. |
I suppose we could anticipate this problem and catch the |
Me neither. Expecting users to have an up-to-date installation isn't too much imo. The problem that the If someone wants to make a PR to make it more defensive I am happy to review. There will be another Kinetic rebuild (due to a |
Posting for anyone else who's seen a similar regression for ros-melodic on 18.04. This changed caused
with the following packages installed, and several custom messages built. ros-${ROS_DISTRO}-ros-core ros-${ROS_DISTRO}-uuid-msgs We see the following error when subscribing to any user defined message type. Note that we are still using python2.7 (:facepalm: ), but this generated code is leaking in where it should not be.
Known working .deb: (apparently) broken .deb: |
@gwendolynbrook did you run an |
update, yes; dist-upgrade no. What package is the dist-upgrade affecting that's a dependency to get this working? I should be clear that we're building a custom image and installing ros + all ros packages ourselves, so any ros packages are freshly installed -- I wouldn't expect them to need an upgrade. Is there a system package or other dependency involved? Also -- have confirmed that the issue persists after dist-upgrade (which is a no-op for the ros packages). |
Still grok'ing the generator code, but I'm wondering why this line isn't also guarded by an "if python3": https://github.com/ros/genpy/pull/127/files#diff-cda8e9d50594619a9ea61bdd3216b820R759 (i.e. #133) |
@gwendolynbrook Please provide reproducible steps for your case.
While I still don't see how you can run into this if you have the latest version of the |
@gwendolynbrook Can you please reply to the above comment. |
@dirk-thomas .... me neither 🤦 Here's my attempt to repro: kinetic-devel...Maidbot:test-serde-issue (tl;dr -- I'm unable to reproduce in a unit test case; or a simple "functional" test in the container using rostopic pub with the generated test_pkg/Range). After taking a much closer look at my build logs, it looks like the issue was a multi-stage build. We install roscore in a build stage and a (size-optimized) run stage; and copy build products from the first to the second. It looks like the ros core install was cached in the run stage, but not in the build stage -- so our messages would have been generated by 0.6.14, but used by 0.6.12 at runtime; I'm working on confirming this now. |
We started to see a similar error during one of our unittests that started to fail recently for both
the effected lines are:
where one of MoveIt!'s internal If indeed #134 fixes this issue, could we please get this released into kinetic and melodic? |
@fmessmer Do you have the latest version of |
@dirk-thomas I can confirm that having |
@fmessmer The referenced PR is not planned to be released anytime soon if the already released version is sufficient (simply because a full rebuild requires a lot of resources and all users have to download new binary packages). So please provide more information if the latest available binary package isn't sufficient. |
The changes in #127 (https://github.com/ros/genpy/blob/kinetic-devel/src/genpy/generator.py#L761) adds the line:
to deserialization. On kinetic this line throws LookupException with the message:
unknown error handler name 'rosmsg'
The issue can be reproduced by using any package that has regenerated its messages since #127. The package where I discovered it was with rosbridge_suite.
This is how to reproduce it:
On the host computer run
docker ps
to get the container id.Log into the container and start rosapi (from rosbridge_suite):
Log into the container and call service:
The service call will fail when trying to deserialize the message.
This can probably also be done on your local machine, but I choose docker to make sure we have the same environment.
The text was updated successfully, but these errors were encountered: