Closed cottsay closed 6 months ago
Looks like there are some missing dependencies. I'm guessing that either the rosdep rule needs to be updated to include some additional dependencies or the assimp-devel
RPM subpackage needs to declare them if the aren't optional.
Converting to draft until I get a green build.
Upstream fix for EPEL 9 assimp: https://src.fedoraproject.org/rpms/assimp/pull-request/13
Hm, the failure in the
mesh_loader
test is highly suggestive that something is different with this version of assimp.
Indeed, this looks like a real issue to me. In order to get assimp into EPEL 9, I needed to update it in Fedora to a pretty recent release so there's a strong chance that this is a "canary" issue that we could see down the line on other platforms. I'll dig a little deeper and report back.
Fun stuff. This same test is failing on Noble, so it's almost certainly rooted in the newer version of assimp that RHEL 9 and and Noble have that Jammy doesn't.
I'm tempted to say that we should take this change and regress the test for now, since it's going to be a priority for Rolling soon and we can backport the fix to Iron later.
Fun stuff. This same test is failing on Noble, so it's almost certainly rooted in the newer version of assimp that RHEL 9 and and Noble have that Jammy doesn't.
Hm, it seems to succeed for me locally on Noble. I currently have libassimp-dev
5.3.1 on Noble, and that seems to be the latest that is packaged in Debian as well: https://packages.debian.org/sid/libassimp-dev . What version are you working with?
$ dpkg-query --show libassimp-dev
libassimp-dev:amd64 5.3.1+ds-1
You need a display to run those tests - they're automatically skipped if you don't have DISPLAY
set during the build. We're using a virtual framebuffer on ci.ros2.org, I think. I made it work by forwarding the appropriate devices and variables through to podman.
$ colcon test --packages-select rviz_rendering_tests --event-handler console_direct+ --ctest-args -R mesh
...
1: [ RUN ] MeshLoaderTestFixture.loading_ascii_stl_files_fail
1: [rviz_rendering:debug] Available Renderers(1): OpenGL Rendering Subsystem, at /ws/src/ros2/rviz/rviz_rendering/src/rviz_rendering/render_system.cpp:289
1: [rviz_rendering:info] Stereo is NOT SUPPORTED, at /ws/src/ros2/rviz/rviz_rendering/src/rviz_rendering/render_system.cpp:531
1: [rviz_rendering:info] OpenGl version: 4.5 (GLSL 4.5), at /ws/src/ros2/rviz/rviz_rendering/src/rviz_rendering/render_system.cpp:272
1: /ws/src/ros2/rviz/rviz_rendering_tests/test/mesh_loader_test.cpp:111: Failure
1: Value of: rviz_rendering::loadMeshFromResource(mesh_path)
1: Actual: true
1: Expected: false
1: [ FAILED ] MeshLoaderTestFixture.loading_ascii_stl_files_fail (79 ms)
...
You need a display to run those tests - they're automatically skipped if you don't have
DISPLAY
set during the build
Ah yeah, you are totally right. Now I see it failing, thanks. I'm going to spend a few minutes and look deeper into the test.
Ah yeah, you are totally right. Now I see it failing, thanks. I'm going to spend a few minutes and look deeper into the test.
I spent a bit of time trying to trace down when and how it started working, without success.
But stepping back, I think we can safely remove the test. It is clear that previously ASCII STL files failed, and now they succeed. So the behavior can (and does) change, and thus I don't think the test serves it's original purpose. Maybe we can eventually add the test back in a strictly positive way (that is, we expect it to always succeed), but for now I'm OK with getting rid of it. I'll open a PR to do that and we can discuss more over there.
I spent a bit of time trying to trace down when and how it started working, without success.
I traced it a little bit yesterday and it appears that at the time the test was added to rviz there were functions for loading STL files that aren't there anymore. It doesn't explain why the newer assimp changed that behavior, but I agree that dropping the test is probably the right path forward.
As of last week, we no longer need to force vendoring in
rviz_assimp_vendor
: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2023-d3f80c2d82