[ros-users] roscore not starting -- multiple network interfaces a problem?

Patrick Bouffard bouffard at eecs.berkeley.edu
Sun Feb 27 08:59:22 UTC 2011


Hi, I've just setup a new Ubuntu 10.10 box that will be running some
ROS nodes, occasionally including roscore. I installed diamondback
from debs this evening. This particular machine has a more complex
networking setup than others I've setup before and I suspect that is
giving me issues with running ROS.

I'm pretty sure everything is setup as it ought to be in terms of my
.bashrc (just source /opt/ros/diamondback/setup.bash). But when I run
roscore it just hangs. After waiting awhile, after pressing Ctrl+C
once, the following is output:

{{{
^C... logging to
/home/bouffard/.ros/log/ea02b894-424c-11e0-a499-00226bbd5586/roslaunch-lynx-3561.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://lynx:52141/
ros_comm version 1.4.4

SUMMARY
========

PARAMETERS
 * /rosversion
 * /rosdistro

NODES

auto-starting new master
process[master]: started with pid [3576]
ROS_MASTER_URI=http://lynx:11311/

setting /run_id to ea02b894-424c-11e0-a499-00226bbd5586
process[rosout-1]: started with pid [3589]
started core service [/rosout]
}}}

At this point things seem to be working; roswtf returns no errors or
warnings, I can run, e.g., rxconsole, rostopic list outputs /rosout
and /rosout_agg, etc. But having to hit Ctrl+C is not so great.

Also, without roscore running, if I run roswtf it also hangs after displaying:

{{{
bouffard at lynx:~$ roswtf
Loaded plugin tf.tfwtf
No package or stack in context
================================================================================
Static checks summary:

No errors or warnings
================================================================================
}}}

If I then hit Ctrl+C I get the following traceback:

{{{
^CTraceback (most recent call last):
  File "/opt/ros/diamondback/ros/bin/roswtf", line 35, in <module>
    roswtf.roswtf_main()
  File "/opt/ros/diamondback/stacks/ros_comm/utilities/roswtf/src/roswtf/__init__.py",
line 93, in roswtf_main
    _roswtf_main()
  File "/opt/ros/diamondback/stacks/ros_comm/utilities/roswtf/src/roswtf/__init__.py",
line 208, in _roswtf_main
    master = master_online()
  File "/opt/ros/diamondback/stacks/ros_comm/utilities/roswtf/src/roswtf/__init__.py",
line 100, in master_online
    master.getPid('/roswtf')
  File "/usr/lib/python2.6/xmlrpclib.py", line 1199, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.6/xmlrpclib.py", line 1235, in request
    self.send_content(h, request_body)
  File "/usr/lib/python2.6/xmlrpclib.py", line 1349, in send_content
    connection.endheaders()
  File "/usr/lib/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib/python2.6/httplib.py", line 780, in _send_output
    self.send(msg)
  File "/usr/lib/python2.6/httplib.py", line 739, in send
    self.connect()
  File "/usr/lib/python2.6/httplib.py", line 720, in connect
    self.timeout)
  File "/usr/lib/python2.6/socket.py", line 554, in create_connection
    sock.connect(sa)
  File "<string>", line 1, in connect
KeyboardInterrupt
bouffard at lynx:~$
}}}

Just to check that it wasn't something in the latest diamondback
release candidate, I dist-upgrade'd and tried these same commands on
another couple machines (that have been running some version of ROS
for awhile and are similarly configured, Ubuntu 10.0, diamondback
debs) with no problems.

Based on the roswtf traceback and the main weirdness of the current
box being its network config (it has three wired network interfaces),
I'm suspecting it has something to do with that. However, I still see
the same behaviour if I sudo ifdown all the interfaces besides lo.

I'm not a networking expert but I noticed on the EnvironmentVariables
wiki page: ".. ROS components bind to all available network
interfaces.". Could this have something to do with my issues?

Here's the output of ifconfig -a in case that helps:

{{{
bouffard at lynx:~$ ifconfig -a
eth1      Link encap:Ethernet  HWaddr xx:xx;xx:xx:xx:xx
          inet addr:128.32.43.208  Bcast:128.32.43.255  Mask:255.255.255.0
          inet6 addr: fe80::218:8bff:fe74:766d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1066 errors:0 dropped:0 overruns:0 frame:0
          TX packets:504 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:329324 (329.3 KB)  TX bytes:116257 (116.2 KB)
          Interrupt:17

eth2      Link encap:Ethernet  HWaddr xx:xx;xx:xx:xx:xx
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::e291:f5ff:fe94:cc3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1264 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1342 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:78005 (78.0 KB)  TX bytes:67277 (67.2 KB)
          Interrupt:17 Base address:0xef00

eth3      Link encap:Ethernet  HWaddr xx:xx;xx:xx:xx:xx
          inet addr:10.32.43.1  Bcast:10.32.43.255  Mask:255.255.255.0
          inet6 addr: fe80::222:6bff:febd:5586/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:235591 errors:0 dropped:0 overruns:0 frame:0
          TX packets:451507 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:17233068 (17.2 MB)  TX bytes:629352191 (629.3 MB)
          Interrupt:16 Base address:0x2e00

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:16436  Metric:1
          RX packets:8526 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8526 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:817773 (817.7 KB)  TX bytes:817773 (817.7 KB)
}}}

eth1 is the connection to the internet, eth2 is a crossover cable to
another machine, and eth3 connected to a private subnet. Iptables is
configured to allow machines on the 10.32.43.x subnet to access the
internet via eth1. It's possible something I did in setting that up
had the side-effect of messing with ROS, as I said I'm no networking
expert. Hopefully one of you is! :)

Thanks,
Pat



More information about the ros-users mailing list