| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Pulls: #3143 |
Sorry, something went wrong.
Fix ros2#2898. __check_double_range accepted +inf, -inf, and NaN for a declared floating_point_range. Two causes: 1. The boundary fast path used __are_doubles_equal, whose ULP-tolerance arithmetic degenerates on non-finite operands (e.g. it claims +inf equals any finite boundary), so +inf and -inf slipped past. 2. The bound check (value < from) || (value > to) is false on both sides for NaN, so NaN slipped past. Fix: - Guard __are_doubles_equal: if either operand is non-finite, fall back to exact ==. - Rewrite the bound check as !(value >= from && value <= to), which rejects NaN. Adds a regression test for +inf, -inf, and NaN. Signed-off-by: Bar <bartalor@gmail.com>
Sorry, something went wrong.
Classifies every failure observed on PR ros2#3143 across the five Jenkins jobs (ci_linux, ci_linux-aarch64, ci_linux-rhel, ci_windows #27970, ci_windows #27999) plus the windows-repro GHA run. Compares against same-job builds in the same 2026-05-10..05-22 window: - rhel #8929 uncrustify failures: flake (recurred on #8965). - windows #27970: infra flake (Jenkins agent disconnect). - windows #27999 test_rosidl_buffer/rmw_fastrtps_cpp x9: environmental, not PR-caused (didn't recur on other Windows builds; our GHA repro passed all 9).
|
I haven't yet been able to reproduce the RHEL and Windows failures through GitHub Actions builds, but I'm actively investigating. I'll post an update here once I have findings. |
Sorry, something went wrong.
…lures A green GHA run means we failed to match the ci.ros2.org environment, not that PR ros2#3143 is safe — the failing tests fail on rolling too.
|
The windows Ci failures are unrelated you can ignore them |
Sorry, something went wrong.
|
Same for rhel this pr is good to be merged |
Sorry, something went wrong.
|
@jmachowinski thanks for checking that! |
Sorry, something went wrong.
Classifies every failure observed on PR ros2#3143 across the five Jenkins jobs (ci_linux, ci_linux-aarch64, ci_linux-rhel, ci_windows #27970, ci_windows #27999) plus the windows-repro GHA run. Compares against same-job builds in the same 2026-05-10..05-22 window: - rhel #8929 uncrustify failures: flake (recurred on #8965). - windows #27970: infra flake (Jenkins agent disconnect). - windows #27999 test_rosidl_buffer/rmw_fastrtps_cpp x9: environmental, not PR-caused (didn't recur on other Windows builds; our GHA repro passed all 9).
…lures A green GHA run means we failed to match the ci.ros2.org environment, not that PR ros2#3143 is safe — the failing tests fail on rolling too.
|
Hi, @fujitatomoya, could this be backported? |
Sorry, something went wrong.
✅ Backports have been createdDetails
Cherry-pick of fa8478f has failed: On branch mergify/bp/kilted/pr-3143 Your branch is up to date with 'origin/kilted'. You are currently cherry-picking commit fa8478f. (fix conflicts and run "git cherry-pick --continue") (use "git cherry-pick --skip" to skip this patch) (use "git cherry-pick --abort" to cancel the cherry-pick operation) Unmerged paths: (use "git add <file>..." to mark resolution) both modified: rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp both modified: rclcpp/test/rclcpp/test_node.cpp no changes added to commit (use "git add" and/or "git commit -a") To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally
Cherry-pick of fa8478f has failed: On branch mergify/bp/jazzy/pr-3143 Your branch is up to date with 'origin/jazzy'. You are currently cherry-picking commit fa8478f. (fix conflicts and run "git cherry-pick --continue") (use "git cherry-pick --skip" to skip this patch) (use "git cherry-pick --abort" to cancel the cherry-pick operation) Unmerged paths: (use "git add <file>..." to mark resolution) both modified: rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp both modified: rclcpp/test/rclcpp/test_node.cpp no changes added to commit (use "git add" and/or "git commit -a") To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally |
Sorry, something went wrong.
|
Was lyrical skipped intentionally? |
Sorry, something went wrong.
|
Nope, it is just too new and not in the muscle memory 😜 @Mergifyio backport lyrical |
Sorry, something went wrong.
✅ Backports have been createdDetails
|
Sorry, something went wrong.
…ck (#3143) (#3161) Fix #2898. __check_double_range accepted +inf, -inf, and NaN for a declared floating_point_range. Two causes: 1. The boundary fast path used __are_doubles_equal, whose ULP-tolerance arithmetic degenerates on non-finite operands (e.g. it claims +inf equals any finite boundary), so +inf and -inf slipped past. 2. The bound check (value < from) || (value > to) is false on both sides for NaN, so NaN slipped past. Fix: - Guard __are_doubles_equal: if either operand is non-finite, fall back to exact ==. - Rewrite the bound check as !(value >= from && value <= to), which rejects NaN. Adds a regression test for +inf, -inf, and NaN. (cherry picked from commit fa8478f) Signed-off-by: Bar <bartalor@gmail.com> Co-authored-by: bartalor <59322988+bartalor@users.noreply.github.com>
…ck (ros2#3143) Fix ros2#2898. __check_double_range accepted +inf, -inf, and NaN for a declared floating_point_range. Two causes: 1. The boundary fast path used __are_doubles_equal, whose ULP-tolerance arithmetic degenerates on non-finite operands (e.g. it claims +inf equals any finite boundary), so +inf and -inf slipped past. 2. The bound check (value < from) || (value > to) is false on both sides for NaN, so NaN slipped past. Fix: - Guard __are_doubles_equal: if either operand is non-finite, fall back to exact ==. - Rewrite the bound check as !(value >= from && value <= to), which rejects NaN. Adds a regression test for +inf, -inf, and NaN. Signed-off-by: Bar <bartalor@gmail.com>
|
Why are inf values not valid? I get that it fixed the issue. But there might be solutions that keep the inf? |
Sorry, something went wrong.
|
I don't think it made infs invalid in general. Just when you set a finite range for validation. |
Sorry, something went wrong.
|
Thank you for the test, I would have to dive deeper! |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Description
Fixes #2898. __check_double_range accepted +inf, -inf, and NaN for parameters declared with a floating_point_range. Fix guards __are_doubles_equal against non-finite operands and rewrites the bound check so NaN is rejected.
Is this user-facing behavior change?
Yes. set_parameter with +inf, -inf, or NaN on a parameter with a floating_point_range now returns successful=false.
Did you use Generative AI?
Yes — Claude Opus 4.7.
Additional Information
Adds a regression test in test_node.cpp for the three non-finite cases. The new scope block pushes the existing TEST_F over cpplint's 800-line limit, so a // NOLINT(readability/fn_size) is added on its closing brace — same pattern other ROS 2 packages use for this case.