Skip to content

Conversation

@mini-1235
Copy link
Collaborator

@mini-1235 mini-1235 commented Oct 1, 2025


Basic Info

Info Please fill out this column
Ticket(s) this addresses N/A
Primary OS tested on Ubuntu
Robotic platform tested on
Does this PR contain AI generated software? No
Was this PR description generated by AI software? Out of respect for maintainers, AI for human-to-human communications are banned

Description of contribution in a few bullet points

Description of documentation updates required from your changes

Description of how this change was tested


Future work that may be required in bullet points

For Maintainers:

  • Check that any new parameters added are updated in docs.nav2.org
  • Check that any significant change is added to the migration guide
  • Check that any new features OR changes to existing behaviors are reflected in the tuning guide
  • Check that any new functions have Doxygen added
  • Check that any new features have test coverage
  • Check that any new plugins is added to the plugins page
  • If BT Node, Additionally: add to BT's XML index of nodes for groot, BT package's readme table, and BT library lists
  • Should this be backported to current distributions? If so, tag with backport-*.

Signed-off-by: mini-1235 <[email protected]>
@mini-1235
Copy link
Collaborator Author

This should fix test_keepout_filter, test_speed_filter_global, and test_speed_filter_local, which are failing in every test after rolling latest update.

Also, these code aren't used now

def find_os_processes(name: str) -> list[tuple[str, str]]:
"""Find all the processes that are running gz sim."""
ps_output = subprocess.check_output(['ps', 'aux'], text=True)
ps_lines = ps_output.split('\n')
gz_sim_processes = []
for line in ps_lines:
if name in line:
columns = line.split()
pid = columns[1]
command = ' '.join(columns[10:])
if command.startswith(name):
gz_sim_processes.append((pid, command))
return gz_sim_processes
def kill_process(pid: str) -> None:
"""Kill a process with a given PID."""
try:
os.kill(int(pid), signal.SIGKILL)
print(f'Successfully killed process with PID: {pid}')
except Exception as e:
print(f'Failed to kill process with PID: {pid}. Error: {e}')
def kill_os_processes(name: str) -> None:
"""Kill all processes that are running with name."""
processes = find_os_processes(name)
if processes:
for pid, _ in processes:
kill_process(pid)
else:
print(f'No processes found starting with {name}')

should I keep it?

@SteveMacenski
Copy link
Member

SteveMacenski commented Oct 1, 2025

should I keep it?

I think its still useful 😉

Why was this causing an issue? I should have looked into this more, these have been historically flaky tests so I didn't think to look into it more than retriggering CI (yet)

@codecov
Copy link

codecov bot commented Oct 1, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
see 7 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mini-1235
Copy link
Collaborator Author

See https://app.circleci.com/pipelines/github/ros-navigation/navigation2/16271/workflows/d907caaa-ba46-4950-be7d-d807a7907f61/jobs/47564/tests for example

It reports

[planner_server-13] [WARN] [1759272112.398568005] [planner_server]: GridBasedplugin failed to plan from (-2.00, -0.50) to (0.00, -0.50): "Failed to create plan with tolerance of: 0.500000"

When I run these failing tests alone, they always pass. However, when running the entire package, these three tests consistently fail. I looked at the logs, and noticed that at the end of the wait test:

[ERROR] [gazebo-1]: process[gazebo-1] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[INFO] [gazebo-1]: sending signal 'SIGTERM' to process[gazebo-1]
[ERROR] [gazebo-1]: process has died [pid 981176, exit code -15, cmd 'ruby /opt/ros/rolling/opt/gz_tools_vendor/bin/gz sim -r -s /root/nav2_ws/install/nav2_minimal_tb3_sim/share/nav2_minimal_tb3_sim/worlds/tb3_sandbox.sdf.xacro --force-version 10'].
No processes found starting with gz sim

I believe the failure is due to the wait test not fully cleaning up gazebo resources when it ends, possibly related to the latest Gazebo update I think, although I haven’t dug into it further yet

@SteveMacenski SteveMacenski merged commit efdfb7d into ros-navigation:main Oct 1, 2025
15 checks passed
@SteveMacenski
Copy link
Member

I see, that would make sense

@mini-1235 mini-1235 deleted the fix/ci branch October 1, 2025 17:51
SakshayMahna pushed a commit to SakshayMahna/navigation2 that referenced this pull request Oct 4, 2025
silanus23 pushed a commit to silanus23/navigation2 that referenced this pull request Oct 10, 2025
silanus23 pushed a commit to silanus23/navigation2 that referenced this pull request Oct 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants