We developed a multi-node application that uses RMI and a master/slave setup to coordinate animations on 4 Pi nodes. The whole thing is written in Java.

It works fine running locally on a Pi. It also works fine running with master and slave running on any combination of Mac and Windows. It does not, however work with one Pi node.

The Pi can communicate with a RMI'd object residing on other nodes. However, communication with RMI'd objects residing on the Pi times out.

The Pi is not running a firewall. It is on the same subnet as the other nodes. It is reachable, and can be pinged. We have tried using different port numbers for the RMI service point. We have also executed the program as root, and using a permissions file (not required to run correctly on Mac or Windows...)



The problem turned out to be that the IP of the RMI server must be provided with the -Djava.rmi.server.hostname= parameter. Further, we had to run both client and server as root.

Once this was added on the Pi, things seem to work as expected.

This is a slightly odd result, as both Windows and Mac ran fine without this.

  • +1 For coming back with a solution. This seems like more of a general linux question than anything pi specific; in the future, keep in mind that it will be much, much easier to find answers if you start with the more general context (linux) first, since there are orders of magnitude more linux users than pi users. I think you would have gotten an answer fairly quickly on SO or U&L with, e.g., linux and java tags. – goldilocks Feb 17 '14 at 15:15
  • True, but I was sidetracked by the fact that it worked just fine with the UNIX-based Mac. – Anders Johansen Feb 18 '14 at 8:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.