-
-
Notifications
You must be signed in to change notification settings - Fork 36
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
Fresh Windows installation not finding FastDDS implementation. #6
Comments
Possibly related issues ros2/ros2#844 Can confirm according to the second link that CLI commands like Working Config OpenSSL
Broken Config OpenSSL
|
Just to clarify - in our case the issue cannot be related to OpenSSL as both working and broken configs are the same? |
@Tobias-Fischer Yes, looks that way, doesn't seem to be OpenSSL version issue at least. |
Trying to downgrade
However, no change:
|
@danzimmerman I followed your instructions, but I am unable to reproduce your problem. My mamba list is:
|
@traversaro Thanks, I'll diff that against mine and see if I can isolate my problem. |
@traversaro There aren't many differences in packages, and nothing that seems relevant 🤔 Yours (ST)
|
My suspect is that one of us has something corrupting/interfering with the system/environment in some way. |
It seems that a Checking deps of
However, this doesn't seem like it should be an issue. All of the dependencies except import os
import pathlib
from subprocess import check_output
dll_path = pathlib.Path(os.environ['CONDA_PREFIX']) / 'Library/bin'
DLL_NAME = 'rmw_fastrtps_cpp.dll'
print(f'??? Checking DLL Path {dll_path} for dependencies of {DLL_NAME}')
dumpbin_output_string = check_output(['DUMPBIN', '/DEPENDENTS', (dll_path / DLL_NAME).as_posix()]).decode('UTF-8')
deps_list = dumpbin_output_string.split('dependencies:')[1].split('Summary')[0].strip().split()
# make them all lowercase so the check isn't case dependent
env_dlls = [fn.lower() for fn in os.listdir(dll_path) if fn.count('.dll')]
not_in_env_dlls = [fn for fn in deps_list if not fn.lower() in env_dlls]
in_env_dlls = [fn for fn in deps_list if fn.lower() in env_dlls]
print(f'\n>>> Found {len(in_env_dlls)} of {len(deps_list)} dependencies in {dll_path}:\n{in_env_dlls}')
print(f'\n>>> Did not find these DLLs in {dll_path}:\n{not_in_env_dlls}') Gives
|
This documentation points at the need for Visual C++ Redistributable Packages for Visual Studio 2013 to supply via I tried installing that (Windows Installer) but no luck. Will try to restart and check again. EDIT: I restarted with no-luck and re-ran the Visual C++ 2013 Redistributable installer again: Still no change. However, I don't see a
I suppose there's a |
Looks like I'm barking up the wrong tree with the VC 2013 stuff. I checked the dependencies of Output of
However, I have
Downgrading with
@traversaro Do you have the
|
Great debug! The issue then is that the run_exports for foonathan-memory should be stricter: https://github.com/conda-forge/foonathan-memory-feedstock/blob/47bf93075f75cc4645b5c77f9a26bb9b84697242/recipe/meta.yaml#L21 . This is because the library has a form of manual soversion by changing the library name: https://github.com/foonathan/memory/blob/f75c9fc761fde7fa0f6a829df08ea0041ebf1f10/src/CMakeLists.txt#L109 . |
Can confirm that the So ultimately, I think there was an uninformative error on a chain of DLL loads here, and lots of red herrings. I've unset If I upgrade However, actually reading my rosbag crashes. 😓 |
conda-forge/foonathan-memory-feedstock#7 should fix the issue for future builds, but for past build we should pepare a repodata patch and submit a PR to https://github.com/conda-forge/conda-forge-repodata-patches-feedstock, something like conda-forge/conda-forge-repodata-patches-feedstock#286 . |
Actually, this is unfortunatly not the case. In the As as far as I know we do not have any repodata patch infrastructure on robostack, the proper way of solving the problem is to rebuild the |
I triggered a rebuild of |
I tried to Tonight's revision:
I'm on
Will check again later. Is there anything else I need to do to try testing an update? |
I was sneaky - I overwrote |
Ok will try that 👍🏻 |
Uninstalled and reinstalled |
@traversaro @Tobias-Fischer This actually seems to be an issue on
The error is a lot more informative on Linux. By default Linux was using https://www.eprosima.com/index.php/company-all/news/270-ros2-humble-comes-with-fast-dds |
This is now working fine with the fresh builds, at least on Linux. However, see RoboStack/ros-noetic#30 |
Hi @danzimmerman, could you please let us know whether this is still an issue with the new builds in the robostack-staging channel? |
@Tobias-Fischer Sure, happy to. I just tried it with these channels:
and
But I can't find the desktop package. Do I need to wait a while for it to propagate?
|
Sorry, still working on ros-humble-desktop on Windows. However, https://anaconda.org/robostack-staging/ros-humble-rosbag2-py is available which should be enough to test this particular issue? |
Seems to work fine here to import Didn't get a chance to actually open a bag file yet, which seemed to also give me some trouble. I'll try some other things later when I get a chance, but the basics seem to be working. |
Ok - let’s close here then, if you have rosbag troubles please open a separate issue. |
Issue
I installed ROS2 Humble on Windows today and had an issue locating the FastDDS RMW implementation.
To reproduce the error, it's sufficient to
import rosbag2_py
in Python. (EDIT: and, apparently, have theRMW_IMPLEMENTATION
environment variable set tormw_fastrtps_cpp
, see final comments below)The error kills the Python interpreter as well ("Kernel has died" in Jupyter or a silent exit from a Python prompt)
I have two older installs where this does not seem to have been a problem.
On one of the older installs and this fresh install, there is a
rmw_fastrtps_cpp.dll
in theC:\Users\<username>\mambaforge\envs\humble\Library\bin
, but it seems like the fresh install can't find it (or maybe it is returning the wrong identifier?)On the broken machine, I tried installing Fast DDS with the Windows installer from the eProsima website, which does resolve the error (installs the required files and sets
FASTRTPSHOME
environment variable). However, I didn't recall needing to do this in the past on the other working machines, and the working machine I have access to right now doesn't have it explicitly installed.On the broken machine, the problem returns when I uninstall it.
Broken Config Details
DLL Path is
"C:\Users\<username>\mambaforge\envs\humble\Library\bin\rmw_fastrtps_cpp.dll"
mamba info
Output:mamba list | findstr fastrtps
- Focused packages:mamba list
- All packages:Working Config Details
DLL Path:
"C:\Users\<username>\mambaforge\envs\humble\Library\bin\rmw_fastrtps_cpp.dll"
mamba info
Output:mamba list | findstr fastrtps
- Focused packages:mamba list
- All packages:Broken Config Setup
I followed the "Getting Started" Instructions with the following mods to add the
robostack-humble
channel (maybe I should delete some others?)Then I updated the environment to add some customizations
mamba env update -f notebook_updates_humble.yaml
wherenotebook_updates_humble.yaml
contains:The text was updated successfully, but these errors were encountered: