일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- PostgreSQL
- ssh
- amazon ecs
- 경로 계획 알고리즘
- 디자인 패턴
- docker
- MAPF
- leetcode
- DevOps
- 논문 정리
- 티스토리챌린지
- 지표
- 생성 패턴
- AWS
- Go-lang
- 14일 공부
- Monthly Checklist
- Rust
- study
- github
- 청첩장 모임
- 신혼 여행
- 구조 패턴
- AWS 비용 절감
- 실용주의 프로그래머
- Playwright
- Til
- terraform
- 오블완
- 도커 주의사항
- Today
- Total
밤 늦게까지 여는 카페
[ROS] clients wants service A to have md5sum ~~~ 에러 해결 기록 본문
안녕하세요. 오늘은 ROS를 사용하다가 겪은 md5sum 에러와 해소방법을 공유드리겠습니다.
1. 처음 보는 ROS md5sum 에러ㅜ
이번에 제가 겪은 에러는 ROS 서비스를 호출하려고 하면 다음과 같은 에러 메시지가 출력되면서 서비스 호출에 실패하는 에러였습니다.
unable to connect to service: remote error reported: client wants service 서비스 to have 해시값1, but it has 해시값2. Dropping connection.
- 그동안 ROS를 많이 사용해봤지만 처음 보는 에러라서 적잖게 당황했었습니다;;;
처음에는 unable to connect to service 라는 문구만 보고
ROS 서비스 코드 혹은 ROS 서비스의 네트워크 설정이 바뀌어서 발생한 것이라고 의심했습니다.
하지만 변경사항들을 확인해본 결과 해당 ROS 서비스와 ROS 서비스의 네트워크 설정이 바뀌지 않았더라고요.
2. 에러 메시지를 조금 더 자세히 봐보니?!
에러가 발생했을 당시 일정이 촉박한 업무를 진행하고 있어서 다음에 해결할까 하는 순간 다음 에러 메시지가 눈에 들어왔습니다.
client wants service 서비스 to have 해시값1, but it has 해시값2. Dropping connection.
클라이언트는 서비스의 해시값이 해시값1이기를 기대했지만
실제로는 해시값2여서 연결을 끊는다 라는 메시지입니다.
ROS 서비스 공식 문서를 보면 서버와 클라이언트가 가지고 있는 .srv 파일의 md5합이 일치해야만 통신이 가능하다고 나옵니다.
여기까지 파악되니 클라이언트 사이드에 공유된 srv, msg 파일들의 버전이 잘못되어 문제가 발생한 것임을 알았고
srv, msg 파일들을 동기화 하는 것으로 문제를 해결할 수 있었습니다.
+ 클라이언트와 서버가 가지고 있는 srv, msg 파일이 다를 수가 있나요?
문제 상황을 간단히 말씀드리면 클라이언트와 서버가 다른 머신에서 실행되고 있었고, srv 파일과 msg 파일의 동기화가 이뤄지지 않은 것이었습니다.
ROS를 이용하면 다른 머신끼리도 통신이 가능합니다.
저도 그랬고 일반적으로 ROS 프로젝트를 진행할 때는 같은 머신 내에서의 프로세스 간 통신을 하는 경우가 많습니다.
그래서 srv, msg 파일의 공유가 직접적으로 이뤄질 수 있기 때문에 파일 동기화를 크게 고려하지 않아도 됐습니다.
하지만 다른 머신끼리 통신할 때에는 srv, msg 파일이 동기화가 정상적으로 되었는지 매번 확인해줘야 합니다...!
- 분산 시스템에서 서버 배포가 잘 이뤄졌는지 확인하는 것과 비슷하다고 비유하면 적절할까요?
'For Fun > 잡학 지식' 카테고리의 다른 글
[Python] DeepDiff 라이브러리 사용 중 8.0.0 버전부터 갑자기 동작이 바뀌었다면? 범인은 threshold_to_diff_deeper (0) | 2024.12.04 |
---|---|
대칭키 암호 알고리즘이란? feat. https 공부하기 (0) | 2024.11.16 |
HTTP 캐싱 정책 및 무효화 방법 - js, css 파일을 변경하고 웹서비스를 배포했는데 왜 적용이 안되지? (0) | 2024.09.26 |
단위 테스트란? (0) | 2024.09.20 |
[Ubuntu] Could not get lock /var/lib/dpkg/lock-frontend 에러 조치 방법 (0) | 2024.07.21 |