GIRAPH-1098 Job may get stuck if zookeeper port fixed and is in use

Test Plan: mvn clean verify -Phadoop_facebook

Reviewers: majakabiljo, dionysis.logothetis, maja.kabiljo

Reviewed By: maja.kabiljo

Differential Revision: https://reviews.facebook.net/D60945
diff --git a/giraph-core/src/main/java/org/apache/giraph/zk/InProcessZooKeeperRunner.java b/giraph-core/src/main/java/org/apache/giraph/zk/InProcessZooKeeperRunner.java
index 4f15f3a..cee2c78 100644
--- a/giraph-core/src/main/java/org/apache/giraph/zk/InProcessZooKeeperRunner.java
+++ b/giraph-core/src/main/java/org/apache/giraph/zk/InProcessZooKeeperRunner.java
@@ -47,13 +47,8 @@
   private QuorumRunner quorumRunner = new QuorumRunner();
 
   @Override
-  public int start(String zkDir, final ZookeeperConfig config) {
-    try {
-      return quorumRunner.start(config);
-    } catch (IOException e) {
-      LOG.error("Unable to start zookeeper", e);
-    }
-    return -1;
+  public int start(String zkDir, ZookeeperConfig config) throws IOException {
+    return quorumRunner.start(config);
   }
 
   @Override
diff --git a/giraph-core/src/main/java/org/apache/giraph/zk/ZooKeeperManager.java b/giraph-core/src/main/java/org/apache/giraph/zk/ZooKeeperManager.java
index 097172d..b843882 100644
--- a/giraph-core/src/main/java/org/apache/giraph/zk/ZooKeeperManager.java
+++ b/giraph-core/src/main/java/org/apache/giraph/zk/ZooKeeperManager.java
@@ -457,7 +457,7 @@
    * If this task has been selected, online a ZooKeeper server.  Otherwise,
    * wait until this task knows that the ZooKeeper servers have been onlined.
    */
-  public void onlineZooKeeperServer() {
+  public void onlineZooKeeperServer() throws IOException {
     if (zkServerTask == taskPartition) {
       File zkDirFile = new File(this.zkDir);
       try {
diff --git a/giraph-core/src/main/java/org/apache/giraph/zk/ZooKeeperRunner.java b/giraph-core/src/main/java/org/apache/giraph/zk/ZooKeeperRunner.java
index 2797047..9d6a332 100644
--- a/giraph-core/src/main/java/org/apache/giraph/zk/ZooKeeperRunner.java
+++ b/giraph-core/src/main/java/org/apache/giraph/zk/ZooKeeperRunner.java
@@ -19,6 +19,8 @@
 
 import org.apache.giraph.conf.ImmutableClassesGiraphConfigurable;
 
+import java.io.IOException;
+
 /**
  * ZooKeeper wrapper interface.
  * Implementation should provide a way to start, stop and cleanup
@@ -33,7 +35,7 @@
    * @param config zookeeper configuration
    * @return port zookeeper runs on
    */
-  int start(String zkDir, ZookeeperConfig config);
+  int start(String zkDir, ZookeeperConfig config) throws IOException;
 
   /**
    * Stops zookeeper.