Skip to content
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

rossetip set ROS_IP and ROS_HOSTNAME to "src" at HRP2018v #1472

Open
mizmizo opened this issue Oct 27, 2016 · 17 comments
Open

rossetip set ROS_IP and ROS_HOSTNAME to "src" at HRP2018v #1472

mizmizo opened this issue Oct 27, 2016 · 17 comments
Assignees

Comments

@mizmizo
Copy link

mizmizo commented Oct 27, 2016

HRP2 18号機のvのindigo化の際に,
rosset2018(rossetip)すると,ROS_IPとROS_HOSTNAMEが"src"にセットされてしまう問題が起きたので報告します.
状況としては以下のような感じで,
Could not resolve ip from address. Subnet may be different
というメッセージが出た時だけ正しいROS_IPがセットされて,
通常の場合はsrcにセットされました.

hrpuser@hrp2018v:~$ rossethrp2018
set ROS_MASTER_URI to http://hrp2018v:10018
Could not resolve ip from address. Subnet may be different
set ROS_IP and ROS_HOSTNAME to 192.168.96.39
[http://hrp2018v:10018][192.168.96.39] hrpuser@hrp2018v:~$ rossethrp2018
set ROS_MASTER_URI to http://hrp2018v:10018
set ROS_IP and ROS_HOSTNAME to src
[http://hrp2018v:10018][src] hrpuser@hrp2018v:~$

この問題が起きたのは
89dc7e5
で,
HRP2 17号機と同じ
cab9af1
までバージョンを戻すと
rossetipが正しくできてroscoreが上げられるようになりました.

@mizmizo
Copy link
Author

mizmizo commented Oct 27, 2016

手元のPCでも2台ほど試してみましたが同じ問題は再現しませんでした.

@k-okada
Copy link
Member

k-okada commented Oct 27, 2016

cab9af1...89dc7e5

みると、
3e95ead
13e0c96
かな.ipというコマンドはあるかな.
apt-get install か rosdep install はしているかな.

◉ Kei Okada

2016-10-27 21:17 GMT+09:00 Hiroto MIZOHANA [email protected]:

手元のPCでも2台ほど試してみましたが同じ問題は再現しませんでした.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#1472 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAeG3Bd7n5U9Kh0DF9U8goH-xVBx8p8Qks5q4JZNgaJpZM4KiRtI
.

@furushchev
Copy link
Member

furushchev commented Oct 28, 2016

@mizmizo 詳しく調べたいのでご協力をお願いします。

  1. which ipとしてでてきた表示を教えてください。
  2. もし1.でコマンドの表示が出た場合さらに LANG=C ip -o -4 aの結果を教えてください。さらにifconfigの結果も知りたいです。
  3. 1でコマンドが出ない場合
cd ~/ros/indigo/
rosdep install --from-paths src --ignore-src -r -n -y
exec -l $SHELL
rossethrp2018

として結果が変わるか教えてください。

NOTE MACアドレスなどが表示されるので、その部分を隠してコメントしていただくか、メール返信のほうがいいかもしれません。

@mizmizo
Copy link
Author

mizmizo commented Oct 28, 2016

コマンドを試してみました.
MACアドレスは適当に置き換えて有ります.

[http://hrp2018v:10018][192.168.96.39] hrpuser@hrp2018v:~$ which ip
/sbin/ip
[http://hrp2018v:10018][192.168.96.39] hrpuser@hrp2018v:~$ LANG=C ip -o -4 a
1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
2: eth0    inet 192.168.96.39/22 brd 192.168.99.255 scope global eth0\       valid_lft forever preferred_lft forever
[http://hrp2018v:10018][192.168.96.39] hrpuser@hrp2018v:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:192.168.96.39  Bcast:192.168.99.255  Mask:255.255.252.0
          inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/xx Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:583816 errors:0 dropped:48730 overruns:0 frame:0
          TX packets:60439 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:276242754 (276.2 MB)  TX bytes:5352817 (5.3 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:320 errors:0 dropped:0 overruns:0 frame:0
          TX packets:320 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:40145 (40.1 KB)  TX bytes:40145 (40.1 KB)

@furushchev
Copy link
Member

@mizmizo なるほど。
追加で、
getent hosts hrp2018v

ip -o -4 route get $(getent hosts hrp2018v | cut -f 1 -d ' ')
の結果も教えてもらえるかな?

@mizmizo
Copy link
Author

mizmizo commented Oct 29, 2016

@furushchev さん
以下のようになりました.

[http://hrp2018v:10018][192.168.96.39] hrpuser@hrp2018v:~$ getent hosts hrp2018v
127.0.1.1       hrp2018v
[http://hrp2018v:10018][192.168.96.39] hrpuser@hrp2018v:~$ ip -o -4 route get $(getent hosts hrp2018v | cut -f 1 -d ' ')
local 127.0.1.1 dev lo  src 127.0.0.1 \    cache <local> 

@furushchev
Copy link
Member

furushchev commented Oct 29, 2016

うーん、このマシンがネットワークにつながっていないようにみえるんだけど、合ってるかな?

@mizmizo
Copy link
Author

mizmizo commented Oct 29, 2016

いえ,ネットワークにはつながっているはずです.

[http://hrp2018v:10018][192.168.96.39] hrpuser@hrp2018v:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=53 time=10.7 ms
^C
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 10.755/10.755/10.755/0.000 ms
[http://hrp2018v:10018][192.168.96.39] hrpuser@hrp2018v:~$ getent hosts hrp2018v
127.0.1.1       hrp2018v
[http://hrp2018v:10018][192.168.96.39] hrpuser@hrp2018v:~$ ip -o -4 route get $(getent hosts hrp2018v | cut -f 1 -d ' ')
local 127.0.1.1 dev lo  src 127.0.0.1 \    cache <local> 

@kyawawa
Copy link
Member

kyawawa commented Nov 1, 2016

横から失礼します.

ip -o -4 route get

を実行した際,自身のIPアドレスを指定した場合先頭にlocalが付いてしまうように思えます(なので,体内でしか問題が起こらない).

少し汚いですが,以下のように置き換えるとうまく行く気がします.

--- a/jsk_tools/env-hooks/99.jsk_tools.sh
+++ b/jsk_tools/env-hooks/99.jsk_tools.sh
@@ -96,7 +96,7 @@ rossetip_addr() {
         fi
         target_host=$target_host_ip
     fi
-    export ROS_IP=$(ip -o -4 route get $target_host | awk "/$target_host/ "'{print $5}')
+    export ROS_IP=$(ip -o -4 route get $target_host | awk "/$target_host/ "'{print substr($0, index($0, "src"))}' | awk '{print $2}')
     export ROS_HOSTNAME=$ROS_IP
 }

@furushchev
Copy link
Member

@kyawawa ありがとう。pull requestにしてくれるかな?

@k-okada
Copy link
Member

k-okada commented Nov 1, 2016

2016-11-01 19:31 GMT+09:00 Tatsuya Ishikawa [email protected]:

ip -o -4 route get

で何が帰ってくるのかな.

◉ Kei Okada

@kyawawa
Copy link
Member

kyawawa commented Nov 1, 2016

@k-okada
IPアドレスが192.168.96.20のマシンの場合,

$ ip -o -4 route get 192.168.96.20
local 192.168.96.20 dev lo  src 192.168.96.20 \    cache <local> 
$ ip -o -4 route get 192.168.96.21
192.168.96.21 dev eth0  src 192.168.96.20 \    cache 

のような違いがあります

@k-okada
Copy link
Member

k-okada commented Nov 1, 2016

133も同じ結果だけど,古田くんが想定しているのは違うのかな.

k-okada@jenkins:$ ip -o -4 route get 133.11.216.230
local 133.11.216.230 dev lo src 133.11.216.230 \ cache
k-okada@jenkins:
$ ip -o -4 route get 133.11.216.231
133.11.216.231 dev eth1 src 133.11.216.230 \ cache

◉ Kei Okada

2016-11-01 20:56 GMT+09:00 Tatsuya Ishikawa [email protected]:

@k-okada https://github.com/k-okada
IPアドレスが192.168.96.20のマシンの場合,

$ ip -o -4 route get 192.168.96.20
local 192.168.96.20 dev lo src 192.168.96.20 \ cache
$ ip -o -4 route get 192.168.96.21
192.168.96.21 dev eth0 src 192.168.96.20 \ cache

のような違いがあります


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#1472 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAeG3O1kSiB6-7i5xRjK5ouNNpDO086Eks5q5ykGgaJpZM4KiRtI
.

@kyawawa
Copy link
Member

kyawawa commented Nov 22, 2016

@k-okada おそらくですが,外側のPCからロボット体内にrossetipをする想定だったのではないかと思われます

@furushchev
Copy link
Member

@mizmizo
furushchev@804b2d6 fixed this issue or still occurs any error?

@iory
Copy link
Member

iory commented Jul 23, 2018

@furushchev
This issue seems solved.
I added test code for this PR.
If you have a time, please check the test code.

@furushchev
Copy link
Member

のちにわかったのですが、ipコマンドの結果は問い合わせ先によって以下の3パターンになるようです。

  • 自分自身に対して→localが追加される
$ ip -o -4 route get 192.168.96.20
local 192.168.96.20 dev lo src 192.168.96.20 \ cache 
  • 同一セグメント内
$ ip -o -4 route get 192.168.96.21
192.168.96.21 dev eth0 src 192.168.96.20 \ cache
  • それ以外→ゲートウェイ情報が追加される
$ ip -o -4 route get 8.8.8.8
8.8.8.8 via 133.11.216.254 dev wlp3s0  src 192.168.96.20 \    cache

現状のコードではsrcの次のIPアドレスを取得しているので、いずれも問題ないはずで、
env_hookが動くかの最低限のチェックも
#1590
でいい気がしますが、
このissueへの解決がなされたかをチェックするならこれもチェックするのかなと思います。

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

No branches or pull requests

5 participants